Bladeren bron

Merge e fix

Luca Parisio 2 maanden geleden
bovenliggende
commit
978937b636

+ 1 - 1
app/Http/Livewire/Causals.php

@@ -32,7 +32,7 @@ class Causals extends Component
         $this->idx = $idx;
         $this->causal_id = $causal_id;
 
-        if ($this->causal_id != null && $this->causal_id != 0) {
+        if ($this->causal_id != null) {
             $c = \App\Models\Causal::findOrFail($this->causal_id);
             $ids = array_reverse($c->recursiveParent($c->parent_id, [$c->id]));
 

+ 4 - 5
app/Http/Livewire/Course.php

@@ -35,7 +35,7 @@ class Course extends Component
     public $msgPrices = '';
     public $msgWhen = '';
 
-    // public $course_types = [];
+    public $course_types = [];
     public $course_durations = [];
     public $course_frequencies = [];
     public $course_levels = [];
@@ -140,7 +140,7 @@ class Course extends Component
             $this->monthList[$i][11] = "Novembre";
             $this->monthList[$i][12] = "Dicembre";
         }
-        // $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->get();
+        $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->get();
         $this->course_durations = \App\Models\CourseDuration::select('*')->where('enabled', true)->get();
         $this->course_levels = \App\Models\CourseLevel::select('*')->where('enabled', true)->get();
         $this->course_subscriptions = \App\Models\CourseSubscription::select('*')->where('enabled', true)->get();
@@ -431,9 +431,8 @@ class Course extends Component
         $newYear = date("Y") . "-" . (date("Y") + 1);
         if ($course->year != '')
         {
-            // list($u, $y) = explode("-", $course->year);
-            // $newYear = ($u + 1) . "-" . ($u + 2);
-            $newYear = $course->year;
+            list($u, $y) = explode("-", $course->year);
+            $newYear = ($u + 1) . "-" . ($u + 2);
         }
         $newCourse->year = $newYear;
         $newCourse->save();

+ 2 - 2
app/Http/Livewire/CourseList.php

@@ -41,7 +41,7 @@ class CourseList extends Component
     public $filterDuration = [];
 
     public $course_durations = [];
-    // public $course_types = [];
+    public $course_types = [];
     public $course_frequencies = [];
     public $course_levels = [];
     public $course_years = [];
@@ -64,7 +64,7 @@ class CourseList extends Component
         $this->selectedCourseId = 0;
         $this->selectedMemberId = 0;
 
-        // $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->get();
+        $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->get();
         $this->course_durations = \App\Models\CourseDuration::select('*')->where('enabled', true)->get();
         $this->course_levels = \App\Models\CourseLevel::select('*')->where('enabled', true)->get();
         $this->course_frequencies = \App\Models\CourseFrequency::select('*')->where('enabled', true)->get();

+ 2 - 15
app/Http/Livewire/Member.php

@@ -106,7 +106,7 @@ class Member extends Component
 
     public $course_names = array();
     public $course_levels = array();
-    // public $course_types = array();
+    public $course_types = array();
     public $course_frequencies = array();
 
     public $course_subscriptions = array();
@@ -1753,7 +1753,7 @@ class Member extends Component
                 foreach ($all as $a) {
                     $types_ids[] = $a->course_type_id;
                 }
-                // $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->whereIn('id', $types_ids)->get();
+                $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->whereIn('id', $types_ids)->get();
 
                 $frequencies_ids = [];
                 $all = \App\Models\Course::where('name', 'like', '%' . $c->name . "%")->where('enabled', true)->where('course_level_id', $this->course_level_id)->where('course_type_id', $this->course_type_id)->get();
@@ -1778,19 +1778,6 @@ class Member extends Component
                 foreach (json_decode($memberCourse->months) as $z) {
                     $this->course_months[] = array("m" => $z->m, "status" => $z->status);
                 }
-
-                $course_subscription_ids = [];
-                $this->course_price_list = [];
-                if ($c->prices != null) {
-                    foreach (json_decode($c->prices) as $z) {
-                        $this->course_price_list[$z->course_subscription_id] = $z->price;
-                        if ($z->price > 0)
-                            $course_subscription_ids[] = $z->course_subscription_id;
-                    }
-                }
-
-                $this->course_subscriptions = \App\Models\CourseSubscription::select('*')->whereIn('id', $course_subscription_ids)->where('enabled', true)->get();
-                
                 $this->courseDataId = $memberCourse->id;
                 $this->updateCourse = true;
                 $this->addCourse = false;

+ 2 - 21
app/Http/Livewire/Profile.php

@@ -20,7 +20,6 @@ class Profile extends Component
     public $telefono;
     public $cellulare;
     public $password;
-    public $password_confirmation;
 
     public function boot()
     {
@@ -45,28 +44,12 @@ class Profile extends Component
 
     public function save()
     {
-
-        $rules = [
+        $this->validate([
             'name' => 'required',
             'cognome' => 'required',
             'email' => 'required|email',
             'password' => 'nullable|min:6',
-            'password_confirmation' => 'nullable|same:password'
-        ];
-
-        $messages = [
-            'name.required' => 'Il nome è obbligatorio',
-            'cognome.required' => 'Il cognome è obbligatorio',
-            'email.required' => 'La mail è obbligatoria',
-            'email.email' => 'La mail deve essere un indirizzo valido',
-            'email.unique' => 'Questa mail è già stata utilizzata',
-            'password.required' => 'La password è obbligatoria',
-            'password.min' => 'La password deve essere di almeno 6 caratteri',
-            'password_confirmation.required' => 'Ripeti la password inserita',
-            'password_confirmation.same' => 'Le password non coincidono',
-        ];
-
-        $this->validate($rules, $messages);
+        ]);
 
         $currentUser = Auth::user();
 
@@ -119,7 +102,6 @@ class Profile extends Component
 
             $this->editMode = false;
             $this->password = ''; // Clear password field
-            $this->password_confirmation = ''; // Clear password_confirmation field
 
         } catch (\Exception $e) {
             Log::error('Profile update failed', [
@@ -221,7 +203,6 @@ class Profile extends Component
         $this->telefono = '';
         $this->cellulare = '';
         $this->password = '';
-        $this->password_confirmation = '';
     }
 
     public function render()

+ 1 - 1
app/Http/Livewire/Rate.php

@@ -115,7 +115,7 @@ class Rate extends Component
         }
         else
         {*/
-            $this->records = \App\Models\Rate::with('member')->where('member_course_id', $this->member_course_id)->orderBy('date')->get();
+            $this->records = \App\Models\Rate::with('member')->where('member_course_id', $this->member_course_id)->where('member_id', $this->member_id)->orderBy('date')->get();
         //}
 
         $this->disabled = [];

+ 30 - 7
app/Http/Livewire/RecordIN.php

@@ -401,11 +401,28 @@ class RecordIN extends Component
                 $this->rows[0]["amount"] = formatPrice($price);
                 foreach ($months as $idx => $m) {
                     $this->rows[0]["when"][$idx]["month"] = $m;
-                    if ($m > date("M"))
-                        $this->rows[0]["when"][$idx]["year"] = $m < env('FISCAL_YEAR_MONTH_FROM', 1) ? (date("Y") + 1) : date("Y");
+
+                    if ($m >= date("m"))
+                        $this->rows[0]["when"][$idx]["year"] = date("Y");
+                    else
+                        $this->rows[0]["when"][$idx]["year"] = date("Y") + 1;
+                    /*if (env('FISCAL_YEAR_MONTH_FROM', 1) > 1)
+                    {
+                        if ($m > date("M"))
+                            $this->rows[0]["when"][$idx]["year"] = $m < env('FISCAL_YEAR_MONTH_FROM', 1) ? (date("Y")) : date("Y" + 1);
+                        else
+                            $this->rows[0]["when"][$idx]["year"] = $m > env('FISCAL_YEAR_MONTH_TO', 1) ? (date("Y")) : date("Y" + 1);
+                    }
                     else
-                        $this->rows[0]["when"][$idx]["year"] = $m > env('FISCAL_YEAR_MONTH_TO', 1) ? (date("Y") - 1) : date("Y");
+                    {
+
+                    }
 
+                    if ($m > date("M"))
+                        $this->rows[0]["when"][$idx]["year"] = $m < env('FISCAL_YEAR_MONTH_FROM', 1) ? (date("Y")) : date("Y" + 1);
+                    else
+                        $this->rows[0]["when"][$idx]["year"] = $m > env('FISCAL_YEAR_MONTH_TO', 1) ? (date("Y")) : date("Y" + 1);
+                    */
                     if ($idx > 0) {
                         if ($this->rows[0]["when"][$idx - 1]["year"] != $this->rows[0]["when"][$idx]["year"])
                             $desc .= " " . $this->rows[0]["when"][$idx - 1]["year"] . " ";
@@ -675,10 +692,16 @@ class RecordIN extends Component
             }
 
             if ($this->rateId > 0) {
-                $rate = \App\Models\Rate::findOrFail($this->rateId);
-                $rate->status = 1;
-                $rate->record_id = $record->id;
-                $rate->save();
+
+                $rates = explode(",", $this->rateId);
+                foreach($rates as $rid)
+                {
+                    $rate = \App\Models\Rate::findOrFail($rid);
+                    $rate->status = 1;
+                    $rate->record_id = $record->id;
+                    $rate->save();
+                }
+
             }
 
             session()->flash('success', 'Movimento creato');

+ 2 - 2
app/Http/Livewire/RecordINOUT.php

@@ -554,7 +554,7 @@ class RecordINOUT extends Component
             if ($level == 0) return true; // padre sempre incluso
 
             $pid = $row['parent_id'] ?? null;
-            // se non c'è il padre includi il figlio
+            // se non c'è il padre includi il figlio
             return !in_array($pid, $presentParentIds, true);
         };
 
@@ -650,7 +650,7 @@ class RecordINOUT extends Component
             $col = Coordinate::stringFromColumnIndex($firstDataIdx + $idx);
             $activeWorksheet->setCellValue($col . $count, $this->getMonth($column));
         }
-        $activeWorksheet->setCellValue($colRowTot . '1', 'Totale'); // già impostato sopra, qui lasciamo l’header a riga corrente
+        $activeWorksheet->setCellValue($colRowTot . '1', 'Totale'); // già impostato sopra, qui lasciamo l’header a riga corrente
         $activeWorksheet->setCellValue($colRowTot . $count, 'Totale');
 
         $activeWorksheet->getStyle($colA . $count . ':' . $colRowTot . $count)->getFont()->setBold(true);

+ 4 - 13
app/Http/Livewire/User.php

@@ -19,14 +19,12 @@ class User extends Component
 
     public $records, $name, $cognome, $email, $password, $oldPassword, $level, $enabled, $dataId, $update = false, $add = false, $oldEmail = null;
     public $userExists = false;
-    public $password_confirmation;
 
     protected $rules = [
         'name' => 'required',
         'cognome' => 'required',
         'email' => 'required',
-        'password' => 'required',
-        'password_confirmation' => 'required|same:password'
+        'password' => 'required'
     ];
 
     protected $messages = [
@@ -34,8 +32,6 @@ class User extends Component
         'cognome.required' => 'Il cognome è obbligatorio',
         'email.required' => 'La mail è obbligatoria',
         'password.required' => 'La password è obbligatoria',
-        'password_confirmation.required' => 'Ripeti la password inserita',
-        'password_confirmation.same' => 'Le password non coincidono',
     ];
 
     /**
@@ -333,7 +329,6 @@ class User extends Component
         $this->cognome = '';
         $this->email = '';
         $this->password = '';
-        $this->password_confirmation = '';
         $this->oldPassword = '';
         $this->level = 0;
         $this->enabled = true;
@@ -388,8 +383,7 @@ class User extends Component
             'name' => 'required',
             'cognome' => 'required',
             'email' => 'required|email|unique:users,email',
-            'password' => 'required|min:6',
-            'password_confirmation' => 'required|same:password'
+            'password' => 'required|min:6'
         ];
 
         $messages = [
@@ -399,9 +393,7 @@ class User extends Component
             'email.email' => 'La mail deve essere un indirizzo valido',
             'email.unique' => 'Questa mail è già stata utilizzata',
             'password.required' => 'La password è obbligatoria',
-            'password.min' => 'La password deve essere di almeno 6 caratteri',
-            'password_confirmation.required' => 'Ripeti la password inserita',
-            'password_confirmation.same' => 'Le password non coincidono',
+            'password.min' => 'La password deve essere di almeno 6 caratteri'
         ];
 
         $this->validate($rules, $messages);
@@ -554,8 +546,7 @@ class User extends Component
             'name' => 'required',
             'cognome' => 'required',
             'email' => 'required|email',
-            'password' => 'nullable|min:6',
-            'password_confirmation' => 'required|same:password'
+            'password' => 'nullable|min:6'
         ];
 
         $this->validate($rules, $this->messages);

+ 1 - 1
app/Models/Azienda.php

@@ -81,7 +81,7 @@ class Azienda extends Model
     }
 
     /**
-     * Restituisce true se l’azienda è valida (tutti i campi richiesti presenti).
+     * Restituisce true se l’azienda è valida (tutti i campi richiesti presenti).
      */
     public function isValid()
     {

+ 0 - 9
app/Services/MigrationService.php

@@ -14,7 +14,6 @@ class MigrationService
 
     public function runMasterMigrations()
     {
-        
         $this->setupMasterConnection();
 
         $masterMigrations = $this->getMasterMigrationFiles();
@@ -61,13 +60,10 @@ class MigrationService
     {
         $tenants = $this->getTenants();
         $results = [];
-
         if ($tenants->isEmpty()) {
             return ['message' => 'No tenants found.', 'results' => []];
         }
-
         $tenantMigrations = $this->getTenantMigrationFiles();
-
         if (empty($tenantMigrations)) {
             return ['message' => 'No tenant migrations found.', 'results' => []];
         }
@@ -77,18 +73,15 @@ class MigrationService
         if (!File::exists($tempPath)) {
             File::makeDirectory($tempPath, 0755, true);
         }
-
         // Copy only tenant migrations to temp directory
         foreach ($tenantMigrations as $migration) {
             $source = database_path('migrations/' . $migration);
             $destination = $tempPath . '/' . $migration;
             File::copy($source, $destination);
         }
-
         foreach ($tenants as $tenant) {
             try {
                 $this->setupTenantConnection($tenant);
-
                 Artisan::call('migrate', [
                     '--database' => 'tenant',
                     '--path' => 'storage/app/temp_tenant_migrations'
@@ -99,7 +92,6 @@ class MigrationService
                     'status' => 'success',
                     'message' => 'Migrations completed successfully'
                 ];
-
             } catch (\Exception $e) {
                 $results[] = [
                     'tenant' => $tenant->tenant_database,
@@ -108,7 +100,6 @@ class MigrationService
                 ];
             }
         }
-
         // Clean up temp directory
         File::deleteDirectory($tempPath);
 

+ 0 - 10
resources/views/first-login.blade.php

@@ -5,16 +5,6 @@
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <title>Primo Accesso - Leezard.cloud</title>
 
-  {{-- Favicon --}}
-    <link rel="icon" type="image/png" href="{{asset('favicon-96x96.png')}}" sizes="96x96" />
-    <link rel="icon" type="image/svg+xml" href="{{asset('favicon.svg')}}" />
-    <link rel="shortcut icon" href="{{asset('favicon.ico')}}"/>
-    <link rel="shortcut icon" href="{{asset('favicon-light.ico')}}" media="(prefers-color-scheme: light)"/>
-    <link rel="shortcut icon" href="{{asset('favicon-dark.ico')}}" media="(prefers-color-scheme: dark)"/>
-    <link rel="apple-touch-icon" sizes="180x180" href="{{asset('apple-touch-icon.png')}}" />
-    <link rel="manifest" href="{{asset('site.webmanifest')}}" />
-  {{-- end Favicon --}}
-
     <!-- Bootstrap CSS -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
     <!-- Font Awesome -->

+ 5 - 20
resources/views/layouts/app.blade.php

@@ -187,7 +187,7 @@
             if (Request::is('settings'))
                 print "Impostazioni";
             if (Request::is('categories'))
-                print "Gruppi di interesse";
+                print "Gruppi di appartenenza";
             if (Request::is('disciplines'))
                 print "Discipline";
             if (Request::is('cards'))
@@ -204,8 +204,8 @@
                 print "Corsi - Frequenza";
             if (Request::is('course_levels'))
                 print "Corsi - Livelli";
-            // if (Request::is('course_types'))
-            //     print "Corsi - Tipologie";
+            if (Request::is('course_types'))
+                print "Corsi - Tipologie";
             if (Request::is('banks'))
                 print "Banche";
             if (Request::is('causals'))
@@ -215,7 +215,7 @@
             if (Request::is('payment_methods'))
                 print "Metodi di pagamento";
             if (Request::is('users'))
-                print "Utenze";
+                print "Profilo utenti";
             if (Request::is('azienda'))
                 print "Società";
             if (Request::is('profile'))
@@ -392,7 +392,7 @@
                         </div>
                     @endif
                     @if(Auth::user()->level == env('LEVEL_ADMIN', 0))
-                        <div class="accordion-item {{Request::is('settings') || Request::is('categories') || Request::is('disciplines') || Request::is('cards') || Request::is('course_subscriptions') || Request::is('courses') || Request::is('course_durations') || Request::is('course_frequencies') || Request::is('course_levels') {{-- || Request::is('course_types') --}} || Request::is('banks') || Request::is('causals') || Request::is('vats') || Request::is('payment_methods') || Request::is('users') ? "accordion-item-active" : ""}}">
+                        <div class="accordion-item {{Request::is('settings') || Request::is('categories') || Request::is('disciplines') || Request::is('cards') || Request::is('course_subscriptions') || Request::is('courses') || Request::is('course_durations') || Request::is('course_frequencies') || Request::is('course_levels') || Request::is('course_types') || Request::is('banks') || Request::is('causals') || Request::is('vats') || Request::is('payment_methods') || Request::is('users') ? "accordion-item-active" : ""}}">
                             <h2 class="accordion-header linkMenu">
                                 <a class="accordion-button collapsed" href="/settings">
                                     <i class="fas fa-gear"></i>
@@ -471,21 +471,6 @@
     @stack('scripts')
 
     <script>
-        function togglePassword(eye_icon) {
-            let wrapper = eye_icon.parentElement;
-            let password_html = wrapper.querySelector("input");
-
-            if (password_html) {
-                if (password_html.type == "password") {
-                    password_html.type = "text";
-                    eye_icon.classList.add("shown");
-                } else {
-                    password_html.type = "password";
-                    eye_icon.classList.remove("shown");
-                }
-            }
-        }
-
         function setToday(d)
         {
             $("#dateFrom").val(d);

+ 6 - 8
resources/views/livewire/course.blade.php

@@ -127,7 +127,7 @@
                                 </div>
                             </div>
                             @if(false)
-                                {{-- <div class="col-6 mt-2">
+                                <div class="col-6 mt-2">
                                     <div class="form--item">
                                         <label for="inputName" class="form-label">Tipologia</label>
                                         <select class="form-select form-select-lg me-1 @error('course_type_id') is-invalid @enderror" wire:model="course_type_id">
@@ -137,7 +137,7 @@
                                             @endforeach
                                         </select>
                                     </div>
-                                </div> --}}
+                                </div>
                                 <div class="col-6 mt-2">
                                     <div class="form--item">
                                         <label for="inputName" class="form-label">Durata</label>
@@ -239,7 +239,7 @@
                                     <select class="form-select form-select-lg" wire:model="instructor_id">
                                         <option value="">
                                         @foreach($instructors as $ins)
-                                            <option value="{{$ins["id"]}}">{{$ins["name"]}} {{$ins["cognome"]}}</option>
+                                            <option value="{{$ins["id"]}}">{{$ins["name"]}}
                                         @endforeach
                                     </select>
                                 </div>
@@ -247,7 +247,7 @@
 
                             <div class="col-6 mt-2">
                                 <div class="form--item">
-                                    <label for="inputName" class="form-label">Gruppo di interesse</label>
+                                    <label for="inputName" class="form-label">Gruppo di appartenenza</label>
                                     <select class="form-select form-select-lg me-1 @error('category_id') is-invalid @enderror" wire:model="category_id">
                                         <option value="">
                                         @foreach($categories as $category)
@@ -283,7 +283,7 @@
                                 @foreach($prices as $idP => $p)
                                     <div class="row mt-2 ">
                                         <div class="col-6">
-                                            <label for="abb" class="form-label">Pagamento</label>
+                                            <label for="abb" class="form-label">Abbonamento</label>
                                             <select class="form-control" wire:model="prices.{{$idP}}.course_subscription_id">
                                                 <option value=""></option>
                                                 @foreach($course_subscriptions as $s)
@@ -313,9 +313,7 @@
                             @if($type == 'standard')
 
                                 @foreach($when as $idW => $w)
-                                    @if ($idW > 0)
-                                    <div class="col-6"></div>
-                                    @endif
+
                                     <div class="col-6 mt-4">
                                         <div class="day durata--corso d-flex">
                                             <label for="" class="form-label">Giorno</label>

+ 2 - 2
resources/views/livewire/course_list.blade.php

@@ -118,7 +118,7 @@
                     </div>
                 </div>
             </div>
-            {{-- <div class="col-md-2">
+            <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Tipologia</b>
@@ -131,7 +131,7 @@
                         </select>
                     </div>
                 </div>
-            </div> --}}
+            </div>
             <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">

+ 2 - 2
resources/views/livewire/course_list_original.blade.php

@@ -79,7 +79,7 @@
                     </div>
                 </div>
             </div>
-            {{-- <div class="col-md-2">
+            <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Tipologia</b>
@@ -92,7 +92,7 @@
                         </select>
                     </div>
                 </div>
-            </div> --}}
+            </div>
             <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">

+ 1 - 1
resources/views/livewire/course_member_two.blade.php

@@ -50,7 +50,7 @@
                             @endif
                         </td>
                         @endif
-                        <td>{{$record->getins->name ?? ""}} {{$record->getins->cognome ?? ""}}</td>
+                        <td>{{$record->getins->name ?? ""}}</td>
                         <td>
                             <a href="/course_member?id={{$record->id}}" type="button" class="btn" ><b> <i class="fa-solid fa-chevron-right"></i></b></button>
                         </td>

+ 2 - 2
resources/views/livewire/email_comunications.blade.php

@@ -196,7 +196,7 @@
                                             </div>
                                             <div class="col-md-3">
                                                 <div class="row">
-                                                    <div class="col-md-12 mb-2"><b>Gruppo di interesse</b></div>
+                                                    <div class="col-md-12 mb-2"><b>Gruppo di appartenenza</b></div>
                                                     <div class="col-12">
                                                         <select name="filterCategories" class="form-select filterCategories" multiple="multiple">
                                                             <option value="">Tutte</option>
@@ -780,4 +780,4 @@ window.submitEmail = function(action){
 </script>
 
 {{-- END CKEditor --}}
-@endpush
+@endpush

+ 8 - 8
resources/views/livewire/member.blade.php

@@ -31,7 +31,7 @@
                                     <div class="credito_title">
                                         <span>Borsellino MAD: <br></span><span class="value">{{formatPrice($currentMember->getMoney())}}</span>
                                     </div>
-                                    <a href="/in?new=1&memberId={{$currentMember->id}}&causalId={{$causalId}}" class="btn--ui lightGrey" style="width:100px">ricarica</a>
+                                    <a href="/in?new=1&memberId={{$currentMember->id}}&causalId={{$causalId > 0 ? $causalId : ''}}" class="btn--ui lightGrey" style="width:100px">ricarica</a>
 
                                 </div>
                                 <div class="credito d-flex align-items-center justify-content-between">
@@ -144,7 +144,7 @@
                             </li>
                         </ul>
                         <div class="resume--tab_info gruppi">
-                            <h2 class="title d-flex align-items-center mb-3 gap-4"><i class="fa-solid fa-users"></i>Gruppi di interesse</h2>
+                            <h2 class="title d-flex align-items-center mb-3 gap-4"><i class="fa-solid fa-users"></i>Gruppi di appartenenza</h2>
                             <div class="resume--info d-flex align-items-start row">
 
                                 @foreach($currentMember->categories as $member_category)
@@ -319,7 +319,7 @@
                         <div class="col-md-3">
                             <div class="row">
                                 <div class="col-md-12" style="margin-bottom:10px;">
-                                    <b>Gruppo di interesse</b>
+                                    <b>Gruppo di appartenenza</b>
                                 </div>
                                 <div class="col-12">
                                     <select name="filterCategories" class="form-select filterCategories" multiple="multiple">
@@ -1059,11 +1059,11 @@
                                                     {{-- <strong>Attenzione:</strong> Per aggiungere corsi è necessario avere un tesseramento attivo o un certificato medico valido. --}}
                                                     <strong>Info:</strong> Non sono presenti un tesseramento attivo o un certificato medico valido.
                                                 </div>
-                                            @elseif($active["status"] == 0)
+                                            @elseif($active["status"] != 1)
                                                 <div class="alert alert-info" role="alert">
                                                     <strong>Info:</strong> Il tesseramento non è attivo, ma è presente un certificato medico valido.
                                                 </div>
-                                            @elseif($active["status"] == 1 && !$hasCertificate)
+                                            @elseif(!$hasCertificate)
                                                 <div class="alert alert-info" role="alert">
                                                     <strong>Info:</strong> Non è presente un certificato medico valido, ma il tesseramento è attivo.
                                                 </div>
@@ -1265,8 +1265,8 @@
                                                     @if($course_course_id > 0)
                                                         <div class="row mt-4">
                                                             <div class="col-md-6">
-                                                                <label for="course_course_subscription_id" class="form-label">Pagamenti</label>
-                                                                <select id="course_course_subscription_id" class="form-select  @error('course_course_subscription_id') is-invalid @enderror" aria-label="Pagamenti" wire:model="course_course_subscription_id">
+                                                                <label for="course_course_subscription_id" class="form-label">Abbonamento</label>
+                                                                <select id="course_course_subscription_id" class="form-select  @error('course_course_subscription_id') is-invalid @enderror" aria-label="Abbonamento" wire:model="course_course_subscription_id">
                                                                     <option value="">
                                                                     @foreach($course_subscriptions as $t)
                                                                         <option value="{{$t["id"]}}">{{$t["name"]}}
@@ -1544,7 +1544,7 @@
                                         @endforeach
                                     </div>
                                     <div class="resume--tab_info gruppi">
-                                        <h2 class="mb-3"><i class="fa-solid fa-users"></i><span>Gruppi di interesse</span></h2>
+                                        <h2 class="mb-3"><i class="fa-solid fa-users"></i><span>Gruppi di appartenenza</span></h2>
                                         <ul>
                                         @foreach($member_categories as $member_category)
                                             <li class="resume--info"><span>{{$member_category->category->getTree()}}</span></li>

+ 5 - 30
resources/views/livewire/profile.blade.php

@@ -48,43 +48,18 @@
                             <div class="col-md-6 mb-3">
                                 <label class="form-label">Email</label>
                                 <input type="email"
-                                class="form-control @error('email') is-invalid @enderror"
-                                wire:model="email" {{ $editMode ? '' : 'disabled' }}>
+                                    class="form-control @error('email') is-invalid @enderror"
+                                    wire:model="email" {{ $editMode ? '' : 'disabled' }}>
                                 @error('email') <span class="text-danger">{{ $message }}</span> @enderror
                             </div>
-                            <div class="col-md-6"></div>
                             <div class="col-md-6 mb-3">
                                 <label class="form-label">Password</label>
-                                @if ($editMode)
-                                <div class="password-wrapper">
-                                @endif
-                                    <input type="password" class="form-control @error('password') is-invalid @enderror" wire:model="password" {{ $editMode ? '' : 'disabled' }}>
-                                @if ($editMode)
-                                    <div class="password-eye" onclick="togglePassword(this)">
-                                        <i class="fas fa-eye password-hidden"></i>
-                                        <i class="fas fa-eye-slash password-shown"></i>
-                                    </div>
-                                </div>
-                                @endif
+                                <input type="password"
+                                    class="form-control @error('password') is-invalid @enderror"
+                                    wire:model="password" {{ $editMode ? '' : 'disabled' }}>
                                 @error('password') <span class="text-danger">{{ $message }}</span> @enderror
                                 <small class="form-text text-muted">Lasciare vuoto per non modificare</small>
                             </div>
-                            <div class="col-md-6 mb-3">
-                                <label class="form-label">Conferma password</label>
-                                @if ($editMode)
-                                <div class="password-wrapper">
-                                @endif
-                                    <input type="password" class="form-control @error('password_confirmation') is-invalid @enderror" wire:model="password_confirmation" {{ $editMode ? '' : 'disabled' }}>
-                                @if ($editMode)
-                                    <div class="password-eye" onclick="togglePassword(this)">
-                                        <i class="fas fa-eye password-hidden"></i>
-                                        <i class="fas fa-eye-slash password-shown"></i>
-                                    </div>
-                                </div>
-                                @endif
-                                @error('password_confirmation') <span class="text-danger">{{ $message }}</span> @enderror
-                                <small class="form-text text-muted">Lasciare vuoto per non modificare</small>
-                            </div>
                         </div>
                     </div>
 

+ 72 - 2
resources/views/livewire/rate.blade.php

@@ -81,10 +81,13 @@
             <div class="col-6">
                 <h3 class="mt-4">{{$detail}}</h3><br>
             </div>
-            <div class="col-3 right" style="margin-top:20px;text-align:right">
+            <div class="col-2 right" style="margin-top:20px;text-align:right">
+                <button id="btPay" style="display:none;" class="btn--ui" >PAGA</button>
+            </div>
+            <div class="col-2 right" style="margin-top:20px;text-align:right">
                 <button id="btSuspend" style="display:none;" class="btn--ui" >SOSPENDI/ATTIVA SELEZIONATI</button>
             </div>
-            <div class="col-3 right" style="margin-top:20px;text-align:right">
+            <div class="col-2 right" style="margin-top:20px;text-align:right">
                 <button id="btRemove" style="display:none;" class="btn--ui" >ELIMINA SELEZIONATI</button>
             </div>
         </div>
@@ -135,6 +138,17 @@
                                     data-bs-content="Visualizza ricevuta"><i class="fa-regular fa-eye"></i></button>
                             @endif
                             @if($record->status == 0)
+
+                                <input type="hidden" id="memberId_{{$record->id}}" value="{{$record->member_id}}">
+                                <input type="hidden" id="causalId_{{$record->id}}" value="{{!$record->is_subscription ? $record->member_course->course->causal_id : ''}}">
+                                <input type="hidden" id="subCausalId_{{$record->id}}" value="{{$record->is_subscription ? $record->member_course->course->sub_causal_id : ''}}">
+                                <input type="hidden" id="createSubscription_{{$record->id}}" value="{{$record->is_subscription ? '1' : ''}}">
+                                <input type="hidden" id="months_{{$record->id}}" value="{{implode("|", json_decode($record->months))}}">
+                                <input type="hidden" id="price_{{$record->id}}" value="{{!$record->is_subscription ? $record->price : ''}}">
+                                <input type="hidden" id="subscription_price_{{$record->id}}" value="{{$record->is_subscription ? $record->price : ''}}">
+                                <input type="hidden" id="courseId_{{$record->id}}" value="{{$record->member_course_id}}">
+                                <input type="hidden" id="rateId_{{$record->id}}" value="{{$record->id}}">
+
                                 <a class="btn  u" href="/in?new=1&memberId={{$record->member_id}}&causalId={{!$record->is_subscription ? $record->member_course->course->causal_id : ''}}&subCausalId={{$record->is_subscription ? $record->member_course->course->sub_causal_id : ''}}&createSubscription={{$record->is_subscription ? '1' : ''}}&months={{implode("|", json_decode($record->months))}}&price={{!$record->is_subscription ? $record->price : ''}}&subscription_price={{$record->is_subscription ? $record->price : ''}}&courseId={{$record->member_course_id}}&rateId={{$record->id}}" data-bs-toggle="popover"
                                 data-bs-trigger="hover focus" data-bs-placement="bottom"
                                 data-bs-content="Crea entrata"><i class="fa-regular fa-file-lines"></i></a>
@@ -474,11 +488,13 @@
                     {
                         $("#btRemove").show();
                         $("#btSuspend").show();
+                        $("#btPay").show();
                     }
                     else
                     {
                         $("#btRemove").hide();
                         $("#btSuspend").hide();
+                        $("#btPay").hide();
                     }
 
                 });
@@ -496,11 +512,13 @@
                     {
                         $("#btRemove").show();
                         $("#btSuspend").show();
+                        $("#btPay").show();
                     }
                     else
                     {
                         $("#btRemove").hide();
                         $("#btSuspend").hide();
+                        $("#btPay").hide();
                         $(".chkAll").prop( "checked", false );
                     }
 
@@ -536,6 +554,58 @@
                     }
                 });
 
+                $('#btPay').click(function(){
+                    var ids = [];
+
+                    var memberId = 0;
+                    var causalId = '';
+                    var subCausalId = '';
+                    var createSubscription = '';
+                    var months = '';
+                    var price = '';
+                    var subscription_price = '';
+                    var courseId = 0;
+                    var rateId = 0;
+
+                    $('.chkIds').each(function () {
+                        if (this.checked)
+                        {
+                            var id = $(this).val();
+                            memberId = $("#memberId_" + id).val();
+                            
+                            if ($("#subscription_price_" + id).val() != '')
+                            {
+                                subCausalId = $("#subCausalId_" + id).val();;
+                                createSubscription = $("#createSubscription_" + id).val();
+                                subscription_price = $("#subscription_price_" + id).val();
+                            }
+                            else
+                            {
+                                causalId = $("#causalId_" + id).val();
+                                if (months != '') 
+                                    months += "|";
+                                months += $("#months_" + id).val();;
+                                price += $("#price_" + id).val();;                            
+                            }
+                            courseId = $("#courseId_" + id).val();;
+                            if (rateId != '') 
+                                rateId += ",";
+                            rateId += $("#rateId_" + id).val();;
+                        }
+                            //ids.push($(this).val());
+                    });
+
+                    document.location.href = "/in?new=1&memberId=" + memberId + "&causalId=" + causalId + "&subCausalId=" + subCausalId + "&createSubscription=" + createSubscription + "&months=" + months + "&price=" + price + "&subscription_price=" + subscription_price + "&courseId=" + courseId + "&rateId=" + rateId;
+
+                    /*if (confirm('Sei sicuro?'))
+                    {
+                        @this.suspendMultiple(ids);
+                        setTimeout(() => {
+                            location.reload();    
+                        }, 200);                
+                    }*/
+                });
+
             } );
 
             

+ 5 - 5
resources/views/livewire/settings.blade.php

@@ -16,14 +16,14 @@
             <h4 style="cursor:pointer;{{$type == 'corsi' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('corsi')">Corsi</h4>
             <h4 style="cursor:pointer;{{$type == 'contabilita' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('contabilita')">Contabilità</h4>
             <h4 style="cursor:pointer;{{$type == 'comunicazioni' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('comunicazioni')">Comunicazioni</h4>
-            <a href="/users"><h4>Utenze</h4></a>
+            <a href="/users"><h4>Profilo utenti</h4></a>
         </div>
 
         @if($type == 'anagrafica')
             <div id="anagrafica">
                 <a href="/categories">
                     <div class="row">
-                        <div class="col-md-11 p-2"><h5>Gruppi di interesse</h5></div>
+                        <div class="col-md-11 p-2"><h5>Gruppi di appartenenza</h5></div>
                         <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
@@ -49,7 +49,7 @@
             <div id="corsi">
                 <a href="/course_subscriptions">
                     <div class="row">
-                        <div class="col-md-11 p-2"><h5>Frequenza di pagamenti</h5></div>
+                        <div class="col-md-11 p-2"><h5>Abbonamenti</h5></div>
                         <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
@@ -82,13 +82,13 @@
                     </div>
                 </a>
                 <hr size="1">
-                {{-- <a href="/course_types">
+                <a href="/course_types">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Tipologie</h5></div>
                         <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
-                <hr size="1"> --}}
+                <hr size="1">
             </div>
         @endif
 

+ 2 - 2
resources/views/livewire/sms_comunications.blade.php

@@ -161,7 +161,7 @@
                             </div>
                         </div>
 
-                        @if($sendNow === false || $sendNow === 'false')
+                        @if(!$sendNow)
                         <div class="row mb-3">
                             <div class="col-md-6">
                                 <label for="scheduledDateTime" class="form-label">Data e Ora di Invio</label>
@@ -178,7 +178,7 @@
                             <button type="button" class="btn--ui lightGrey" wire:click="cancel()">Annulla</button>
                             @if($add)
                                 <button type="submit" class="btn--ui" wire:click.prevent="store()">
-                                    @if($sendNow === false || $sendNow === 'false')
+                                    @if($sendNow)
                                         Salva e Invia
                                     @else
                                         Salva e Programma

+ 15 - 55
resources/views/livewire/user.blade.php

@@ -142,80 +142,27 @@
                                 </div>
                             @endif
 
-                            <div class="col-md-6 mt-3">
-                                <div class="form--item">
-                                    <label for="enabled" class="form-label">Livello</label>
-                                    <select class="form-control" id="level" wire:model="level">
-                                        <option value="0">Admin
-                                        <option value="1">Worker
-                                        <option value="2">Istruttore
-                                    </select>
-                                </div>
-                            </div>
-
                             @if ($add)
                                 <div class="col-md-6 mt-3">
                                     <div class="form--item">
                                         <label for="password" class="form-label">Password</label>
-                                        <div class="password-wrapper">
-                                            <input class="form-control js-keyupTitle @error('password') is-invalid @enderror" type="password" id="password" placeholder="Password" wire:model="password">
-                                            <div class="password-eye" onclick="togglePassword(this)">
-                                                <i class="fas fa-eye password-hidden"></i>
-                                                <i class="fas fa-eye-slash password-shown"></i>
-                                            </div>
-                                        </div>
+                                        <input class="form-control js-keyupTitle @error('password') is-invalid @enderror" type="password" id="password" placeholder="Password" wire:model="password">
                                         @error('password')
                                             <div class="invalid-feedback">{{ $message }}</div>
                                         @enderror
                                     </div>
                                 </div>
-                                <div class="col-md-6 mt-3">
-                                    <div class="form--item">
-                                        <label for="password_confirmation" class="form-label">Conferma password</label>
-                                        <div class="password-wrapper">
-                                            <input class="form-control js-keyupTitle @error('password_confirmation') is-invalid @enderror" type="password" id="password_confirmation" placeholder="Ripeti password" wire:model="password_confirmation">
-                                            <div class="password-eye" onclick="togglePassword(this)">
-                                                <i class="fas fa-eye password-hidden"></i>
-                                                <i class="fas fa-eye-slash password-shown"></i>
-                                            </div>
-                                        </div>
-                                        @error('password_confirmation')
-                                            <div class="invalid-feedback">{{ $message }}</div>
-                                        @enderror
-                                    </div>
-                                </div>
                             @elseif($canEditEmailAndPassword)
                                 <div class="col-md-6 mt-3">
                                     <div class="form--item">
                                         <label for="password" class="form-label">Password</label>
-                                        <div class="password-wrapper">
-                                            <input class="form-control js-keyupTitle @error('password') is-invalid @enderror" type="password" id="password" placeholder="Password" wire:model="password">
-                                            <div class="password-eye" onclick="togglePassword(this)">
-                                                <i class="fas fa-eye password-hidden"></i>
-                                                <i class="fas fa-eye-slash password-shown"></i>
-                                            </div>
-                                        </div>
+                                        <input class="form-control js-keyupTitle @error('password') is-invalid @enderror" type="password" id="password" placeholder="Password" wire:model="password">
                                         <small>Lasciare vuota per NON modificarla</small>
                                         @error('password')
                                             <div class="invalid-feedback">{{ $message }}</div>
                                         @enderror
                                     </div>
                                 </div>
-                                <div class="col-md-6 mt-3">
-                                    <div class="form--item">
-                                        <label for="password_confirmation" class="form-label">Conferma password</label>
-                                        <div class="password-wrapper">
-                                            <input class="form-control js-keyupTitle @error('password_confirmation') is-invalid @enderror" type="password" id="password_confirmation" placeholder="Ripeti password" wire:model="password_confirmation">
-                                            <div class="password-eye" onclick="togglePassword(this)">
-                                                <i class="fas fa-eye password-hidden"></i>
-                                                <i class="fas fa-eye-slash password-shown"></i>
-                                            </div>
-                                        </div>
-                                        @error('password_confirmation')
-                                            <div class="invalid-feedback">{{ $message }}</div>
-                                        @enderror
-                                    </div>
-                                </div>
                             @else
                                 <div class="col-md-6 mt-3">
                                     <div class="form--item">
@@ -227,6 +174,19 @@
                             @endif
 
                         </div>
+                        <div class="row mt-3">
+
+                            <div class="col-md-6">
+                                <div class="form--item">
+                                    <label for="enabled" class="form-label">Livello</label>
+                                    <select class="form-control" id="level" wire:model="level">
+                                        <option value="0">Admin
+                                        <option value="1">Worker
+                                        <option value="2">Istruttore
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
                         <div class="row mt-3 mb-3">
                             <div class="col-md-6">
                                 <div class="form--item">

+ 1 - 37
resources/views/login.blade.php

@@ -6,19 +6,6 @@
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Dashboard</title>
-
-  {{-- Favicon --}}
-    <link rel="icon" type="image/png" href="{{asset('favicon-96x96.png')}}" sizes="96x96" />
-    <link rel="icon" type="image/svg+xml" href="{{asset('favicon.svg')}}" />
-    <link rel="shortcut icon" href="{{asset('favicon.ico')}}"/>
-    <link rel="shortcut icon" href="{{asset('favicon-light.ico')}}" media="(prefers-color-scheme: light)"/>
-    <link rel="shortcut icon" href="{{asset('favicon-dark.ico')}}" media="(prefers-color-scheme: dark)"/>
-    <link rel="apple-touch-icon" sizes="180x180" href="{{asset('apple-touch-icon.png')}}" />
-    <link rel="manifest" href="{{asset('site.webmanifest')}}" />
-  {{-- end Favicon --}}
-
-  <!-- Font Awesome -->
-  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
   <link rel="stylesheet" href="https://use.typekit.net/dit2bgs.css">
   <link rel="stylesheet" href="/css/style.css">
   <link rel="stylesheet" href="/css/new_style.css">
@@ -46,13 +33,7 @@
                 </div>
                 <div class="form--item input-group mb-3">
                     <label for="password">Password</label>
-                    <div class="password-wrapper">
-                        <input type="password" class="form-control" placeholder="Password" id="password" name="password">
-                        <div class="password-eye" onclick="togglePassword(this)">
-                            <i class="fas fa-eye password-hidden"></i>
-                            <i class="fas fa-eye-slash password-shown"></i>
-                        </div>
-                    </div>
+                    <input type="password" class="form-control" placeholder="Password" id="password" name="password">
                     <span class="input-group-text" id="basic-addon2"><i class="ico--ui lock"></i></span>
                 </div>
                 <div class="form--item input-group d-flex align-items-center justify-content-center">
@@ -71,23 +52,6 @@
 
   <script src="/assets/js/bootstrap.bundle.js"></script>
   <script src="/assets/js/app.js"></script>
-
-  <script>
-    function togglePassword(eye_icon) {
-        let wrapper = eye_icon.parentElement;
-        let password_html = wrapper.querySelector("input");
-
-        if (password_html) {
-            if (password_html.type == "password") {
-                password_html.type = "text";
-                eye_icon.classList.add("shown");
-            } else {
-                password_html.type = "password";
-                eye_icon.classList.remove("shown");
-            }
-        }
-    }
-  </script>
 </body>
 
 </html>

+ 2 - 2
routes/web.php

@@ -1207,7 +1207,7 @@ Route::group(['middleware' => 'tenant'], function () {
             $course_ids = \App\Models\Course::whereIn('course_frequency_id', $frequencies)->pluck('id');
             $member_course = $member_course->whereIn('course_id', $course_ids);
         }
-        if ($_GET["filterType"] != "undefined") {
+        if ($_GET["filterType"] != "null") {
             $types = explode(",", $_GET["filterType"]);
             $course_ids = \App\Models\Course::whereIn('course_type_id', $types)->pluck('id');
             $member_course = $member_course->whereIn('course_id', $course_ids);
@@ -1578,7 +1578,7 @@ Route::group(['middleware' => 'tenant'], function () {
             $course_ids = \App\Models\Course::whereIn('course_frequency_id', $frequencies)->pluck('id');
             $datas = $datas->whereIn('course_id', $course_ids);
         }
-        if ($_GET["filterType"] != "undefined") {
+        if ($_GET["filterType"] != "null") {
             $types = explode(",", $_GET["filterType"]);
             $course_ids = \App\Models\Course::whereIn('course_type_id', $types)->pluck('id');
             $datas = $datas->whereIn('course_id', $course_ids);