Luca Parisio пре 1 година
родитељ
комит
0097a0a7e1
54 измењених фајлова са 31558 додато и 789 уклоњено
  1. BIN
      .DS_Store
  2. 75 0
      .env.ciccio
  3. 39 8
      app/Http/Livewire/CourseList.php
  4. 125 39
      app/Http/Livewire/CourseMember.php
  5. 13 0
      app/Http/Livewire/Member.php
  6. 2 10
      app/Http/Livewire/Receipt.php
  7. 36 2
      app/Http/Livewire/Record.php
  8. 4 1
      app/Http/Livewire/RecordIN.php
  9. 26 2
      app/Http/Livewire/RecordINOUT.php
  10. 58 9
      app/Http/Livewire/Reminder.php
  11. 8 1
      app/Models/Member.php
  12. 3 2
      app/helpers.php
  13. 3 1
      bootstrap/app.php
  14. 12 0
      public/assets/js/app.js
  15. 2 2
      public/assets/js/datatables.js
  16. 232 0
      public/css/receipt.blade.php
  17. 1265 0
      public/css/records_in.blade.php
  18. 314 172
      public/css/style.css
  19. 0 0
      public/css/style.css.map
  20. 13938 0
      public/css/style140924.css
  21. 0 0
      public/css/style140924.css.map
  22. 61 25
      resources/views/layouts/app.blade.php
  23. 7 7
      resources/views/livewire/bank.blade.php
  24. 8 8
      resources/views/livewire/card.blade.php
  25. 1 1
      resources/views/livewire/category.blade.php
  26. 2 2
      resources/views/livewire/category_child.blade.php
  27. 15 12
      resources/views/livewire/causal.blade.php
  28. 1 1
      resources/views/livewire/city.blade.php
  29. 5 5
      resources/views/livewire/course.blade.php
  30. 5 5
      resources/views/livewire/course_duration.blade.php
  31. 5 5
      resources/views/livewire/course_frequency.blade.php
  32. 5 5
      resources/views/livewire/course_level.blade.php
  33. 172 20
      resources/views/livewire/course_list.blade.php
  34. 283 32
      resources/views/livewire/course_member.blade.php
  35. 5 5
      resources/views/livewire/course_subscription.blade.php
  36. 5 5
      resources/views/livewire/course_type.blade.php
  37. 5 5
      resources/views/livewire/discipline.blade.php
  38. 255 183
      resources/views/livewire/member.blade.php
  39. 1 1
      resources/views/livewire/nation.blade.php
  40. 5 5
      resources/views/livewire/payment_method.blade.php
  41. 1 1
      resources/views/livewire/province.blade.php
  42. 12 12
      resources/views/livewire/receipt.blade.php
  43. 132 6
      resources/views/livewire/records.blade.php
  44. 85 73
      resources/views/livewire/records_in.blade.php
  45. 40 12
      resources/views/livewire/records_in_out.blade.php
  46. 25 25
      resources/views/livewire/records_out.blade.php
  47. 100 18
      resources/views/livewire/reminders.blade.php
  48. 9 3
      resources/views/livewire/settings.blade.php
  49. 4 4
      resources/views/livewire/sponsor.blade.php
  50. 14006 0
      resources/views/livewire/style.css
  51. 0 0
      resources/views/livewire/style.css.map
  52. 8 8
      resources/views/livewire/supplier.blade.php
  53. 5 5
      resources/views/livewire/vat.blade.php
  54. 130 41
      routes/web.php

+ 75 - 0
.env.ciccio

@@ -0,0 +1,75 @@
+APP_NAME=IaoTeam
+APP_ENV=local
+APP_KEY=base64:4txSOZHKaUplEA5+qjdLBIc1QiASfjwwUTb0NmMVnKY=
+APP_DEBUG=true
+APP_URL=http://127.0.0.1:8000
+
+LOG_CHANNEL=stack
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=iao_team_prod
+DB_USERNAME=root
+DB_PASSWORD=_brUce80!
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+FILESYSTEM_DISK=local
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+MEMCACHED_HOST=127.0.0.1
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=smtp
+MAIL_HOST=out.postassl.it
+MAIL_PORT=465
+MAIL_USERNAME=info@iaoteam.itxxx
+MAIL_PASSWORD="Piffero#2012"
+MAIL_ENCRYPTION=ssl
+MAIL_FROM_ADDRESS="noreply@iaoteam.it"
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_HOST=
+PUSHER_PORT=443
+PUSHER_SCHEME=https
+PUSHER_APP_CLUSTER=mt1
+
+VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+VITE_PUSHER_HOST="${PUSHER_HOST}"
+VITE_PUSHER_PORT="${PUSHER_PORT}"
+VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
+VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
+
+LOGO="/img/logo-madonnella.webp"
+RAGIONE_SOCIALE="La Madonnella"
+INDIRIZZO="Via di Villa Grazioli snc 00046"
+LOCALITA="Grottaferrata"
+PROVINCIA="RM"
+CODICE_FISCALE=""
+PARTITA_IVA=""
+
+VAT_MANAGE=0
+FISCAL_YEAR_MONTH_FROM=1
+FISCAL_YEAR_MONTH_TO=12
+
+RECEIPT_MAIL_SUBJECT="Centro Sportivo La Madonnella - Ricevuta di pagamento "
+RECEIPT_DELETE_MAIL_SUBJECT="Centro Sportivo La Madonnella - Annullamento ricevuta di pagamento "
+
+MAIL_CCN="l.parisio@webmagistri.it"

+ 39 - 8
app/Http/Livewire/CourseList.php

@@ -23,6 +23,9 @@ class CourseList extends Component
     public $course_frequencies = [];
     public $course_levels = [];
 
+    public $totals = [];
+    public $totalIsc = [];
+
     public $months = array('Set', 'Ott', 'Nov', 'Dic', 'Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago');
 
     public function mount()
@@ -104,13 +107,13 @@ class CourseList extends Component
                 foreach ($record->rows as $row)
                 {
 
-                    if ($row->causal_id == $x->course->sub_causal_id)
+                    //if ($row->causal_id == $x->course->sub_causal_id || str_contains(strtolower($row->note), 'iscrizione'))
+                    if (str_contains(strtolower($row->note), 'iscrizione'))
                     {
                         $subPrice = $row->amount;
                     }
-                    if ($row->causal_id == $x->course->causal_id)
+                    if ($row->causal_id == $x->course->causal_id && !str_contains(strtolower($row->note), 'iscrizione'))
                     {
-
                         $tot = sizeof(json_decode($row->when));
                         foreach(json_decode($row->when) as $m)
                         {
@@ -120,6 +123,39 @@ class CourseList extends Component
                 }
             }
 
+            for($i=1; $i<=12; $i++)
+            {
+
+                $cls = $this->getColor($x->months, $i);
+                if ($cls != 'grey')
+                {
+
+                    if (!isset($this->totals[$i]))
+                    {
+                        $this->totals[$i]['green'] = 0;
+                        $this->totals[$i]['orange'] = 0;
+                        $this->totals[$i]['yellow'] = 0;
+                    }
+
+
+                    if ($cls == 'yellow')
+                    {
+                        $this->totals[$i][$cls] += 1;
+                    }
+                    else
+                    {
+                        $p = isset($prices[$i]) ? $prices[$i] : $price;
+                        $this->totals[$i][$cls] += $p;
+                    }
+                }
+            }
+
+            $sub = $x->subscribed ? "Y" : "N";
+            if (isset($this->totalIsc[$sub]))
+                $this->totalIsc[$sub] += $subPrice;
+            else
+                $this->totalIsc[$sub] = $subPrice;
+
             $this->records[] = array(
                 $x->member_id . "§" . $x->member->first_name . "§" . $x->member->last_name,
                 $this->getColor($x->months, 9) . "§" . (isset($prices[9]) ? $prices[9] : $price),
@@ -170,11 +206,6 @@ class CourseList extends Component
         return $class;
     }
 
-    public function search()
-    {
-
-    }
-
     public function newPayment($course_id, $month, $member_id, $id)
     {
         if ($month < 5) $month += 12;

+ 125 - 39
app/Http/Livewire/CourseMember.php

@@ -13,21 +13,30 @@ class CourseMember extends Component
     public $course_frequencies = [];
     public $course_types = [];
     public $course_levels = [];
+    public $course_durations = [];
     public $course_years = [];
 
-    public $filterCourse = "";
-    public $filterLevel = "";
-    public $filterType = "";
-    public $filterFrequency = "";
-    public $filterDays = "";
-    public $filterHours = "";
+    public $fromYear = "";
+    public $toYear = "";
+    public $fromFromYear = "";
+    public $toToYear = "";
+
+    public $filterCourse = [];
+    public $filterLevel = [];
+    public $filterFrequency = [];
+    public $filterType = [];
+    public $filterDuration = [];
+
+    public $filterDays = [];
+    public $filterHours = [];
     public $filterSubscription = "";
-    public $filterStatus = "";
+    public $filterStatus = [];
     public $filterYear = "";
 
-    public $chkCertificateNormal = 0;
+    /*public $chkCertificateNormal = 0;
     public $chkCertificateAgonistico = 0;
-    public $chkCertificateScaduti = 0;
+    public $chkCertificateScaduti = 0;*/
+    public $chkCertificateType = "";
     public $chkCertificateScadenza = 0;
     public $chkCard = [];
 
@@ -39,6 +48,7 @@ class CourseMember extends Component
         $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->get();
         $this->course_frequencies = \App\Models\CourseFrequency::select('*')->where('enabled', true)->get();
         $this->course_levels = \App\Models\CourseLevel::select('*')->where('enabled', true)->get();
+        $this->course_durations = \App\Models\CourseDuration::select('*')->where('enabled', true)->get();
         $this->course_years = \App\Models\Course::select('year')->where('year', '<>', '')->groupBy('year')->pluck('year');
         $this->courses = \App\Models\Course::orderBy('name')->groupBy('name')->pluck('name');
 
@@ -50,35 +60,67 @@ class CourseMember extends Component
         // Carico tutti i corsi associati
         $this->filter = '';
         $datas = \App\Models\MemberCourse::with('member');
-        if ($this->filterCourse != "")
+
+        if (sizeof($this->filterCourse) > 0)
         {
-            $course_ids = \App\Models\Course::where('name', 'like', '%' . $this->filterCourse . "%")->pluck('id');
+            $course_ids = [];
+            foreach($this->filterCourse as $c)
+            {
+                $all = \App\Models\Course::where('name', 'like', '%' . $c . "%")->get();
+                foreach($all as $a)
+                {
+                    $course_ids[] = $a->id;
+                }
+            }
             $datas = $datas->whereIn('course_id', $course_ids);
-            $this->filter .= $this->filter != '' ? ', ' : '';
-            $this->filter .= "Corso : " . $this->filterCourse . " ";
         }
-        if ($this->filterLevel != "")
+        if (sizeof($this->filterLevel) > 0)
         {
-            $course_ids = \App\Models\Course::where('course_level_id', $this->filterLevel)->pluck('id');
+            $course_ids = \App\Models\Course::whereIn('course_level_id', $this->filterLevel)->pluck('id');
             $datas = $datas->whereIn('course_id', $course_ids);
-            $this->filter .= $this->filter != '' ? ', ' : '';
-            $this->filter .= "Livello : " . \App\Models\CourseLevel::findOrFail($this->filterLevel)->name . " ";
         }
-        if ($this->filterType != "")
+        if (sizeof($this->filterFrequency) > 0)
         {
-            $course_ids = \App\Models\Course::where('course_type_id', $this->filterType)->pluck('id');
+            $course_ids = \App\Models\Course::whereIn('course_frequency_id', $this->filterFrequency)->pluck('id');
             $datas = $datas->whereIn('course_id', $course_ids);
-            $this->filter .= $this->filter != '' ? ', ' : '';
-            $this->filter .= "Tipologia : " . \App\Models\CourseType::findOrFail($this->filterType)->name . " ";
         }
-        if ($this->filterFrequency != "")
+        if (sizeof($this->filterType) > 0)
         {
-            $course_ids = \App\Models\Course::where('course_frequency_id', $this->filterFrequency)->pluck('id');
+            $course_ids = \App\Models\Course::whereIn('course_type_id', $this->filterType)->pluck('id');
             $datas = $datas->whereIn('course_id', $course_ids);
-            $this->filter .= $this->filter != '' ? ', ' : '';
-            $this->filter .= "Durata : " . \App\Models\CourseFrequency::findOrFail($this->filterFrequency)->name . " ";
         }
-        if ($this->filterDays != "")
+        if (sizeof($this->filterDuration) > 0)
+        {
+            $course_ids = \App\Models\Course::whereIn('course_duration_id', $this->filterDuration)->pluck('id');
+            $datas = $datas->whereIn('course_id', $course_ids);
+        }
+        if (sizeof($this->filterDays) > 0)
+        {
+            $m_ids = [];
+            foreach($this->filterDays as $c)
+            {
+                $all = \App\Models\MemberCourse::where('when', 'like', "%" . $c . "%")->get();
+                foreach($all as $a)
+                {
+                    $m_ids[] = $a->member_id;
+                }
+            }
+            $datas = $datas->whereIn('member_id', $m_ids);
+        }
+        if (sizeof($this->filterHours) > 0)
+        {
+            $m_ids = [];
+            foreach($this->filterHours as $c)
+            {
+                $all = \App\Models\MemberCourse::where('when', 'like', '%"from":"' . $c . "%")->get();
+                foreach($all as $a)
+                {
+                    $m_ids[] = $a->member_id;
+                }
+            }
+            $datas = $datas->whereIn('member_id', $m_ids);
+        }
+        /*if ($this->filterDays != "")
         {
             $members_ids = \App\Models\MemberCourse::where('when', 'like', "%" . $this->filterDays . "%")->pluck('member_id');
             $datas = $datas->whereIn('member_id', $members_ids);
@@ -91,7 +133,7 @@ class CourseMember extends Component
             $datas = $datas->whereIn('member_id', $members_ids);
             $this->filter .= $this->filter != '' ? ', ' : '';
             $this->filter .= "Ore : " . $this->filterHours . " ";
-        }
+        }*/
 
         if ($this->filterSubscription != "")
         {
@@ -100,6 +142,52 @@ class CourseMember extends Component
             $this->filter .= $this->filter != '' ? ', ' : '';
             $this->filter .= "Pagata sottoscrizione : " . ($this->filterSubscription == 1 ? "SI" : "NO") . " ";
         }
+        if ($this->chkCertificateType != "")
+        {
+            $types = \App\Models\MemberCertificate::where('type', $this->chkCertificateType)->pluck('member_id');
+            $datas = $datas->whereIn('member_id', $types);
+        }
+        if ($this->chkCertificateScadenza > 0)
+        {
+            if ($this->chkCertificateScadenza == "1")
+                $scad = \App\Models\MemberCertificate::where('expire_date', '<', date("Y-m-d"))->pluck('member_id');
+            if ($this->chkCertificateScadenza == "2")
+                $scad = \App\Models\MemberCertificate::whereBetween('expire_date', [date("Y-m-d"), date("Y-m-d", strtotime("+1 month"))])->pluck('member_id');
+            $datas = $datas->whereIn('member_id', $scad);
+        }
+        if ($this->fromYear != "")
+        {
+            $m_ids = \App\Models\Member::where('birth_date', '<', date("Y-m-d", strtotime("-" . $this->fromYear . " year", time())))->pluck('id');
+            $datas = $datas->whereIn('member_id', $m_ids);
+        }
+        if ($this->toYear != "")
+        {
+            $m_ids = \App\Models\Member::where('birth_date', '>', date("Y-m-d", strtotime("-" . $this->toYear . " year", time())))->pluck('id');
+            $datas = $datas->whereIn('member_id', $m_ids);
+        }
+        if ($this->fromFromYear != "")
+        {
+            $m_ids = \App\Models\Member::whereYear('birth_date', '>=', $this->fromFromYear)->pluck('id');
+            $datas = $datas->whereIn('member_id', $m_ids);
+        }
+        if ($this->toToYear != "")
+        {
+            $m_ids = \App\Models\Member::whereYear('birth_date', '<=', $this->toToYear)->pluck('id');
+            $datas = $datas->whereIn('member_id', $m_ids);
+        }
+        /*if ($_GET["toYear"] != "")
+        {
+            $x = $x->where('birth_date', '>', date("Y-m-d", strtotime("-" . $_GET["toYear"] . " year", time())));
+        }
+        if ($_GET["fromYearYear"] != "")
+        {
+            $x = $x->whereYear('birth_date', '>=', $_GET["fromYearYear"]);
+        }
+        if ($_GET["toYearYear"] != "")
+        {
+            $x = $x->whereYear('birth_date', '<=', $_GET["toYearYear"]);
+        }*/
+        /*
         if ($this->chkCertificateNormal > 0)
         {
             $normal = \App\Models\MemberCertificate::where('type', 'N')->pluck('member_id');
@@ -127,7 +215,7 @@ class CourseMember extends Component
             $datas = $datas->whereIn('member_id', $scadenza);
             $this->filter .= $this->filter != '' ? ', ' : '';
             $this->filter .= "Certificato in scadenza : SI ";
-        }
+        }*/
         if (sizeof($this->chkCard) > 0)
         {
             $card_ids = \App\Models\MemberCard::whereIn('card_id', $this->chkCard)->pluck('member_id');
@@ -149,20 +237,23 @@ class CourseMember extends Component
         }
 
         $aRet = [];
-        if ($this->filterStatus != "")
+        if (sizeof($this->filterStatus) > 0)
         {
-            foreach($datas->get() as $aaa)
+            foreach($this->filterStatus as $s)
             {
+                foreach($datas->get() as $aaa)
+                {
 
-                $state = \App\Models\Member::findOrFail($aaa->member_id)->isActive();
-                if ($state["status"] == $this->filterStatus)
-                    $aRet[] = $aaa;
+                    $state = \App\Models\Member::findOrFail($aaa->member_id)->isActive();
+                    if ($state["status"] == $s)
+                        $aRet[] = $aaa;
+                }
             }
         }
         else
             $aRet = $datas->get();
 
-        $this->records = $aRet;;
+        $this->records = $aRet;
 
         $this->emit('load-data-table');
 
@@ -170,11 +261,6 @@ class CourseMember extends Component
 
     }
 
-    public function search()
-    {
-
-    }
-
     public function disableSearch()
     {
         $this->filterCourse = "";

+ 13 - 0
app/Http/Livewire/Member.php

@@ -1313,6 +1313,19 @@ class Member extends Component
     public function addCourse()
     {
         $this->resetCourseFields();
+        if ($this->under18)
+        {
+            $this->course_months[] = array("m" => 9, "status" => "");
+            $this->course_months[] = array("m" => 10, "status" => "");
+            $this->course_months[] = array("m" => 11, "status" => "");
+            $this->course_months[] = array("m" => 12, "status" => "");
+            $this->course_months[] = array("m" => 1, "status" => "");
+            $this->course_months[] = array("m" => 2, "status" => "");
+            $this->course_months[] = array("m" => 3, "status" => "");
+            $this->course_months[] = array("m" => 4, "status" => "");
+            $this->course_months[] = array("m" => 5, "status" => "");
+            $this->course_months[] = array("m" => 6, "status" => "");
+        }
         $this->addCourse = true;
         $this->updateCourse = false;
         $this->emit('setEditCorso', true);

+ 2 - 10
app/Http/Livewire/Receipt.php

@@ -54,16 +54,8 @@ class Receipt extends Component
         $receipt = \App\Models\Receipt::findOrFail($id);
         //$pdf = PDF::loadView('pdf/receipt', array('datas' => $datas, 'from' => $x, 'to' => $y, 'who' => '', 'matricola' => $matricola));
         $pdf = PDF::loadView('receipt', array('receipt' => $receipt));//->output();
-        return $pdf->stream();
-        /*
-        return response()->streamDownload(
-            fn () => print($pdf),
-            "ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf"
-        );*/
-
-        /*return response()->streamDownload(function () {
-            echo $pdf->stream();
-        }, 'test.pdf');*/
+        return $pdf->stream('aaa.pdf');
+
     }
 
     public function search()

+ 36 - 2
app/Http/Livewire/Record.php

@@ -22,6 +22,9 @@ class Record extends Component
     public $fromDate;
     public $toDate;
 
+    public $filterCausals = null;
+    public $filterMember = null;
+
     /*
     public $days = [];
     public $months = [];
@@ -30,6 +33,9 @@ class Record extends Component
 
     public array $recordDatas = [];
     public array $labels = [];
+
+    public array $causals = [];
+    public $members = array();
     /*
     public $selectedFilterFromDay;
     public $selectedFilterFromMonth;
@@ -39,6 +45,11 @@ class Record extends Component
     public $selectedFilterToYear;
     */
 
+    public function hydrate()
+    {
+        $this->emit('load-select');
+    }
+
     public function mount()
     {
 
@@ -64,10 +75,25 @@ class Record extends Component
             $this->years[] = array('value' => $year, 'text' => $year);
         }
         */
+
+        $this->getCausals(\App\Models\Causal::select('id', 'name')->where('parent_id', null)->get(), 0);
+
+        $this->members = \App\Models\Member::select(['id', 'first_name', 'last_name', 'fiscal_code'])->orderBy('last_name')->orderBy('first_name')->get();
+
         $this->payments = \App\Models\PaymentMethod::select('id', 'name')->where('enabled', true)->where('money', false)->get();
 
     }
 
+    public function getCausals($records, $indentation)
+    {
+        foreach($records as $record)
+        {
+            $this->causals[] = array('id' => $record->id, 'name' => $record->getTree(), 'text' => $record->getTree(), 'level' => $indentation);
+            if(count($record->childs))
+                $this->getCausals($record->childs, $indentation + 1);
+        }
+    }
+
     public function getMonth($m)
     {
         $ret = '';
@@ -153,8 +179,16 @@ class Record extends Component
                     ->where(function ($query)  {
                         $query->where('deleted', false)->orWhere('deleted', null);
                     })
-                    ->whereNotIn('member_id', $exclude_from_records)
-                    ->orderBy('date', 'ASC')->orderBy('records.created_at', 'ASC')
+                    ->whereNotIn('member_id', $exclude_from_records);
+                    if ($this->filterCausals != null && sizeof($this->filterCausals) > 0)
+                    {
+                        $datas->whereIn('causal_id', $this->filterCausals);
+                    }
+                    if ($this->filterMember != null && $this->filterMember > 0)
+                    {
+                        $datas->where('member_id', $this->filterMember);
+                    }
+                    $datas = $datas->orderBy('date', 'ASC')->orderBy('records.created_at', 'ASC')
                     ->get();
 
         /*

+ 4 - 1
app/Http/Livewire/RecordIN.php

@@ -167,7 +167,9 @@ class RecordIN extends Component
             $payment_method = \App\Models\PaymentMethod::findOrFail($this->payment_method_id);
             if ($payment_method->money)
             {
-                $ret = $this->virtual >= $this->currencyToDouble($this->amount);
+                $from = str_replace(".", "", str_replace(",", "", number_format($this->virtual, 2)));
+                $to = str_replace(".", "", str_replace(",", "", $this->currencyToDouble($this->amount)));
+                $ret = $from >= $to;
             }
         }
         return $ret;
@@ -1070,6 +1072,7 @@ class RecordIN extends Component
     {
         //$pdf = PDF::loadView('pdf/receipt', array('datas' => $datas, 'from' => $x, 'to' => $y, 'who' => '', 'matricola' => $matricola));
         $pdf = PDF::loadView('receipt', array('receipt' => $this->currentReceip));//->output();
+        $pdfName = "Ricevuta_" . $this->currentReceip->member->last_name . "_" . $this->currentReceip->number . "_" . $this->currentReceip->year . ".pdf";
         return $pdf->stream();
         /*return response()->streamDownload(
             fn () => print($pdf),

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

@@ -73,9 +73,33 @@ class RecordINOUT extends Component
         $this->getCausale(\App\Models\Causal::select('id', 'name')->where('parent_id', null)->where('type', 'IN')->whereNotIn('id', $this->excludeCausals)->get(), 'IN', 0);
         $this->getCausale(\App\Models\Causal::select('id', 'name')->where('parent_id', null)->where('type', 'OUT')->whereNotIn('id', $this->excludeCausals)->get(), 'OUT', 0);
 
-        $this->causalsIn = \App\Models\Causal::where('parent_id', null)->where('type', 'IN')->whereNotIn('id', $this->excludeCausals)->get();
-        $this->causalsOut = \App\Models\Causal::where('parent_id', null)->where('type', 'OUT')->whereNotIn('id', $this->excludeCausals)->get();
+        $this->getCausalsIn(\App\Models\Causal::select('id', 'name')->where('parent_id', null)->where('type', 'IN')->get(), 0);
 
+        $this->getCausalsOut(\App\Models\Causal::select('id', 'name')->where('parent_id', null)->where('type', 'OUT')->get(), 0);
+
+        //$this->causalsIn = \App\Models\Causal::where('parent_id', null)->where('type', 'IN')->whereNotIn('id', $this->excludeCausals)->get();
+        //$this->causalsOut = \App\Models\Causal::where('parent_id', null)->where('type', 'OUT')->whereNotIn('id', $this->excludeCausals)->get();
+
+    }
+
+    public function getCausalsIn($records, $indentation)
+    {
+        foreach($records as $record)
+        {
+            $this->causalsIn[] = array('id' => $record->id, 'name' => $record->getTree(), 'text' => $record->getTree(), 'level' => $indentation);
+            if(count($record->childs))
+                $this->getCausalsIn($record->childs, $indentation + 1);
+        }
+    }
+
+    public function getCausalsOut($records, $indentation)
+    {
+        foreach($records as $record)
+        {
+            $this->causalsOut[] = array('id' => $record->id, 'name' => $record->getTree(), 'text' => $record->getTree(), 'level' => $indentation);
+            if(count($record->childs))
+                $this->getCausalsOut($record->childs, $indentation + 1);
+        }
     }
 
     public function getCausale($records, $type, $indentation)

+ 58 - 9
app/Http/Livewire/Reminder.php

@@ -7,16 +7,20 @@ class Reminder extends Component
 {
     public $records, $dataId;
 
-    public $filterC = true;
-    public $filterT = true;
+    public $filterC = false;
+    public $filterT = false;
+    public $filterType = [];
     public $hasFilter = false;
     public $filterFrom = '', $filterTo = '';
 
     public $sortField ='date';
     public $sortAsc = true;
 
+    public $cards = array();
+
     public function mount()
     {
+        $this->cards = \App\Models\Card::select('id', 'name')->get();
     }
 
     public function sortBy($field)
@@ -36,19 +40,64 @@ class Reminder extends Component
 
         $data = [];
 
+        /*
         if ($this->filterT)
         {
-            $member_cards = \App\Models\MemberCard::with('member')->where('expire_date', '>', date("y-m-d"));
-            if ($this->filterFrom != '')
-                $member_cards = $member_cards->where('expire_date', '>=', $this->filterFrom);
-            if ($this->filterTo != '')
-                $member_cards = $member_cards->where('expire_date', '<=', $this->filterTo);
-            $member_cards = $member_cards->orderBy('expire_date')->get();
+
             foreach($member_cards as $member_card)
             {
                 $data[] = array('type' => 'Tessera', 'first_name' => $member_card->member->first_name, "last_name" => $member_card->member->last_name, 'date' => $member_card->expire_date);
             }
+        }*/
+
+        $member_cards = \App\Models\MemberCard::with('member')->where('expire_date', '>', date("y-m-d"));
+        if ($this->filterFrom != '')
+            $member_cards = $member_cards->where('expire_date', '>=', $this->filterFrom);
+        if ($this->filterTo != '')
+            $member_cards = $member_cards->where('expire_date', '<=', $this->filterTo);
+        $member_cards = $member_cards->orderBy('expire_date')->get();
+
+        $member_certificates = \App\Models\MemberCertificate::with('member')->where('expire_date', '>', date("y-m-d"));
+        if ($this->filterFrom != '')
+            $member_certificates = $member_certificates->where('expire_date', '>=', $this->filterFrom);
+        if ($this->filterTo != '')
+            $member_certificates = $member_certificates->where('expire_date', '<=', $this->filterTo);
+        $member_certificates = $member_certificates->orderBy('expire_date')->get();
+
+        if (sizeof($this->filterType) > 0)
+        {
+
+            foreach($this->filterType as $type)
+            {
+                if ($type == "C")
+                {
+                    foreach($member_certificates as $member_certificate)
+                    {
+                        $data[] = array('type' => 'Certificato', 'first_name' => $member_certificate->member->first_name, "last_name" => $member_certificate->member->last_name, 'date' => $member_certificate->expire_date);
+                    }
+                }
+                else
+                {
+                    foreach($member_cards as $member_card)
+                    {
+                        if ($member_card->card_id == $type)
+                            $data[] = array('type' => 'Tessera ' . $member_card->card->name, 'first_name' => $member_card->member->first_name, "last_name" => $member_card->member->last_name, 'date' => $member_card->expire_date);
+                    }
+                }
+            }
         }
+        else
+        {
+            foreach($member_certificates as $member_certificate)
+            {
+                $data[] = array('type' => 'Certificato', 'first_name' => $member_certificate->member->first_name, "last_name" => $member_certificate->member->last_name, 'date' => $member_certificate->expire_date);
+            }
+            foreach($member_cards as $member_card)
+            {
+                $data[] = array('type' => 'Tessera ' . $member_card->card->name, 'first_name' => $member_card->member->first_name, "last_name" => $member_card->member->last_name, 'date' => $member_card->expire_date);
+            }
+        }
+        /*
         if ($this->filterC)
         {
             $member_certificates = \App\Models\MemberCertificate::with('member')->where('expire_date', '>', date("y-m-d"));
@@ -62,7 +111,7 @@ class Reminder extends Component
                 $data[] = array('type' => 'Certificato', 'first_name' => $member_certificate->member->first_name, "last_name" => $member_certificate->member->last_name, 'date' => $member_certificate->expire_date);
             }
         }
-
+        */
         if ($data)
         {
             $key_values = array_column($data, 'date');

+ 8 - 1
app/Models/Member.php

@@ -176,7 +176,14 @@ class Member extends Model
         {
             if ($card->card->use_for_user_check)
             {
-                $ret = array('status' => $card->expire_date . " 23:59:59" > date("Y-m-d") ? 2 : 1, 'date' => $card->expire_date, 'status_text' => $card->expire_date . " 23:59:59" > date("Y-m-d") ? 'Tesserato' : 'Sospeso');
+                $s = 0;
+                if ($card->expire_date . " 23:59:59" > date("Y-m-d"))
+                {
+                    $c = $this->hasCertificate();
+                    $s = $c["status"] == true ? 2 : 1;
+                }
+                $ret = array('status' => $s, 'date' => $card->expire_date, 'status_text' => $s == 2 ? 'Tesserato' : ($s == 1 ? 'Sospeso' : 'Non tesserato'));
+                //$ret = array('status' => $card->expire_date . " 23:59:59" > date("Y-m-d") ? 2 : 1, 'date' => $card->expire_date, 'status_text' => $card->expire_date . " 23:59:59" > date("Y-m-d") ? 'Tesserato' : 'Sospeso');
             }
         }
         return $ret;

+ 3 - 2
app/helpers.php

@@ -74,7 +74,8 @@ function getConfiguration($field)
 function sendReceiptEmail($receipt)
 {
     $pdf = PDF::loadView('receipt', array('receipt' => $receipt));
-    $pdfName = "Ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf";
+    $pdfName = "Ricevuta_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
+    //$pdfName = "Ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf";
     Storage::put('public/pdf/' . $pdfName, $pdf->output());
     $email = '';
     $member = \App\Models\Member::findOrFail($receipt->member_id);
@@ -109,7 +110,7 @@ function sendReceiptEmail($receipt)
 function sendReceiptDeleteEmail($receipt)
 {
     $pdf = PDF::loadView('receipt', array('receipt' => $receipt));
-    $pdfName = "Ricevuta_annullata_" . $receipt->number . "_" . $receipt->year . ".pdf";
+    $pdfName = "Ricevuta_annullata_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
     Storage::put('public/pdf/' . $pdfName, $pdf->output());
     $email = '';
     $member = \App\Models\Member::findOrFail($receipt->member_id);

+ 3 - 1
bootstrap/app.php

@@ -14,7 +14,9 @@
 $app = new Illuminate\Foundation\Application(
     $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
 );
-
+//print getenv('HTTP_HOST');
+// $hostname = gethostname();
+//$app->loadEnvironmentFrom('.env.ciccio');
 /*
 |--------------------------------------------------------------------------
 | Bind Important Interfaces

+ 12 - 0
public/assets/js/app.js

@@ -20,3 +20,15 @@ var app = {
         x.classList.toggle("filterWrapper_open");
   }
 
+
+    const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
+    const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
+
+    var options = {
+      html: true,
+      // title: "Optional: HELLO(Will overide the default-the inline title)",
+      content: $(".user--profile_menu").html()
+  
+    }
+    var exampleEl = document.getElementById('link-popover')
+    var popover = new bootstrap.Popover(exampleEl, options)

+ 2 - 2
public/assets/js/datatables.js

@@ -13279,8 +13279,8 @@ DataTable.ext.renderer.pagingContainer.bootstrap = function (settings, buttonEls
 DataTable.ext.renderer.layout.bootstrap = function ( settings, container, items ) {
 	var row = $( '<div/>', {
 			"class": items.full ?
-				'row mt-2 justify-content-md-center' :
-				'row mt-2 justify-content-between'
+				'row mt-2 justify-content-md-center mb-3' :
+				'row mt-2 justify-content-between mb-3'
 		} )
 		.appendTo( container );
 

+ 232 - 0
public/css/receipt.blade.php

@@ -0,0 +1,232 @@
+<div class="col">
+    <div class="row h-100">
+
+
+<div class="col card--ui" id="card--dashboard">
+
+    <header id="title--section" style="display:none !important"  class="d-flex align-items-center justify-content-between">
+        <div class="title--section_name d-flex align-items-center justify-content-between">
+            <i class="ico--ui title_section utenti me-2"></i>
+            <h2 class="primary">Ricevute</h2>
+        </div>
+
+        <!--
+        <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
+            <div class="btn--ui entrata d-flex justify-items-between">
+                <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
+            </div>
+        </div>
+        -->
+
+    </header>
+
+    <div class="showFilter" style="display:none"  wire:ignore.self>
+        <hr size="1">
+        <div class="row g-3">
+            <div class="col-md-2">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Periodo</b>
+                    </div>
+                    <div class="col-12">
+                        <input id="dateFrom" type="date" class="form-control filterFrom"  >
+                    </div>
+                    <div class="col-12">
+                        <input id="dateFrom" type="date" class="form-control filterTo" >
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Stato</b>
+                    </div>
+                    <div class="col-12">
+                        <select class="form-select" wire:model="filterStatus" onchange="destroyDataTable()">
+                            <option value="">--Seleziona--
+                            <option value="1">Attiva
+                            <option value="99">Annullata
+                        </select>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row g-3">
+            <div class="col-md-12" style="text-align:right">
+                <button class="btn--ui_outline light" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
+                <button class="btn--ui" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
+            </div>
+        </div>
+        <hr size="1">
+    </div>
+
+    <section id="resume-table">
+        <div class="compare--chart_wrapper d-none"></div>
+
+        <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
+            <thead>
+                <tr>
+                    <th scope="col">Anno</th>
+                    <th scope="col">Numero</th>
+                    <th scope="col">Cognome</th>
+                    <th scope="col">Nome</th>
+                    <th scope="col">Stato</th>
+                    <th scope="col">Data</th>
+                    <th scope="col">Importo</th>
+                    <th scope="col">...</th>
+                </tr>
+            </thead>
+            <tbody id="checkall-target">
+                @foreach($records as $record)
+                    <tr>
+                        <td>{{$record->year}}</td>
+                        <td>{{$record->number}}</td>
+                        <td>{{$record->type == 'IN' ? ($record->member->last_name) : 'Uscita'}}</td>
+                        <td>{{$record->type == 'IN' ? ($record->member->first_name) : ''}}</td>
+                        <td>
+                            <span class="tablesaw-cell-content">
+                                <span class="badge tessera-badge {{$record->status == 1 ? 'active' : 'suspended'}}">{{$record->status == 1 ? 'Attivo' : 'Annullata'}}</span>
+                            </span>
+                        </td>
+                        <td>{{date("d/m/Y", strtotime($record->date))}}</td>
+                        <td>{{formatPrice($record->rows->sum('amount'))}}</td>
+                        <td>
+                            <button type="button" class="btn u" onclick="document.location.href='/in?id={{$record->record_id}}'" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="annulla ricevuta"><i class="ico--ui annulla_ricevuta"></i></button>
+                            <a target="_blank" class="btn  u" href="/receipt/{{$record->id}}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="stampa ricevuta"><i class="fa-regular fa-file-lines"></i></a>
+                            <a target="_blank" class="btn u" onclick="sendMail({{$record->id}})"><i class="fa-regular fa-envelope" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="invia email"></i></a>
+                        </td>
+                    </tr>
+                @endforeach
+
+            </tbody>
+        </table>
+
+    </section>
+
+</div>
+
+@push('scripts')
+    <link href="/css/datatables.css" rel="stylesheet" />
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="/assets/js/datatables.js"></script>
+    <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
+@endpush
+
+@push('scripts')
+    <script>
+
+        $(document).ready(function() {
+            loadDataTable();
+        } );
+
+        Livewire.on('load-data-table', () => {
+            setTimeout(function() {loadDataTable()}, 100);
+        });
+
+        Livewire.on('destroy-data-table', () => {
+            $('#tablesaw-350').DataTable().destroy();
+        });
+
+        function destroyDataTable()
+        {
+            $('#tablesaw-350').DataTable().destroy();
+        }
+
+        var isFilter = false;
+        $(document).ready(function() {
+            $(document).on("click",".showHideFilter",function() {
+                if (isFilter)
+                {
+                    isFilter = false;
+                    $(".showFilter").hide();
+                }
+                else
+                {
+                    isFilter = true;
+                    $(".showFilter").show();
+                }
+            });
+        } );
+
+        function sendMail(id)
+        {
+            $.get("/receipt/mail/" + id, function(data, status){
+                alert('Mail inviata');
+            });
+        }
+
+        function loadDataTable(){
+            $('#tablesaw-350').DataTable({
+                thead: {
+                'th': {'background-color': 'blue'}
+                },
+                layout: {
+                    topStart : null,
+                    topEnd : null,
+                    top1A: {
+                        buttons: [
+                            {
+                                extend: 'collection',
+                                text: 'Esporta',
+                                buttons: [
+                                    {
+                                    extend: 'excelHtml5',
+                                        title: 'Utenti',
+                                        exportOptions: {
+                                            columns: ":not(':last')"
+                                        }
+                                    },
+                                    {
+                                        extend: 'pdfHtml5',
+                                        title: 'Utenti',
+                                        exportOptions: {
+                                            columns: ":not(':last')"
+                                        }
+                                    },
+                                    {
+                                        extend: 'print',
+                                        text: 'Stampa',
+                                        title: 'Utenti',
+                                        exportOptions: {
+                                            columns: ":not(':last')"
+                                        }
+                                    }
+                                ],
+                                dropup: true
+                            }
+                        ]
+                    },
+                    top1B : {
+                        pageLength: {
+                            menu: [[10, 25, 50, 100, 100000], [10, 25, 50, 100, "Tutti"]]
+                        }
+                    },
+                    top1C :'search',
+                },
+                order: [[0, 'desc'], [1, 'desc']],
+                pagingType: 'numbers',
+                "language": {
+                    "url": "/assets/js/Italian.json"
+                },
+                "fnInitComplete": function (oSettings, json) {
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
+                    $(".dt-search").append(html);
+                }
+            });
+            $('#tablesaw-350 thead tr th').addClass('col');
+            $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");
+
+            $(document).ready(function() {
+                $(document).on("click",".addData",function() {
+                    $(".title--section_addButton").trigger("click")
+                });
+            } );
+
+        }
+
+    </script>
+@endpush
+

+ 1265 - 0
public/css/records_in.blade.php

@@ -0,0 +1,1265 @@
+<div class="col">
+    <div class="row h-100">
+
+
+        <div class="col card--ui" id="card--dashboard">
+
+
+                <header id="title--section" style="display:none !important"  class="d-flex align-items-center justify-content-between">
+                    <div class="title--section_name d-flex align-items-center justify-content-between">
+                        <i class="ico--ui title_section entrate me-2"></i>
+                        <h2 class="primary">@if(!$add && !$update)Entrate @else Inserimento/modifica entrata @endif</h2>
+                    </div>
+
+                    @if(!$add && !$update)
+                        <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
+                            <div class="btn--ui entrata d-flex justify-items-between">
+                                <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
+                            </div>
+                        </div>
+                    @endif
+
+                </header>
+
+
+            @if(!$add && !$update)
+
+                <!--
+                <button id="open-filter" onclick="pcsh1()"></button>
+                <button id="close-filter" onclick="pcsh2()"></button>
+                -->
+
+                <section id="subheader" class="d-flex align-items-center justify-content-between">
+                </section>
+
+                @if (session()->has('receipt'))
+                    <div class="alert alert-success" role="alert">
+                        {{ session()->get('receipt') }}
+                    </div>
+                @endif
+
+                <div class="showFilter" style="display:none">
+                    <hr size="1">
+                    <div class="row g-3">
+                        <div class="col-md-2">
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Periodo</b>
+                                </div>
+                                <div class="col-12">
+                                    <input id="dateFrom" type="date" class="form-control filterFrom"  >
+                                </div>
+                                <div class="col-12">
+                                    <input id="dateFrom" type="date" class="form-control filterTo" >
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-md-2">
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Tipologia</b>
+                                </div>
+                                <div class="col-12">
+                                    <div class="form-check form-check-inline d-inline-flex align-items-center">
+                                        <input class="form-check-input" type="radio" value="0" name="filterCommercial" onclick="setFilterCommercial(0)">
+                                        <label class="form-check-label ms-2" for="inlineCheckbox1">Entrambe</label>
+                                    </div>
+                                </div>
+                                <div class="col-12">
+                                    <div class="form-check form-check-inline d-inline-flex align-items-center">
+                                        <input class="form-check-input" type="radio" value="1" name="filterCommercial"  onclick="setFilterCommercial(1)">
+                                        <label class="form-check-label ms-2" for="inlineCheckbox1">Commerciale</label>
+                                    </div>
+                                </div>
+                                <div class="col-12">
+                                    <div class="form-check form-check-inline d-inline-flex align-items-center">
+                                        <input class="form-check-input" type="radio" value="2" name="filterCommercial" onclick="setFilterCommercial(2)">
+                                        <label class="form-check-label ms-2" for="inlineCheckbox1">Non commerciale</label>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-md-2">
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Utente</b>
+                                </div>
+                                <div class="col-12">
+                                    <select name="search_member_id" class="form-select filterMember">
+                                        <option value="">--Seleziona--
+                                        @foreach($members as $member)
+                                            <option value="{{$member->id}}">{{$member->last_name}} {{$member->first_name}}
+                                        @endforeach
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-md-2">
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Metodi di pagamento</b>
+                                </div>
+                                <div class="col-12">
+                                    <select name="search_payment_method_id" class="form-select filterPaymentMethod" multiple="multiple">
+                                        @foreach($payments as $payment)
+                                            <option value="{{$payment->id}}">{{$payment->name}}
+                                        @endforeach
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="col-md-2">
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Causali</b>
+                                </div>
+                                <div class="col-12">
+                                    <select name="search_causal_id" class="form-select filterCausals" multiple="multiple">
+                                        @foreach($causals as $causal)
+                                            <option value="{{$causal["id"]}}">{!!$causal["name"]!!}
+                                        @endforeach
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="row g-3">
+                        <div class="col-md-12" style="text-align:right">
+                            <button class="btn--ui_outline light" onclick="reset()">CANCELLA</button>
+                            <button class="btn--ui" onclick="loadDataTable()">FILTRA</button>
+                        </div>
+                    </div>
+                    <hr size="1">
+                </div>
+
+                <section id="resume-table">
+                    <div class="compare--chart_wrapper d-none"></div>
+
+                    <table class="table tablesaw tablesaw-stack table--lista_entrate" id="tablesaw-350">
+                        <thead>
+                            <tr>
+                                <!--<th scope="col"></th>-->
+                                <th scope="col">Data pagamento</th>
+                                <th scope="col">Importo</th>
+                                <th scope="col">Cognome</th>
+                                <th scope="col">Nome</th>
+                                <th scope="col">Commerciale</th>
+                                <th scope="col">Causale</th>
+                                <th scope="col">Pagamento</th>
+                                <th scope="col">Stato</th>
+                                <th scope="col">...</th>
+                            </tr>
+                        </thead>
+
+                        <tbody id="checkall-target">
+                        </tbody>
+                        <tfoot>
+                            <tr id="tfooter">
+                                <td colspan="9"><span class="total"></span></td>
+                            </tr>
+                        </tfoot>
+                    </table>
+
+                    <!--<br><b class="totalDiv"></b>-->
+
+                </section>
+
+            @else
+
+                @if (session()->has('error'))
+                    <div class="alert alert-danger" role="alert">
+                        {{ session()->get('error') }}
+                    </div>
+                @endif
+
+
+                <section id="accountingEntry" class="d-flex">
+                    <div class="accountingEntry_data" wire:key='reload-{{$selectId}}'>
+                        <form class="form--accounting" >
+
+                                <div class="row gx-2">
+
+                                    <div class="col-md-12">
+                                        <span class="title-form d-block w-100">Tipologia</span>
+                                        <div class="input-group mb-12">
+                                            <div class="check--invoice d-flex align-items-center">
+                                                <div class="form-check me-3">
+                                                    <input class="form-check-input" type="radio" value="1" wire:model="commercial" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                    <label class="form-check-label" for="flexCheckChecked">&nbsp;Commerciale</label>
+                                                </div>
+                                                <div class="form-check">
+                                                    <input class="form-check-input" type="radio" value="0" wire:model="commercial" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                    <label class="form-check-label" for="flexCheck">&nbsp;Non Commerciale</label>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+
+                                    <div class="col-md-6 mt-3">
+                                        <span class="title-form d-block w-100">Data pagamento</span>
+                                        <div class="input-group mb-3">
+                                            <input id="date" type="date" class="form-control"  wire:model="date" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                        </div>
+                                    </div>
+                                    <div class="col-md-6">&nbsp;</div>
+
+
+                                    <div class="col-md-6">
+                                        <span class="title-form d-block w-100">Persona</span>
+                                        <select name="member_id" class="form-select memberClass @error('member_id') is-invalid @enderror" aria-label="Seleziona una persona" wire:model="member_id" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                            <option value="">--Seleziona--
+                                            @foreach($members as $member)
+                                                <option value="{{$member->id}}">{{$member->last_name}} {{$member->first_name}} ({{$member->fiscal_code}})
+                                            @endforeach
+                                        </select>
+                                        @error('member_id')
+                                            <div class="invalid-feedback">{{ $message }}</div>
+                                        @enderror
+                                        <br><br>
+
+                                    </div>
+                                    <div class="col-md-6">
+                                        @if($this->dataId == 0 && !$isDuplicate)
+                                            <span class="title-form d-block w-100">&nbsp;</span>
+                                            <button type="button" class="btn--ui primary" data-bs-toggle="modal" data-bs-target="#userModal" style="width:50px">&nbsp;<i style="margin-left:5px;" class="fa-solid fa-plus"></i></button>
+                                        @endif
+                                        @if(false && $this->member)
+                                            <b>{{$this->member->first_name}} {{$this->member->last_name}}</b> {!! !$this->member->isAdult() ? '<span style="color:red;font-weight:bold">&nbsp;MINORENNE</span>' : '' !!}<br>
+                                            <span class="title-form w-100">Codice fiscale</span> : {{$this->member->fiscal_code}}<br>
+                                            <span class="title-form w-100">Email</span> : {{$this->member->email}}<br>
+                                            <span class="title-form w-100">Borsellino virtuale</span>
+                                            <b>{{number_format($virtual, 2, ".", "")}} &euro;</b><br>
+                                            @if(sizeof($this->member->certificates) > 0)
+                                                @php
+                                                $cert = $this->member->certificates[0]
+                                                @endphp
+                                                @if($cert->expire_date < date("Y-m-d"))
+                                                    <span class="title-form w-100">Certificato medico </span><span class="badge tessera-badge suspended">scaduto</span>
+                                                @endif
+                                            @endif
+                                            @php
+                                            $status = $this->member->getStatus()["status"];
+                                            $class = $status > 0 ? ($status == 2 ? 'active' : 'suspended') : 'due';
+                                            $text = $status > 0 ? ($status == 2 ? 'Tesserato' : 'Sospeso') : 'Non tesserato';
+                                            @endphp
+                                            <span class="tablesaw-cell-content"><span class="badge tessera-badge {{$class}}">{{$text}}</span></span>
+                                        @endif
+                                    </div>
+                                </div>
+
+                                @if(false)
+                                    <br>
+                                    <div class="col-md-12">
+                                        <div class="input-group mb-12">
+                                            <div class="check--invoice d-flex align-items-center">
+                                                <div class="form-check me-3">
+                                                    <input class="form-check-input" id="financial_movement" type="checkbox" wire:model="financial_movement" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                    <label class="form-check-label" for="flexCheckChecked">&nbsp;&nbsp;&nbsp;Movimento finanziario</label>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                @endif
+
+                                @if($commercial)
+
+                                    <br>
+                                    <div class="col-md-12">
+
+                                        <div class="input-group mb-12">
+                                            <div class="check--invoice d-flex align-items-center">
+                                                <div class="form-check me-3">
+                                                    <input class="form-check-input" id="corrispettivo_fiscale" type="checkbox" wire:model="corrispettivo_fiscale" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                    <label class="form-check-label" for="flexCheckChecked">&nbsp;&nbsp;&nbsp;Corrispettivo fiscale</label>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+
+                                @endif
+
+                                @if($corrispettivo_fiscale)
+
+                                    @if ($this->dataId > 0)
+                                        <div class="row">
+                                            <div class="col-md-9 mt-3">
+                                                {{$this->getPaymentMethod($payment_method_id)}}
+                                            </div>
+                                            <div class="col-md-3 mt-3">
+                                                {{formatPrice($amount)}}
+                                            </div>
+                                        </div>
+                                    @else
+                                        @foreach($payments as $payment)
+                                            @if($payment->corrispettivo_fiscale)
+                                                <div class="row">
+                                                    <div class="col-md-9 mt-3">
+                                                        {{$payment->name}}
+                                                    </div>
+                                                    <div class="col-md-3 mt-3">
+                                                        <input type="text" class="form-control totalInput text-end" id="corrispettivo_{{$payment->id}}" wire:model="corrispettivo.{{$payment->id}}" onkeyup="onlyNumberAmount(this)" placeholder="€ 0,00">
+                                                    </div>
+                                                </div>
+                                            @endif
+                                        @endforeach
+
+                                        <div class="row">
+                                            <div class="col-md-9 mt-3" style="font-size: 18px;font-weight: bold;">
+                                                <b>Totale</b>
+                                            </div>
+                                            <div class="col-md-3 mt-3" style="text-align:right;font-size: 18px;font-weight: bold;">
+                                                <b>{{$this->getTotalCorrispettivo()}}</b>
+                                            </div>
+                                        </div>
+                                    @endif
+
+
+                                @else
+
+                                    <div class="row gx-2 mt-3">
+                                        <span class="title-form d-block w-100">Pagamento</span>
+
+                                        <div class="col-md-12" >
+
+                                            <select name="payment_method_id" class="form-select paymentClass @error('payment_method_id') is-invalid @enderror" aria-label="Seleziona un metodo di pagamento" wire:model="payment_method_id" style="width:100%">
+                                                <option value="">--Seleziona--
+                                                @foreach($payments as $payment)
+                                                    <option value="{{$payment->id}}">{{$payment->name}}
+                                                @endforeach
+                                            </select>
+                                            @error('payment_method_id')
+                                                <div class="invalid-feedback">{{ $message }}</div>
+                                            @enderror
+                                        </div>
+                                    </div>
+
+                                    @foreach($rows as $idx => $row)
+
+                                        <div class="row gx-2 mt-3" >
+                                            <span class="title-form d-block w-100">Causale</span>
+                                            <div class="col-md-12">
+
+                                                @if($this->dataId > 0 && !$isDuplicate)
+                                                    {{$this->getCausal($rows[$idx]['causal_id'])}}<br>
+                                                @else
+                                                    <livewire:causals :type="$typeIN" :idx="$idx" :causal_id="$rows[$idx]['causal_id']" :wire:key="$idx"/>
+                                                @endif
+
+                                                @error('rows.'. $idx . '.causal_id')
+                                                    <span style="argin-top: 0.25rem; font-size: 0.875em; color: var(--bs-form-invalid-color);">{{ $message }}</span>
+                                                @enderror
+
+                                            </div>
+                                        </div>
+
+                                        <div class="row gx-2 mt-3">
+                                            <span class="title-form d-block w-100">Dettaglio causale</span>
+                                            <div class="col-md-12">
+                                                <input class="form-control " id="causal_detail_{{$idx}}" type="text" placeholder="Dettaglio causale" wire:model="rows.{{$idx}}.note" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                            </div>
+                                        </div>
+
+                                        <div class="row gx-2 mt-3 align-items-center">
+                                            <div class="col-md-6">
+                                                <span class="total primary">Importo</span>
+                                            </div>
+                                            @if ($commercial)
+                                                <div class="col-md-3">
+                                                    <select id="rows.{{$idx}}.vat_id" class="form-select"  wire:model="rows.{{$idx}}.vat_id" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                        <option value="0">
+                                                        @foreach($vats as $vat)
+                                                            <option value="{{$vat->id}}">{{$vat->name}}
+                                                        @endforeach
+                                                    </select>
+                                                </div>
+                                            @else
+                                                <div class="col-md-3"></div>
+                                            @endif
+                                            <div class="col-md-3">
+                                                @if($add)
+                                                    <input type="text" class="form-control totalInput text-end @error('amount') is-invalid @enderror" id="rows.{{$idx}}.amount" wire:model="rows.{{$idx}}.amount" wire:keydown.enter="store(false)" onkeyup="onlyNumberAmount(this)" onchange="setChangedAmount()" placeholder="€ 0,00" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                @endif
+                                                @if($update)
+                                                    <input type="text" class="form-control totalInput text-end @error('amount') is-invalid @enderror" id="rows.{{$idx}}.amount" placeholder="€ 0,00" wire:model="rows.{{$idx}}.amount"  onkeyup="onlyNumberAmount(this)" onchange="setChangedAmount()" wire:keydown.enter="update(false)" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                @endif
+                                                @error('rows.'. $idx . '.amount')
+                                                    <span style="argin-top: 0.25rem; font-size: 0.875em; color: var(--bs-form-invalid-color);">{{ $message }}</span>
+                                                @enderror
+                                            </div>
+
+                                        </div>
+
+                                        <div class="row gx-2 mt-3 align-items-center">
+                                            <div class="col-md-4">
+                                                <span class="total primary comp">Competenza</span>
+                                            </div>
+                                            <div class="col-md-8">
+                                                <div class="row">
+
+                                                    @if($multiP)
+                                                        <div class="row">
+                                                            <h4>Seleziona inizio e fine multiperiodo</h4>
+                                                            <div class="col-md-3">
+                                                                <span class="title-form d-block w-100">Dal mese</span>
+                                                                <div class="input-group mb-3">
+                                                                    <select class="form-select form-select-lg me-1"  wire:model="multiMonthFrom" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                                        <option value="1">Gennaio</option>
+                                                                        <option value="2">Febbraio</option>
+                                                                        <option value="3">Marzo</option>
+                                                                        <option value="4">Aprile</option>
+                                                                        <option value="5">Maggio</option>
+                                                                        <option value="6">Giugno</option>
+                                                                        <option value="7">Luglio</option>
+                                                                        <option value="8">Agosto</option>
+                                                                        <option value="9">Settembre</option>
+                                                                        <option value="10">Ottobre</option>
+                                                                        <option value="11">Novembre</option>
+                                                                        <option value="12">Dicembre</option>
+                                                                    </select>
+                                                                </div>
+                                                            </div>
+                                                            <div class="col-md-3">
+                                                                <span class="title-form d-block w-100">Anno</span>
+                                                                <div class="input-group mb-3">
+                                                                    <input type="number" class="form-control"  wire:model="multiYearFrom"  {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                                </div>
+                                                            </div>
+                                                            <div class="col-md-3">
+                                                                <span class="title-form d-block w-100">Dal mese</span>
+                                                                <div class="input-group mb-3">
+                                                                    <select class="form-select form-select-lg me-1"  wire:model="multiMonthTo" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                                        <option value="1">Gennaio</option>
+                                                                        <option value="2">Febbraio</option>
+                                                                        <option value="3">Marzo</option>
+                                                                        <option value="4">Aprile</option>
+                                                                        <option value="5">Maggio</option>
+                                                                        <option value="6">Giugno</option>
+                                                                        <option value="7">Luglio</option>
+                                                                        <option value="8">Agosto</option>
+                                                                        <option value="9">Settembre</option>
+                                                                        <option value="10">Ottobre</option>
+                                                                        <option value="11">Novembre</option>
+                                                                        <option value="12">Dicembre</option>
+                                                                    </select>
+                                                                </div>
+                                                            </div>
+                                                            <div class="col-md-3">
+                                                                <span class="title-form d-block w-100">Anno</span>
+                                                                <div class="input-group mb-3">
+                                                                    <input type="number" class="form-control"  wire:model="multiYearTo"  {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                                </div>
+                                                            </div>
+                                                            @if($this->dataId == 0 && !$isDuplicate)
+                                                                <div class="col-md-6">
+                                                                    <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriodCreate({{$idx}})" style="margin-top:20px">
+                                                                        Crea multi periodo
+                                                                    </button>
+                                                                </div>
+                                                                <div class="col-md-6">
+                                                                    <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriodCancel()" style="margin-top:20px">
+                                                                        Annulla multi periodo
+                                                                    </button>
+                                                                </div>
+                                                            @endif
+                                                        </div>
+
+
+                                                    @else
+                                                        @foreach($row["when"] as $xxx => $w)
+                                                            <div class="col-md-4">
+                                                                <span class="title-form d-block w-100">Mese</span>
+                                                                <div class="input-group mb-3">
+                                                                    <select class="form-select form-select-lg me-1"  wire:model="rows.{{$idx}}.when.{{$xxx}}.month" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                                        <option value="1">Gennaio</option>
+                                                                        <option value="2">Febbraio</option>
+                                                                        <option value="3">Marzo</option>
+                                                                        <option value="4">Aprile</option>
+                                                                        <option value="5">Maggio</option>
+                                                                        <option value="6">Giugno</option>
+                                                                        <option value="7">Luglio</option>
+                                                                        <option value="8">Agosto</option>
+                                                                        <option value="9">Settembre</option>
+                                                                        <option value="10">Ottobre</option>
+                                                                        <option value="11">Novembre</option>
+                                                                        <option value="12">Dicembre</option>
+                                                                    </select>
+                                                                </div>
+                                                            </div>
+                                                            <div class="col-md-3">
+                                                                <span class="title-form d-block w-100">Anno</span>
+                                                                <div class="input-group mb-3">
+                                                                    <input type="number" class="form-control"  wire:model="rows.{{$idx}}.when.{{$xxx}}.year"  {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
+                                                                </div>
+                                                            </div>
+                                                            <div class="col-md-3">
+                                                            <span class="title-form d-block w-100">Valore</span>
+                                                                <span class="netprice_p total--wrapper_netprice"><b>{{$this->currencyToDouble($rows[$idx]["amount"]) > 0 ? formatPrice(($this->currencyToDouble($rows[$idx]["amount"]) + getVatValue($this->currencyToDouble($rows[$idx]["amount"]), $rows[$idx]["vat_id"])) / sizeof($rows[$idx]["when"])) : ""}}</b></span>
+                                                            </div>
+                                                            <div class="col-md-2"><br>
+                                                                @if($this->dataId == 0)
+                                                                <button type="button" class="btn--ui primary" wire:click.prevent="delPeriod({{$idx}}, {{$xxx}})" style="float:right">
+                                                                    -
+                                                                </button>
+                                                                @endif
+                                                            </div>
+                                                        @endforeach
+                                                        @if($this->dataId == 0)
+                                                        <button type="button" class="btn--ui primary" wire:click.prevent="addPeriod({{$idx}})">
+                                                            Aggiungi periodo
+                                                        </button>
+
+                                                        <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriod()" style="margin-top:20px">
+                                                            Imposta multi periodo
+                                                        </button>
+                                                        @endif
+                                                    @endif
+
+                                                </div>
+                                            </div>
+                                        </div>
+
+                                        <br><br>
+                                        @if($this->dataId == 0)
+                                        @if($idx > 0)
+                                            <button type="button" class="btn--ui primary" wire:click.prevent="delRow({{$idx}})" style="float:right">
+                                                Rimuovi causale
+                                            </button>
+                                            <br><br>
+                                        @endif
+                                        @endif
+                                        <hr size="1">
+
+                                    @endforeach
+
+                                    @if($this->dataId == 0)
+                                    <br>
+                                    <button type="button" class="btn--ui primary" wire:click.prevent="addRow()">
+                                        Aggiungi causale
+                                    </button>
+                                    @endif
+
+                                @endif
+
+
+                                <div class="accountingEntry--btn d-flex align-items-center justify-content-between">
+                                    <button class="btn--ui lightGrey"  type="submit" wire:click.prevent="cancel()">annulla</button>
+                                    @if($canSave)
+                                        @if($add)
+
+                                            @if($commercial)
+
+                                                @if($corrispettivo_fiscale)
+                                                    @if($corrispettivo_causal_id > 0)
+                                                        <button class="btn--ui primary"  type="submit" wire:click.prevent="storeCorrispettivo()">inserisci corrispettivo fiscale</button>
+                                                    @else
+                                                        Non hai configurato una causale per il corrispettivo fiscale
+                                                    @endif
+                                                @else
+                                                    <button class="btn--ui primary"  type="submit" wire:click.prevent="store(false)">inserisci</button>
+                                                @endif
+
+                                            @else
+                                                @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
+                                                    <span style="color:red">Devi selezionare un genitore</span>
+                                                @else
+                                                    <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="store(true)"><i class="ico--ui sendingBtn"></i><span>inserisci {{!$commercial ? 'genera ricevuta' : ''}}</span></button>
+                                                @endif
+                                            @endif
+
+                                        @endif
+                                        @if($update && !$corrispettivo_fiscale)
+                                            @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
+                                                <span style="color:red">Devi selezionare un genitore</span>
+                                            @else
+                                                {{$commercial ? 'comm' : 'non comm'}}
+                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update({{!$commercial}})"><i class="ico--ui sendingBtn"></i><span>inserisci {{!$commercial ? 'genera ricevuta' : ''}}</span></button>
+                                            @endif
+                                        @endif
+                                    @else
+                                        <span style="color:red">Attenzione : non c'è credito sufficiente sul borsellino virtuale</span>
+                                    @endif
+
+                                </div>
+                    </form>
+                    </div>
+                    @if(!$corrispettivo_fiscale)
+                    <div class="accountingEntry_resume card--ui" style="max-height:800px;">
+                        <header>
+                            <div class="username d-flex align-items-start">
+                                <i class="ico--ui accountingResume me-2"></i>
+                                <div class="user--resume_name d-flex flex-column"><span class="primary">{{!$commercial ? 'Ricevuta' : 'Promemoria pagamento'}} {{$currentReceip ? $currentReceip->number . "/" . $currentReceip->year : ''}}</span></div></div>
+                        </header>
+
+                        <div class="resume--body d-flex justify-content-between flex-column">
+                            <header>
+                                @if($this->member)
+
+                                    <ul class="resume-item mb-4 p-0">
+
+                                        <li>
+                                            <div style="background-color:#ffffff; padding:10px;">
+                                                <b>{{$this->member->first_name}} {{$this->member->last_name}}</b> {!! !$this->member->isAdult() ? '<span style="color:red;font-weight:bold">&nbsp;MINORENNE</span>' : '' !!}<br>
+                                                <span class="title-form w-100">Codice fiscale</span> : {{$this->member->fiscal_code}}<br>
+                                                <span class="title-form w-100">Email</span> : {{$this->member->email}}<br>
+                                                <span class="title-form w-100">Borsellino virtuale</span>
+                                                <b>{{number_format($virtual, 2, ".", "")}} &euro;</b><br>
+                                                @if(sizeof($this->member->certificates) > 0)
+                                                    @php
+                                                    $cert = $this->member->certificates[0]
+                                                    @endphp
+                                                    @if($cert->expire_date < date("Y-m-d"))
+                                                        <span class="title-form w-100">Certificato medico </span><span class="badge tessera-badge suspended">scaduto</span>
+                                                    @endif
+                                                @endif
+                                                @php
+                                                $status = $this->member->getStatus()["status"];
+                                                $class = $status > 0 ? ($status == 2 ? 'active' : 'suspended') : 'due';
+                                                $text = $status > 0 ? ($status == 2 ? 'Tesserato' : 'Sospeso') : 'Non tesserato';
+                                                @endphp
+                                                <span class="tablesaw-cell-content"><span class="badge tessera-badge {{$class}}">{{$text}}</span></span>
+                                            </div>
+                                        </li>
+
+                                        @if(!$this->member->isAdult())
+                                            <li>
+                                                <span class="evidence_name">
+                                                    <br>Seleziona un genitore
+                                                    <select class="form-control" wire:model="parent">
+                                                        <option value="">Seleziona un genitore
+                                                        @if($this->member->father_name != '')
+                                                            <option value="{{$this->member->father_name}} (C.F. {{$this->member->father_fiscal_code}})">{{$this->member->father_name}} (C.F. {{$this->member->father_fiscal_code}})
+                                                        @endif
+                                                        @if($this->member->mother_name != '')
+                                                            <option value="{{$this->member->mother_name}} (C.F. {{$this->member->mother_fiscal_code}})">{{$this->member->mother_name}} (C.F. {{$this->member->mother_fiscal_code}})
+                                                        @endif
+                                                    </select>
+                                                </span>
+                                            </li>
+                                        @endif
+                                    </ul>
+                                @endif
+                                <ul class="resume-item date p-0">
+                                    <li><strong>Data di Pagamento</strong></li>
+                                    <li>{{ date("d/m/Y", strtotime($date)) }}</li>
+                                </ul>
+
+                                @if(sizeof($rows) > 0)
+                                    <table width="100%">
+                                        <tr>
+                                            <td><b>Causale</b></td>
+                                            @if($commercial == 1)
+                                                <td><b>Imponibile</b></td>
+                                                <td><b>% Iva</b></td>
+                                                <td><b>Iva</b></td>
+                                            @endif
+                                            <td style="float:right"><b>Totale</b></td>
+                                        </tr>
+                                        @foreach($rows as $row)
+                                            <tr>
+                                                <td>
+                                                    {{$this->getCausal($row["causal_id"])}}<br>
+                                                    {{$row["note"]}}
+                                                </td>
+                                                @php
+                                                $vat_value = 0;
+                                                @endphp
+                                                @if($commercial == 1)
+                                                    <td>{{$row["amount"]}}</td>
+                                                    @php
+                                                    $vat_name = '';
+                                                    if ($row["vat_id"] > 0)
+                                                    {
+                                                        $v = \App\Models\Vat::findOrFail(intval($row["vat_id"]));
+                                                        $vat_name = $v->name;
+                                                        $vat_value = $this->currencyToDouble($row["amount"]) / 100 * $v->value;
+                                                    }
+                                                    @endphp
+                                                    <td>{{$vat_name}}</td>
+                                                    <td>{{$vat_value > 0 ? formatPrice($vat_value) : ''}}</td>
+                                                @endif
+                                                <td style="float:right">{{formatPrice($this->currencyToDouble($row["amount"]) + $vat_value)}}</td>
+                                            </tr>
+                                        @endforeach
+                                    </table>
+
+                                @endif
+
+                            </header>
+
+                            <footer>
+                                <div class="total--wrapper">
+                                    <div class="total--wrapper_amount d-flex align-items-center justify-content-between w-100 mb-3">
+                                        <span class="amount_p"><strong>Importo</strong></span><span class="amount_data"><strong>{{$this->getPrice()}}</strong></span>
+                                    </div>
+                                    @if(false)
+                                        <div class="total--wrapper_amount d-flex align-items-center justify-content-between w-100 mb-3">
+                                            <span class="amount_p"><strong>Iva</strong></span><span class="amount_data"><strong>{{$this->getVat()}}</strong></span>
+                                        </div>
+                                    @endif
+                                    @foreach($this->getVats() as $k => $v)
+                                        <div class="total--wrapper_amount d-flex align-items-center justify-content-between w-100 mb-3">
+                                            <span class="amount_p"><strong>{{$k}}</strong></span><span class="amount_data"><strong>{{formatPrice($v)}}</strong></span>
+                                        </div>
+                                    @endforeach
+                                    <!--<div class="total--wrapper_tax d-flex align-items-center justify-content-between w-100 mb-2 pb-3">
+                                        <span class="taxt_p">Ritenuta d’acconto (20%):</span><span class="tax_data">€ 20,00</span>
+                                    </div>-->
+                                    <div class="total--wrapper_netprice d-flex align-items-center justify-content-between w-100">
+                                        <span class="netprice_p"><strong>Totale</strong></span><span class="netprice_data"><strong>{{$this->getTotal()}}</strong></span>
+                                    </div>
+                                </div>
+
+                                @if($update && !$isDuplicate)
+                                    @if($currentReceip)
+                                        @if($currentReceip->status == 99)
+                                            <br><b style="float:right">Annullata</b>
+                                            @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
+                                                <span style="color:red">Devi selezionare un genitore</span>
+                                            @else
+                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update(true)"><i class="ico--ui sendingBtn"></i><span>salva e rigenera ricevuta</span></button>
+                                            @endif
+                                        @else
+                                            <div class="mt-5 d-flex align-items-center">
+                                                <a target="_blank" class="btn--ui me-2" href="/receipt/{{$currentReceip->id}}"><i class="fa-regular fa-file-lines"></i><span>stampa ricevuta</span></a>
+                                                <button class="btn--ui " wire:click.prevent="removeReceipt()"><i class="ico--ui annulla_ricevuta light"></i>annulla ricevuta</button>
+                                            </div>
+                                        @endif
+                                    @else
+                                        @if(!$corrispettivo_fiscale)
+                                            @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
+                                                <span style="color:red">Devi selezionare un genitore</span>
+                                            @else
+                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update(true)"><i class="ico--ui sendingBtn"></i><span>salva {{!$commercial ? ' e genera ricevuta' : ''}}</span></button>
+                                            @endif
+                                        @endif
+                                    @endif
+                                @endif
+
+                            </footer>
+                        </div>
+                    </div>
+                    @endif
+                </section>
+
+                <div  wire:ignore.self class="modal fade" id="userModal" tabindex="-1" aria-labelledby="userModalLabel" aria-hidden="true">
+                    <div class="modal-dialog">
+                        <div class="modal-content">
+                        <div class="modal-header">
+                            <h5 class="modal-title" id="userModalLabel">Inserimento nuovo utente</h5>
+                            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
+                        </div>
+                        <div class="modal-body">
+                            <div class="row">
+                                <div class="col-md-6">
+                                    <label for="newMemberFirstName" class="form-label">Nome</label>
+                                    <input class="form-control @error('newMemberFirstName') is-invalid @enderror" type="text" id="newMemberFirstName" placeholder="Nome" wire:model="newMemberFirstName">
+                                </div>
+                                <div class="col-md-6">
+                                    <label for="newMemberLastName" class="form-label">Cognome</label>
+                                    <input class="form-control @error('newMemberLastName') is-invalid @enderror" type="text" id="newMemberLastName" placeholder="Cognome" wire:model="newMemberLastName">
+                                </div>
+                            </div>
+                            <div class="row">
+                                <div class="col-md-12">
+                                    <label for="newMemberFiscalCode" class="form-label">Codice fiscale</label>
+                                    <input class="form-control @error('newMemberFiscalCode') is-invalid @enderror" type="text" id="newMemberFiscalCode" placeholder="Codice fiscale" maxlength="16" wire:model="newMemberFiscalCode">
+                                    @if($newMemberFiscalCodeExist)
+                                        <span style="color:red">Il codice fiscale inserito esiste</span>
+                                    @endif
+                                </div>
+                            </div>
+                        </div>
+                        <div class="modal-footer">
+                            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annulla</button>
+                            <button type="button" class="btn btn-primary" wire:click.prevent="createMember()">Salva</button>
+                        </div>
+                        </div>
+                    </div>
+                </div>
+
+            @endif
+        </div>
+    </div>
+</div>
+@push('scripts')
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+        .page-link.active, .active > .page-link {
+            background-color:#006099 !important;
+        }
+        .total.primary
+        {
+            font-size:38px !important;
+        }
+        .total.primary.comp
+        {
+            font-size:32px !important;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
+@endpush
+
+@push('scripts')
+    <script>
+
+        function formatResult(node) {
+            var output = node.text.split(/[,-]+/).pop();
+            var $result = $('<span style="padding-left:' + (20 * (node.text.match(/-/g) || []).length) + 'px;">' + output + '</span>');
+            return $result;
+        };
+
+        function matchStart(params, data) {
+            params.term = params.term || '';
+            if (data.text.toUpperCase().indexOf(params.term.toUpperCase()) == 0) {
+                return data;
+            }
+            return false;
+        }
+        @if($refreshAfter == 1)
+            setTimeout(() => {
+                // $('.causalClass').select2();
+                $('.causalClass').select2({
+                    matcher: function(params, data) {
+                        return matchStart(params, data);
+                    }
+                });
+                $('.memberClass').select2({
+                    tags: false
+                });
+                $('.paymentClass').select2({
+                    matcher: function(params, data) {
+                        return matchStart(params, data);
+                    }
+                });
+            }, 100);
+            setTimeout(() => {
+                var element = document.getElementById('causal_detail_0');
+                element.dispatchEvent(new Event('input'));
+                console.log("ASDASDSA");
+            }, 1000);
+        @endif
+        window.livewire.on('refresh', () => {
+            // $('.causalClass').select2();
+            $('.memberClass').select2({
+                tags: false
+            });
+            $('.paymentClass').select2({
+                matcher: function(params, data) {
+                    return matchStart(params, data);
+                }
+            });
+        });
+        Livewire.on('load-select', () => {
+
+            $('.causalClass').each(function(i, obj) {
+                $(obj).select2({
+                    //data: data,
+                    /*formatSelection: function(item) {
+                    return item.text
+                    },*/
+                    templateResult: formatResult
+                });
+                $(obj).on('change', function (e) {
+                    var data = $(obj).select2("val");
+                    var name = $(obj).select2().attr("name");
+                    @this.set(name, data);
+                });
+            });
+
+            $('.memberClass').select2({
+                tags: false
+            });
+            $('.memberClass').on('change', function (e) {
+                var data = $('.memberClass').select2("val");
+                @this.set('member_id', data);
+            });
+            $('.paymentClass').select2({
+                matcher: function(params, data) {
+                    return matchStart(params, data);
+                }
+            });
+            $('.paymentClass').on('change', function (e) {
+                var data = $('.paymentClass').select2("val");
+                @this.set('payment_method_id', data);
+            });
+
+            $('.filterMember').select2();
+            /*$('.filterMember').on('change', function (e) {
+                var data = $('.filterMember').select2("val");
+                @this.set('filterMember', data);
+                @this.search();
+            });*/
+
+            $('.filterPaymentMethod').select2();
+            $('.filterPaymentMethod').on('change', function (e) {
+                //var data = $('.filterPaymentMethod').select2("val");
+                //@this.set('filterPaymentMethod', data);
+            });
+            $('.filterCausals').select2();
+            $('.filterCausals').on('change', function (e) {
+                //var data = $('.filterCausals').select2("val");
+                //@this.set('filterCausals', data);
+            });
+
+
+
+        });
+
+        Livewire.on('hide-search', () => {
+            pcsh2();
+        });
+
+        $('.filterPaymentMethod').select2();
+        $('.filterPaymentMethod').on('change', function (e) {
+            //var data = $('.filterPaymentMethod').select2("val");
+            //@this.set('filterPaymentMethod', data);
+        });
+        $('.filterCausals').select2();
+        $('.filterCausals').on('change', function (e) {
+            //var data = $('.filterCausals').select2("val");
+            //@this.set('filterCausals', data);
+        });
+
+        window.livewire.on('saved', () => {
+            $('#userModal').modal('hide');
+        });
+        window.livewire.on('reloadMembers', () => {
+            $('.memberClass').select2("destroy");
+            $('.memberClass').select2({
+                tags: false
+            });
+        });
+
+        $('.filterMember').select2();
+        /*$('.filterMember').on('change', function (e) {
+            var data = $('.filterMember').select2("val");
+            @this.set('filterMember', data);
+            @this.search();
+        });*/
+        //$('.filterPaymentMethod').select2();
+
+
+        function onlyNumberAmount(input) {
+            let v = input.value.replace(/\D+/g, '');
+            if (v.length > 14) v = v.slice(0, 14);
+            input.value = "€ " + v.replace(/(\d)(\d\d)$/, "$1,$2").replace(/(^\d{1,3}|\d{3})(?=(?:\d{3})+(?:,|$))/g, '$1.');
+        }
+
+        function setChangedAmount() {
+            @this.setAmount();
+        }
+
+    </script>
+
+    <link href="/css/datatables.css" rel="stylesheet" />
+    <script src="/assets/js/datatables.js"></script>
+    <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
+    <script>
+
+        $(document).ready(function() {
+
+            // Carico i dati dal local storage
+            /*var filterCommercial = localStorage.getItem("filterCommercial");
+            if (filterCommercial)
+            {
+                //$('input[name="filterCommercial"]').val(filterCommercial);
+                $('input[name="filterCommercial"]').filter('[value="' + filterCommercial + '"]').attr('checked', true);
+                setFilterCommercial(filterCommercial);
+            }
+            var filterMember = localStorage.getItem("filterMember");
+            if (filterMember)
+            {
+                $('.filterMember').val(filterMember);
+                $('.filterMember').trigger('change');
+            }
+            var filterPaymentMethod = localStorage.getItem("filterPaymentMethod");
+            if (filterPaymentMethod)
+            {
+                $('.filterPaymentMethod').val(filterPaymentMethod);
+                $('.filterPaymentMethod').trigger('change');
+            }
+            var filterCausals = localStorage.getItem("filterCausals");
+            if (filterCausals)
+            {
+                $('.filterCausals').val(filterCausals);
+                $('.filterCausals').trigger('change');
+            }
+            var filterFrom = localStorage.getItem("filterFrom");
+            if (filterFrom)
+            {
+                $('.filterFrom').val(filterFrom);
+            }
+            var filterTo = localStorage.getItem("filterTo");
+            if (filterTo)
+            {
+                $('.filterTo').val(filterTo);
+            }
+            */
+
+            loadDataTable();
+        } );
+
+        var isFilter = false;
+        $(document).ready(function() {
+            $(document).on("click",".showHideFilter",function() {
+                if (isFilter)
+                {
+                    isFilter = false;
+                    $(".showFilter").hide();
+                }
+                else
+                {
+                    isFilter = true;
+                    $(".showFilter").show();
+                }
+            });
+        } );
+
+        function editData(id)
+        {
+            @this.edit(id);
+        }
+
+        function duplicateData(id)
+        {
+            @this.duplicate(id);
+        }
+
+        function deleteData(id)
+        {
+            if (confirm('Sei sicuro?'))
+                @this.delete(id);
+        }
+
+        Livewire.on('load-data-table', () => {
+            setTimeout(function() {loadDataTable()}, 100);
+
+        });
+
+        Livewire.on('destroy-data-table', () => {
+            $('#tablesaw-350').DataTable().destroy();
+        });
+
+        function destroyDataTable()
+        {
+            $('#tablesaw-350').DataTable().destroy();
+        }
+
+        function reset()
+        {
+            setFilterCommercial(0);
+            $('input[name="filterCommercial"][value=0]').prop("checked", true);
+            $('.filterMember').val('');
+            $('.filterMember').trigger('change');
+            $('.filterPaymentMethod').val('');
+            $('.filterPaymentMethod').trigger('change');
+            $('.filterCausals').val('');
+            $('.filterCausals').trigger('change');
+            $('.filterFrom').val('');
+            $('.filterTo').val('');
+            localStorage.clear();
+            loadDataTable();
+        }
+
+        var filterCommercial = 0;
+
+        function setFilterCommercial(value)
+        {
+            filterCommercial = value;
+        }
+
+        function loadDataTable(){
+
+            if ( $.fn.DataTable.isDataTable('#tablesaw-350') ) {
+                $('#tablesaw-350').DataTable().destroy();
+            }
+
+            // filterCommercial = $('input[name="filterCommercial"]:checked').val();
+            var filterMember = $('.filterMember').val();
+            var filterPaymentMethod = $('.filterPaymentMethod').val();
+            var filterCausals = $('.filterCausals').val();
+            var filterFrom = $('.filterFrom').val();
+            var filterTo = $('.filterTo').val();
+
+            // Salvo i filtri della ricerca
+            localStorage.setItem("filterCommercial", filterCommercial);
+            localStorage.setItem("filterMember", filterMember);
+            localStorage.setItem("filterPaymentMethod", filterPaymentMethod);
+            localStorage.setItem("filterCausals", filterCausals);
+            localStorage.setItem("filterFrom", filterFrom);
+            localStorage.setItem("filterTo", filterTo);
+
+            var totalString = "";
+
+            $('#tablesaw-350').DataTable({
+                //searching: false,
+                serverSide: true,
+                ajax: '/get_record_in?filterCommercial=' + filterCommercial + "&filterMember=" + filterMember + "&filterPaymentMethod=" + filterPaymentMethod + "&filterCausals=" + filterCausals + "&filterFrom=" + filterFrom + "&filterTo=" + filterTo,
+                columns: [
+                    //{ data: 'id' },
+                    {
+                        data: "date",
+                        render: function (data, type){
+                            if (data == "")
+                                return " TOTALE";
+                            if (type == "sort"){
+                                return new Date(data).getTime();
+                            }
+                            // Split class and text
+                            const j = data.split(" ");
+                            const d = j[0].split("-");
+                            var ret = d[2] + "/" + d[1] + "/" + d[0];
+                            return ret;
+                        }
+                    },
+                    { data: 'total' },
+                    { data: 'last_name' },
+                    { data: 'first_name' },
+                    { data: 'commercial' },
+                    { data: 'causals' },
+                    { data: 'payment' },
+                    { data: 'status' },
+                    {
+                        data: "action",
+                        render: function (data){
+                            if (data == "")
+                                return "";
+                            const j = data.split("|");
+                            $(".totalDiv").html('Totale&nbsp;:&nbsp;<b>' + j[1] + '</b>');
+                            $(".total").html('Totale&nbsp;:&nbsp;<b>' + j[1] + '</b>');
+                            totalString = j[1];
+                            var ret = '';
+                            if (j[2] != 'x')
+                            {
+                                ret = '<button type="button" class="btn" onclick="editData(' + j[0] + ')" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;';
+                                ret += '<button type="button" class="btn" onclick="deleteData(' + j[0] + ')"  data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="ico--ui annulla_ricevuta"></i></button>';
+                                ret += '<button type="button" class="btn btn-outline-default btn-sm" onclick="duplicateData(' + j[0] + ')" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="duplica"><i class="ico--ui copy"></i></button>';
+                            }
+                            return ret;
+                        }
+                    },
+                ],
+                rowCallback: function( row, data, index ) {
+
+                    if (data["last_name"] == '') {
+                        console.log("QUA" + data["date"]);
+                        $(row).hide();
+                        $(row).remove();
+                    }
+                },
+                fixedHeader: false,
+                order: [[0, 'desc']],
+                thead: {
+                'th': {'background-color': 'blue'}
+                },
+                layout: {
+                    topStart : null,
+                    topEnd : null,
+                    top1A: {
+                        buttons: [
+                            {
+                                extend: 'collection',
+                                text: 'Esporta',
+                                buttons: [
+                                    {
+                                    extend: 'excelHtml5',
+                                        title: 'Utenti',
+                                        exportOptions: {
+                                            columns: ":not(':last')"
+                                        }
+                                    },
+                                    {
+                                        extend: 'pdfHtml5',
+                                        title: 'Utenti',
+                                        exportOptions: {
+                                            columns: ":not(':last')"
+                                        }
+                                    },
+                                    {
+                                        extend: 'print',
+                                        text: 'Stampa',
+                                        title: 'Utenti',
+                                        exportOptions: {
+                                            columns: ":not(':last')"
+                                        }
+                                    }
+                                ],
+                                dropup: true
+                            }
+                        ]
+                    },
+                    top1B : {
+                        pageLength: {
+                            menu: [[10, 25, 50, 100, 100000], [10, 25, 50, 100, "Tutti"]]
+                        }
+                    },
+                    top1C :'search',
+                },
+                pagingType: 'numbers',
+                "language": {
+                    "url": "/assets/js/Italian.json"
+                },
+                "fnInitComplete": function (oSettings, json) {
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
+                    html += '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
+                    $(".dt-search").append(html);
+                }
+            });
+            $('#tablesaw-350 thead tr th').addClass('col');
+            $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");
+
+        }
+
+        $(document).ready(function() {
+            $(document).on("click",".addData",function() {
+                $(".title--section_addButton").trigger("click")
+            });
+        } );
+
+        var isEdit = false;
+
+        Livewire.on('showReceipt', (id) =>
+        {
+            window.open("{{env('APP_URL', '')}}/receipt/" + id, '_blank').focus();
+        });
+
+        Livewire.on('setEdit', (x) =>
+        {
+            isEdit = x;
+        });
+
+        Livewire.on('reload', (x) =>
+        {
+            location.reload();
+        });
+
+
+        window.onbeforeunload = function(){
+            if (isEdit)
+                return 'Cambiando pagina le eventuali modifiche andranno perse';
+
+        };
+
+    </script>
+
+@endpush

Разлика између датотеке није приказан због своје велике величине
+ 314 - 172
public/css/style.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
public/css/style.css.map


Разлика између датотеке није приказан због своје велике величине
+ 13938 - 0
public/css/style140924.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
public/css/style140924.css.map


+ 61 - 25
resources/views/layouts/app.blade.php

@@ -97,7 +97,9 @@
         text-decoration:underline;
     }
   </style>
-  <link rel="stylesheet" href="/css/style.css">
+
+    <link rel="stylesheet" href="/css/style.css?v={{date('YmdHis')}}">
+    <!-- <link rel="stylesheet" href="/css/style.css"> -->
     <!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
     <style>
@@ -122,14 +124,14 @@
 <body>
   <div class="container-fluid">
 
-    <div class="row" style="background-color:#0C6197">
-        <div class="col-md-2">
-            <a href="/dashboard" class="d-flex align-items-center pb-3 mb-md-0 me-md-auto text-white text-decoration-none">
-                <img src="{{env('LOGO', '')}}" class="fs-5 d-none d-sm-inline img-fluid" alt="logo madonnella"  style="max-width:200px"/>
+    <div class="row header--gestionale">
+        <div class="header--gestionale_logo">
+            <a href="/dashboard" class="d-flex align-items-center pb-2 pt-2">
+                <img src="{{env('LOGO', '')}}" class="img-fluid" alt="logo madonnella"/>
             </a>
         </div>
-        <div class="col-md-6 align-middle">
-            <h3 style="color:white"><br>
+        <div class="header--gestionale_pageTitle d-flex align-items-center justify-content-between">
+            <h3 style="color:white">
             @php
             if (Request::is('members'))
                 print "Utenti";
@@ -181,25 +183,42 @@
                 print "Metodi di pagamento";
             @endphp
             </h3>
+
+            <div class="header--userprofile d-flex align-items-center">
+                <figure><img src="" alt="" class="user--avatar"></figure>
+                <a href="#" id="link-popover" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Bottom popover">Mario Rossi <small>Admin</small></a>
+            </div>
+
         </div>
     </div>
 
-    <div class="row flex-nowrap">
+    <div class="row flex-nowrap position-relative" id="sidebar--wrapper">
+    <!-- sidebar menu -->
+        <div class="sidebar--ui px-0">
+        
+            <a class="d-lg-none sidebar--opener" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
+                    <i class="ico--ui hamburger--menu"></i>
+            </a>
 
-        <!-- sidebar menu -->
-        <div class="sidebar--ui col-auto col-md-3 col-xl-2  px-0">
-            <div class="d-flex flex-column align-items-center align-items-sm-start min-vh-100" id="menu-madonellax">
+            <div class="d-flex flex-column align-items-center align-items-sm-start min-vh-100 offcanvas-lg offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
                 @if(false)
-                    <a href="/dashboard" class="d-flex align-items-center pb-3 mb-md-0 me-md-auto text-white text-decoration-none">
+                    <a href="/dashboard" class="d-flex align-items-center pb-2 pt-2 mb-md-0 me-md-auto text-white text-decoration-none">
                         <img src="{{env('LOGO', '')}}" class="fs-5 d-none d-sm-inline img-fluid" alt="logo madonnella"  style="max-width:200px"/>
                     </a>
                 @endif
 
+                <div class="offcanvas-header">
+                    <img src="{{env('LOGO', '')}}" class="fs-5 d-inline img-fluid" alt="logo madonnella"/>
+                        <a class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasExample" aria-label="Chiudi">
+                        </a>
+                </div>
+
+                <div class="offcanvas-body w-100">
                 <div id="accordionExample" style="width:100%">
                     <div class="accordion-item">
                         <h2 class="accordion-header linkMenu" id="headingOne" style="margin-top:50px;">
                             <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="{{Request::is('members') || Request::is('suppliers') ? 'true' : 'false'}}" aria-controls="collapseOne">
-                                <b>Anagrafiche</b>
+                                Anagrafiche
                             </button>
                         </h2>
                         <div id="collapseOne" class="accordion-collapse collapse {{Request::is('members') || Request::is('suppliers') ? 'show' : ''}}" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
@@ -207,12 +226,12 @@
                                 <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-anagrafica" style="margin-top:0px;">
                                     <li class="nav-item" style="{{Request::is('members') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/members" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Utenti</span>
+                                            <span class="ms-3 d-md-inline">Utenti</span>
                                         </a>
                                     </li>
                                     <li class="nav-item"  style="{{Request::is('suppliers') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/suppliers" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Fornitori</span>
+                                            <span class="ms-3 d-md-inline">Fornitori</span>
                                         </a>
                                     </li>
                                 </ul>
@@ -222,7 +241,7 @@
                     <div class="accordion-item">
                         <h2 class="accordion-header linkMenu" id="headingTwo">
                             <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="{{Request::is('in') || Request::is('out') || Request::is('receipts') || Request::is('records_in_out') || Request::is('records') ? 'true' : 'false'}}" aria-controls="collapseTwo">
-                                <b>Contabilità</b>
+                                Contabilità
                             </button>
                         </h2>
                         <div id="collapseTwo" class="accordion-collapse collapse {{Request::is('in') || Request::is('out') || Request::is('receipts') || Request::is('records_in_out') || Request::is('records') ? 'show' : ''}}" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
@@ -230,27 +249,27 @@
                                 <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-contabilita" style="margin-top:0px;">
                                     <li class="nav-item" style="{{Request::is('in') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/in" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Entrate</span>
+                                            <span class="ms-3 d-md-inline">Entrate</span>
                                         </a>
                                     </li>
                                     <li class="nav-item" style="{{Request::is('out') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/out" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Uscite</span>
+                                            <span class="ms-3 d-md-inline">Uscite</span>
                                         </a>
                                     </li>
                                     <li class="nav-item" style="{{Request::is('receipts') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/receipts" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Ricevute</span>
+                                            <span class="ms-3 d-md-inline">Ricevute</span>
                                         </a>
                                     </li>
                                     <li class="nav-item" style="{{Request::is('records_in_out') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/records_in_out" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Entrate/uscite gestionale</span>
+                                            <span class="ms-3 d-md-inline">Entrate/uscite gestionale</span>
                                         </a>
                                     </li>
                                     <li class="nav-item" style="{{Request::is('records') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/records" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Prima Nota</span>
+                                            <span class="ms-3 d-md-inline">Prima Nota</span>
                                         </a>
                                     </li>
                                 </ul>
@@ -260,7 +279,7 @@
                     <div class="accordion-item">
                         <h2 class="accordion-header linkMenu" id="headingThree">
                             <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="{{Request::is('course_list') || Request::is('course_member') ? 'true' : 'false'}}" aria-controls="collapseThree">
-                                <b>Corsi</b>
+                                Corsi
                             </button>
                         </h2>
                         <div id="collapseThree" class="accordion-collapse collapse {{Request::is('course_list') || Request::is('course_member') ? 'show' : ''}}" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
@@ -268,12 +287,12 @@
                                 <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-contabilita" style="margin-top:0px;">
                                     <li class="nav-item" style="{{Request::is('course_list') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/course_list" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Pagamento corsi</span>
+                                            <span class="ms-3 d-md-inline">Pagamento corsi</span>
                                         </a>
                                     </li>
                                     <li class="nav-item" style="{{Request::is('course_member') ? 'background-color: #c5d9e6;' : ''}}">
                                         <a href="/course_member" class="nav-link d-flex align-items-center linkMenu">
-                                            <span class="ms-3 d-none d-md-inline">Iscritti corsi</span>
+                                            <span class="ms-3 d-md-inline">Iscritti corsi</span>
                                         </a>
                                     </li>
                                 </ul>
@@ -295,9 +314,10 @@
                         </h2>
                     </div>
                 </div>
-
+                </div>
             </div>
         </div>
+        <!-- /sidebar menu -->
 
         {{ $slot }}
 
@@ -305,7 +325,23 @@
 
     </div>
 
+<!-- notifiche -->
+<div class="user--profile_menu d-none">
+    <ul class="user--boxlist">
+        <li class="user--boxlist_item">
+            <a href="#">link 01</a>
+        </li>
+        <li class="user--boxlist_item">
+            <a href="#">link 01</a>
+        </li>
+        <li class="user--boxlist_item">
+            <a href="#">link 01</a>
+        </li>
+    </ul>
+</div>
+<!-- ///notifiche -->
 
+<script src="https://code.jquery.com/jquery-3.7.1.js" integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script>
   <script src="/assets/js/bootstrap.bundle.js"></script>
   <script src="/assets/js/app.js"></script>
   <script src="/assets/js/tablesaw.js"></script>

+ 7 - 7
resources/views/livewire/bank.blade.php

@@ -11,7 +11,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -54,8 +54,8 @@
                             <td>{{$record->name}}</td>
                             <td> <span class="tablesaw-cell-content"><span class="badge tessera-badge {{$record->enabled ? 'active' : 'suspended'}}">{{$record->enabled ? 'attivo' : 'disattivo'}}</span></span></td>
                             <td>
-                                <button type="button" class="btn" wire:click="edit({{ $record->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
-                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})"><i class="fa-regular fa-trash-can"></i></button>
+                                <button type="button" class="btn" wire:click="edit({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>
+                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="cestina"><i class="fa-regular fa-trash-can"></i></button>
                             </td>
                         </tr>
                     @endforeach
@@ -179,14 +179,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Banche',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Banche',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -194,7 +194,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Banche',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -216,7 +216,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"   wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -63,8 +63,8 @@
                             <td>{{$record->next_month_expire}}</td>
                             <td> <span class="tablesaw-cell-content"><span class="badge tessera-badge {{$record->enabled ? 'active' : 'suspended'}}">{{$record->enabled ? 'attivo' : 'disattivo'}}</span></span></td>
                             <td>
-                                <button type="button" class="btn" wire:click="edit({{ $record->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
-                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})"><i class="fa-regular fa-trash-can"></i></button>
+                                <button type="button" class="btn" wire:click="edit({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>
+                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>
                             </td>
                         </tr>
                     @endforeach
@@ -178,7 +178,7 @@
                         <div class="form--item mb-3">
                             <div class="form-check form-check-inline">
                                 <input class="form-check-input" type="checkbox" id="use_for_user_check" wire:model="use_for_user_check">
-                                <label class="form-check-label" for="use_for_user_check">Utilizza per verifica utente abilitato</label>
+                                <label class="form-check-label" for="use_for_user_check">Utilizza per verifica utente tesserato</label>
                             </div>
                         </div>
 
@@ -238,14 +238,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Tessere',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Tessere',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -253,7 +253,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Tessere',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -281,7 +281,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton text-right "  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">AGGIUNGI</a>
                 </div>
             </div>

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

@@ -3,8 +3,8 @@
         <td>{!! str_repeat("&nbsp;", $indentation * 5) !!} {{$record->name}}</td>
         <td>
             <button type="button" class="btn btn-outline-success btn-sm" wire:click="addLevel({{ $record->id }})">Aggiungi livello</button>
-            <button type="button" class="btn" wire:click="edit({{ $record->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
-            <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})"><i class="fa-regular fa-trash-can"></i></button>
+            <button type="button" class="btn" wire:click="edit({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>
+            <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>
         </td>
     </tr>
     @if(count($record->childs))

+ 15 - 12
resources/views/livewire/causal.blade.php

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">AGGIUNGI</a>
                 </div>
             </div>
@@ -141,16 +141,7 @@
                             </div>
                         </div>
 
-                        <div class="form--item mb-3">
-                            <div class="form-check form-check-inline">
-                                @if($corrispettivo_causal_id == 0 || $corrispettivo_causal_id == $dataId)
-                                    <input class="form-check-input" type="checkbox" id="corrispettivo_fiscale" wire:model="corrispettivo_fiscale">
-                                @else
-                                    C'è già una causale associata al corrispettivo fiscale
-                                @endif
-                                <label class="form-check-label" for="corrispettivo_fiscale">Utilizza per corrispettivo fiscale</label>
-                            </div>
-                        </div>
+
 
                          <div class="form--item mb-3">
                             <div class="form-check form-check-inline">
@@ -176,7 +167,19 @@
                         <div class="form--item mb-3">
                             <div class="form-check form-check-inline">
                                 <input class="form-check-input" type="checkbox" id="no_records" wire:model="no_records">
-                                <label class="form-check-label" for="no_records">Escludi da ingressi/uscite</label>
+                                <label class="form-check-label" for="no_records">Escludi da entrate/uscite gestionale</label>
+                            </div>
+                        </div>
+
+                        <div class="form--item mb-3">
+                            <div class="form-check form-check-inline">
+                                @if($corrispettivo_causal_id == 0 || $corrispettivo_causal_id == $dataId)
+                                    <input class="form-check-input" type="checkbox" id="corrispettivo_fiscale" wire:model="corrispettivo_fiscale">
+                                @else
+                                    <input class="form-check-input" type="checkbox" id="corrispettivo_fiscale" wire:model="corrispettivo_fiscale" disabled="disabled">
+
+                                @endif
+                                <label class="form-check-label" for="corrispettivo_fiscale">Utilizza per corrispettivo fiscale</label>
                             </div>
                         </div>
 

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"   wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -303,14 +303,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -318,7 +318,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -340,7 +340,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -146,14 +146,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Durata corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Durata corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -161,7 +161,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Durata corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -183,7 +183,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -133,14 +133,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Frequenza corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Frequenza corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -148,7 +148,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Frequenza corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -170,7 +170,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -133,14 +133,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Livello corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Livello corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -148,7 +148,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Livello corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -170,7 +170,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 172 - 20
resources/views/livewire/course_list.blade.php

@@ -20,8 +20,8 @@
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Corso</b>
                     </div>
-                    <div class="col-12">
-                        <select class="form-select filterMultiple" wire:model="filterCourse" onchange="destroyDataTable()" multiple="multiple">
+                    <div class="col-12" >
+                        <select class="form-select filterCourse" wire:model="filterCourse" onchange="destroyDataTable()" multiple="multiple">
                             @foreach($courses as $c)
                                 <option value="{{$c}}">{{$c}}
                             @endforeach
@@ -35,7 +35,7 @@
                         <b>Livello</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select filterMultiple" wire:model="filterLevel" onchange="destroyDataTable()"  multiple="multiple">
+                        <select class="form-select filterLevel" wire:model="filterLevel" onchange="destroyDataTable()"  multiple="multiple">
                             @foreach($course_levels as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
@@ -49,7 +49,7 @@
                         <b>Frequenza</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterFrequency" onchange="destroyDataTable()" multiple="multiple">
+                        <select class="form-select filterFrequency" wire:model="filterFrequency" onchange="destroyDataTable()" multiple="multiple">
                             @foreach($course_frequencies as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
@@ -63,7 +63,7 @@
                         <b>Tipologia</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterType" onchange="destroyDataTable()" multiple="multiple">
+                        <select class="form-select filterType" wire:model="filterType" onchange="destroyDataTable()" multiple="multiple">
                             @foreach($course_types as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
@@ -77,7 +77,7 @@
                         <b>Durata</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterDuration" onchange="destroyDataTable()" multiple="multiple">
+                        <select class="form-select filterDuration" wire:model="filterDuration" onchange="destroyDataTable()" multiple="multiple">
                             @foreach($course_durations as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
@@ -89,8 +89,8 @@
         </div>
         <div class="row g-3" style="margin-top:20px;">
             <div class="col-md-12" style="text-align:right">
-                <button class="card--ui card--ui_btnCancel" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
-                <button class="card--ui card--ui_btnAddHeaderUser" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
+                <button class="btn--ui_outline light" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
+                <button class="btn--ui" onclick="searchAction()">FILTRA</button>
             </div>
         </div>
         <hr size="1">
@@ -99,7 +99,7 @@
     <section id="resume-table">
         <div class="compare--chart_wrapper d-none"></div>
 
-        <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
+        <table class="table tablesaw tablesaw-stack pagamento--corsi" id="tablesaw-350">
             <thead>
                 <tr>
                     <th scope="col">Cognome</th>
@@ -121,23 +121,42 @@
                         @php
                         list($subscribed, $subPrice) = explode("§", $record[15]);
                         @endphp
-                        <td><a class="{{$subscribed ? 'green' : 'orange'}}" wire:click="newSubscription({{$record[13]}}, {{$id}}, {{$record[14]}})" style="cursor: pointer;width:60px;padding:0px;"><small>{{formatPrice($subPrice)}}</small></a></td>
+                        <td><a class="{{$subscribed ? 'green' : 'orange'}}" wire:click="newSubscription({{$record[13]}}, {{$id}}, {{$record[14]}})" style="cursor: pointer;"><small>{{formatPrice($subPrice)}}</small></a></td>
                         @for($x=1; $x<=12; $x++)
                             <td>
                                 @php
                                 list($color, $price) = explode("§", $record[$x]);
                                 @endphp
                                 @if($color == 'orange')
-                                    <a class="{{$color}}" wire:click="newPayment({{$record[13]}}, {{$x}}, {{$id}}, {{$record[14]}})" style="cursor: pointer;padding:0px;width:60px;"><small>{{formatPrice($price)}}</small></a>
+                                    <a class="{{$color}}" wire:click="newPayment({{$record[13]}}, {{$x}}, {{$id}}, {{$record[14]}})" style="cursor: pointer;"><small>{{formatPrice($price)}}</small></a>
                                 @else
-                                    <a class="{{$color}}" style="padding:0px;width:60px;"><small>{{formatPrice($price)}}</small></a>
+                                    <a class="{{$color}}"><small>{{formatPrice($price)}}</small></a>
                                 @endif
                             </td>
                         @endfor
                     </tr>
                 @endforeach
 
+
             </tbody>
+            <tfoot id="checkall-target">
+                <tr>
+                    <th colspan="2"></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                    <th></th>
+                </tr>
+            </tfoot>
         </table>
 
     </section>
@@ -145,7 +164,7 @@
 </div>
 
 @push('scripts')
-    <style>
+    <!-- <style>
         a.grey
         {
             display: flex;
@@ -261,9 +280,32 @@
             transition: all 0.3s ease-in-out;
             border: none;
         }
-    </style>
+    </style> -->
 @endpush
 
+@push('scripts')
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
+@endpush
 
 @push('scripts')
     <link href="/css/datatables.css" rel="stylesheet" />
@@ -335,7 +377,52 @@
             loadDataTable();
         } );
 
+        $('.filterCourse').select2();
+        $('.filterCourse').on('change', function (e) {
+            var data = $('.filterCourse').select2("val");
+            if (data == null) data = [];
+            @this.set('filterCourse', data);
+            //@this.search();
+        });
+
+        $('.filterLevel').select2();
+        $('.filterLevel').on('change', function (e) {
+            var data = $('.filterLevel').select2("val");
+            if (data == null) data = [];
+            @this.set('filterLevel', data);
+            //@this.search();
+        });
+
+        $('.filterFrequency').select2();
+        $('.filterFrequency').on('change', function (e) {
+            var data = $('.filterFrequency').select2("val");
+            if (data == null) data = [];
+            @this.set('filterFrequency', data);
+            //@this.search();
+        });
+
+        $('.filterType').select2();
+        $('.filterType').on('change', function (e) {
+            var data = $('.filterType').select2("val");
+            if (data == null) data = [];
+            @this.set('filterType', data);
+            //@this.search();
+        });
+
+        $('.filterDuration').select2();
+        $('.filterDuration').on('change', function (e) {
+            var data = $('.filterDuration').select2("val");
+            if (data == null) data = [];
+            @this.set('filterDuration', data);
+            //@this.search();
+        });
+
         Livewire.on('load-data-table', () => {
+            $('.filterCourse').select2();
+            $('.filterLevel').select2();
+            $('.filterFrequency').select2();
+            $('.filterType').select2();
+            $('.filterDuration').select2();
             loadDataTable();
         });
 
@@ -364,11 +451,16 @@
             });
         } );
 
-        function loadDataTable(){
+        function searchAction()
+        {
+            //destroyDataTable();
+            //@this.search();
+        }
 
-            //$('.filterMultiple').select2();
+        function loadDataTable(){
 
             $('#tablesaw-350').DataTable({
+                scrollX: true,
                 thead: {
                 'th': {'background-color': 'blue'}
                 },
@@ -383,14 +475,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Pagamento corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Pagamento corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -398,7 +490,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Pagamento corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -421,13 +513,73 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
                     $(".dt-search").append(html);
+                },
+                "footerCallback": function (row, data, start, end, display) {
+                    let api = this.api();
+
+                    @php
+                    $xx = 2;
+                    $str = '';
+                    $str .= "<a class=green><small>" . (isset($totalIsc["Y"]) ? formatPrice($totalIsc["Y"]) : 0) . "</small></a><br>";
+                    $str .= "<a class=orange><small>" . (isset($totalIsc["N"]) ? formatPrice($totalIsc["N"]) : 0) . "</small></a><br>";
+                    $str .= "<a class=yellow><small>0</small></a><br>";
+                    print "api.column(2).footer().innerHTML = '" . $str . "';";
+                    $str = "";
+                    foreach($totals as $z => $t)
+                    {
+                        if ($z == 1) $xx = 7;
+                        if ($z == 2) $xx = 8;
+                        if ($z == 3) $xx = 9;
+                        if ($z == 4) $xx = 10;
+                        if ($z == 5) $xx = 11;
+                        if ($z == 6) $xx = 12;
+                        if ($z == 7) $xx = 13;
+                        if ($z == 8) $xx = 14;
+                        if ($z == 9) $xx = 3;
+                        if ($z == 10) $xx = 4;
+                        if ($z == 11) $xx = 5;
+                        if ($z == 12) $xx = 6;
+                        $str = '';
+                        foreach($t as $x => $c)
+                        {
+                            $y = $x == 'yellow' ? $c : formatPrice($c);
+                            $str .= "<a class=" . $x . "><small>" . $y . "</small></a><br>";
+                        }
+                        print "api.column(" . $xx . ").footer().innerHTML = '" . $str . "';";
+                        $xx += 1;
+                    }
+                    @endphp
+                    /*for(var i = 2; i<15; i++)
+                    {
+                        api.column(i).footer().innerHTML = "ciccio"; //"€ " + api.column(i).data().sum().toFixed(2);
+                    }*/
+
                 }
             });
             $('#tablesaw-350 thead tr th').addClass('col');
             $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");
 
+            jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {
+                return this.flatten().reduce( function ( a, b ) {
+                    if ( typeof a === 'string') {
+                        start = a.indexOf("€");
+                        a = a.substr(start + 2).replace("</small></a>", "").replace(",",".") * 1;
+                    }
+                    if ( typeof b === 'string' && b.indexOf('green') > 0) {
+                        start = b.indexOf("€");
+                        b = b.substr(start + 2).replace("</small></a>", "").replace(",",".") * 1;
+                    }
+                    else
+                    {
+                        b = 0;
+                    }
+
+                    return a + b;
+                }, 0 );
+                } );
+
         }
 
     </script>

+ 283 - 32
resources/views/livewire/course_member.blade.php

@@ -15,14 +15,13 @@
     <div class="showFilter" style="display:none" wire:ignore.self>
         <hr size="1">
         <div class="row g-3">
-            <div class="col-md-3">
+            <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Corso</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterCourse" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
+                        <select class="form-select filterCourse" wire:model="filterCourse" onchange="destroyDataTable()"  multiple="multiple">
                             @foreach($courses as $c)
                                 <option value="{{$c}}">{{$c}}
                             @endforeach
@@ -30,14 +29,13 @@
                     </div>
                 </div>
             </div>
-            <div class="col-md-3">
+            <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Livello</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterLevel" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
+                        <select class="form-select filterLevel" wire:model="filterLevel" onchange="destroyDataTable()"  multiple="multiple">
                             @foreach($course_levels as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
@@ -45,14 +43,27 @@
                     </div>
                 </div>
             </div>
-            <div class="col-md-3">
+            <div class="col-md-2">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Frequenza</b>
+                    </div>
+                    <div class="col-12">
+                        <select class="form-select filterFrequency" wire:model="filterFrequency" onchange="destroyDataTable()"  multiple="multiple">
+                            @foreach($course_frequencies as $c)
+                                <option value="{{$c->id}}">{{$c->name}}
+                            @endforeach
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Tipologia</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterType" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
+                        <select class="form-select filterType" wire:model="filterType" onchange="destroyDataTable()"  multiple="multiple">
                             @foreach($course_types as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
@@ -60,15 +71,14 @@
                     </div>
                 </div>
             </div>
-            <div class="col-md-3">
+            <div class="col-md-2">
                 <div class="row">
                     <div class="col-md-12" style="margin-bottom:10px;">
-                        <b>Frequenza</b>
+                        <b>Durata</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterFrequency" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
-                            @foreach($course_frequencies as $c)
+                        <select class="form-select filterDuration" wire:model="filterDuration" onchange="destroyDataTable()" multiple="multiple">
+                            @foreach($course_durations as $c)
                                 <option value="{{$c->id}}">{{$c->name}}
                             @endforeach
                         </select>
@@ -83,8 +93,7 @@
                         <b>Giorni</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterDays" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
+                        <select class="form-select filterDays" wire:model="filterDays" onchange="destroyDataTable()" multiple="multiple">
                             <option value="lun">Lunedì
                             <option value="mar">Martedì
                             <option value="mer">Mercoledì
@@ -102,8 +111,7 @@
                         <b>Orari</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterHours" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
+                        <select class="form-select filterHours" wire:model="filterHours" onchange="destroyDataTable()"  multiple="multiple">
                             @for($c=6;$c<=23;$c++)
                                 <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
                                 <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
@@ -164,8 +172,7 @@
                         <b>Stato tesseramento</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterStatus" onchange="destroyDataTable()">
-                            <option value="">--Seleziona--
+                        <select class="form-select filterStatus" wire:model="filterStatus" onchange="destroyDataTable()" multiple="multiple">
                             <option value="2">Attivo
                             <option value="1">Sospeso
                             <option value="0">Non tesserato
@@ -178,6 +185,53 @@
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Certificato medico</b>
                     </div>
+                    <div class="col-12">
+                        <div class="form-check form-check-inline  align-items-center">
+                            <input class="form-check-input chkCertificateScadenza" name="chkCertificateScadenza" wire:model="chkCertificateScadenza" type="radio" value="0" checked onchange="destroyDataTable()">
+                            <label class="form-check-label ms-2" >Tutti</label>
+                        </div>
+                    </div>
+                    <div class="col-12">
+                        <div class="form-check form-check-inline  align-items-center">
+                            <input class="form-check-input chkCertificateScadenza" name="chkCertificateScadenza" wire:model="chkCertificateScadenza" type="radio" value="1" onchange="destroyDataTable()">
+                            <label class="form-check-label ms-2" >Scaduti</label>
+                        </div>
+                    </div>
+                    <div class="col-12">
+                        <div class="form-check form-check-inline  align-items-center">
+                            <input class="form-check-input chkCertificateScadenza" name="chkCertificateScadenza" wire:model="chkCertificateScadenza" type="radio" value="2" onchange="destroyDataTable()">
+                            <label class="form-check-label ms-2" >In Scadenza</label>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Tipologia certificato medico</b>
+                    </div>
+                    <div class="col-12">
+                        <div class="form-check form-check-inline  align-items-center">
+                            <input class="form-check-input chkCertificateType" name="chkCertificateType" wire:model="chkCertificateType" type="radio" value="" checked onchange="destroyDataTable()">
+                            <label class="form-check-label ms-2" >Tutti</label>
+                        </div>
+                    </div>
+                    <div class="col-12">
+                        <div class="form-check form-check-inline  align-items-center">
+                            <input class="form-check-input chkCertificateType" name="chkCertificateType" wire:model="chkCertificateType" type="radio" value="N" onchange="destroyDataTable()">
+                            <label class="form-check-label ms-2" >Normale</label>
+                        </div>
+                    </div>
+                    <div class="col-12">
+                        <div class="form-check form-check-inline  align-items-center">
+                            <input class="form-check-input chkCertificateType" name="chkCertificateType" wire:model="chkCertificateType" type="radio" value="A" onchange="destroyDataTable()">
+                            <label class="form-check-label ms-2" >Agonistico</label>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+                @if(false)
                     <div class="col-12">
                         <div class="form-check form-check-inline  align-items-center">
                             <input class="form-check-input chkCertificateNormal" type="checkbox" wire:model="chkCertificateNormal" onclick="destroyDataTable()" value="1">
@@ -203,14 +257,54 @@
                         </div>
 
                     </div>
+                @endif
+
+
+        </div>
+        <div class="row">
+            <div class="col-md-2">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Età</b>
+                    </div>
+                    <div class="col-12">
+                        <div class="row">
+                            <div class="col-3"><label class="form-check-label ms-2" >Da</label></div>
+                            <div class="col-9"><input class="form-control txt" type="number" name="fromYear" wire:model="fromYear"></div>
+                        </div>
+                    </div>
+                    <div class="col-12">
+                        <div class="row">
+                            <div class="col-3"><label class="form-check-label ms-2" >A</label></div>
+                            <div class="col-9"><input class="form-control txt" type="number"  name="toYear" wire:model="toYear"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-2">
+                <div class="row">
+                    <div class="col-md-12" style="margin-bottom:10px;">
+                        <b>Anno di nascita</b>
+                    </div>
+                    <div class="col-12">
+                        <div class="row">
+                            <div class="col-3"><label class="form-check-label ms-2" >Da</label></div>
+                            <div class="col-9"><input class="form-control txt" type="number" name="fromFromYear" wire:model="fromFromYear" onBlur="destroyDataTable()" onfocusout="destroyDataTable()"></div>
+                        </div>
+                    </div>
+                    <div class="col-12">
+                        <div class="row">
+                            <div class="col-3"><label class="form-check-label ms-2" >A</label></div>
+                            <div class="col-9"><input class="form-control txt" type="number"  name="toToYear" wire:model="toToYear"></div>
+                        </div>
+                    </div>
                 </div>
             </div>
-
         </div>
-        <div class="row g-3">
+        <div class="row g-3 mt-2">
             <div class="col-md-12" style="text-align:right">
-                <button class="card--ui card--ui_btnCancel" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
-                <button class="card--ui card--ui_btnAddHeaderUser" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
+                <button class="btn--ui_outline light" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
+                <button class="btn--ui" onclick="searchAction()">FILTRA</button>
             </div>
         </div>
         <hr size="1">
@@ -252,9 +346,86 @@
     </section>
 </div>
 
+@push('scripts')
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
+@endpush
+
 @push('scripts')
     <link href="/css/datatables.css" rel="stylesheet" />
     <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+
+
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+        .select2-selection--multiple{
+            overflow: hidden !important;
+            height: auto !important;
+        }
+        .select2-container {
+            box-sizing: border-box;
+            display: inline-block;
+            margin: 0;
+            position: relative;
+            vertical-align: middle;
+        }
+        .select2-container .select2-selection--single {
+            box-sizing: border-box;
+            cursor: pointer;
+            display: block;
+            height: 38px;
+            user-select: none;
+            -webkit-user-select: none;
+        }
+        .select2-container .select2-selection--single .select2-selection__rendered {
+            display: block;
+            padding-left: 8px;
+            padding-right: 20px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+        }
+        .select2-selection__choice__display{
+            color:#000000 !important;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
     <script src="/assets/js/datatables.js"></script>
     <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
@@ -265,13 +436,87 @@
 @push('scripts')
     <script>
 
-        var t = '{{$filter}}';
-
         $(document).ready(function() {
             loadDataTable();
         } );
 
+        $('.filterCourse').select2();
+        $('.filterCourse').on('change', function (e) {
+            var data = $('.filterCourse').select2("val");
+            if (data == null) data = [];
+            @this.set('filterCourse', data);
+            //@this.search();
+        });
+
+        $('.filterLevel').select2();
+        $('.filterLevel').on('change', function (e) {
+            var data = $('.filterLevel').select2("val");
+            if (data == null) data = [];
+            @this.set('filterLevel', data);
+            //@this.search();
+        });
+
+        $('.filterFrequency').select2();
+        $('.filterFrequency').on('change', function (e) {
+            var data = $('.filterFrequency').select2("val");
+            if (data == null) data = [];
+            @this.set('filterFrequency', data);
+            //@this.search();
+        });
+
+        $('.filterType').select2();
+        $('.filterType').on('change', function (e) {
+            var data = $('.filterType').select2("val");
+            if (data == null) data = [];
+            @this.set('filterType', data);
+            //@this.search();
+        });
+
+        $('.filterDuration').select2();
+        $('.filterDuration').on('change', function (e) {
+            var data = $('.filterDuration').select2("val");
+            if (data == null) data = [];
+            @this.set('filterDuration', data);
+            //@this.search();
+        });
+
+        $('.filterDays').select2();
+        $('.filterDays').on('change', function (e) {
+            var data = $('.filterDays').select2("val");
+            if (data == null) data = [];
+            @this.set('filterDays', data);
+            //@this.search();
+        });
+
+        $('.filterHours').select2();
+        $('.filterHours').on('change', function (e) {
+            var data = $('.filterHours').select2("val");
+            if (data == null) data = [];
+            @this.set('filterHours', data);
+            //@this.search();
+        });
+
+        $('.filterStatus').select2();
+        $('.filterStatus').on('change', function (e) {
+            var data = $('.filterStatus').select2("val");
+            if (data == null) data = [];
+            @this.set('filterStatus', data);
+            //@this.search();
+        });
+
+        $(".txt").on('change keydown keypress paste input', function(){
+            destroyDataTable();
+        });
+
         Livewire.on('load-data-table', () => {
+            $('.filterCourse').select2();
+            $('.filterLevel').select2();
+            $('.filterFrequency').select2();
+            $('.filterType').select2();
+            $('.filterDuration').select2();
+            $('.filterDays').select2();
+            $('.filterHours').select2();
+            $('.filterStatus').select2();
             loadDataTable();
         });
 
@@ -300,9 +545,15 @@
             });
         } );
 
+        function searchAction()
+        {
+            //destroyDataTable();
+            //@this.search();
+        }
+
         function loadDataTable(){
+
             $('#tablesaw-350').DataTable({
-                // caption : $("#filter").html(),
                 thead: {
                 'th': {'background-color': 'blue'}
                 },
@@ -317,14 +568,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Iscritti corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Iscritti corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -332,7 +583,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Iscritti corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -349,13 +600,13 @@
                     },
                     top1C :'search',
                 },
+                order: [[0, 'asc'], [1, 'asc']],
                 pagingType: 'numbers',
-                order: [[1, 'asc'], [2, 'asc']],
                 "language": {
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -133,14 +133,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Iscritti corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Iscritti corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -148,7 +148,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Iscritti corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -170,7 +170,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -133,14 +133,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Tipologia corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Tipologia corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -148,7 +148,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Tipologia corsi',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -170,7 +170,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -133,14 +133,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Discipline',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Discipline',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -148,7 +148,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Discipline',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -170,7 +170,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 255 - 183
resources/views/livewire/member.blade.php

@@ -19,6 +19,16 @@
                         </header>
 
 
+                        <article>
+                            <header class="title d-flex align-items-center mb-4"><i class="ico--ui borsellino fill me-2"></i>Borsellino</header>
+                            <div class="credito d-flex align-items-center justify-content-between">
+                                <div class="credito_title">
+                                    <span>Credito Residuo: <br></span><span class="value">{{formatPrice($currentMember->getMoney())}}</span>
+                                </div>
+                                <a href="/in?new=1&memberId={{$currentMember->id}}&causalId={{$causalId}}" class="btn--ui white small">ricarica</a>
+                            </div>
+                        </article>
+
                         <article>
                             <header class="title d-flex align-items-center mb-4"><i class="ico--ui corsi fill me-2"></i>Certificato</header>
                             @if(sizeof($currentMember->certificates) > 0)
@@ -79,34 +89,23 @@
                         </article>
 
                     </div>
-
-                    <footer>
-
-                        <header class="title d-flex align-items-center mb-4"><i class="ico--ui borsellino fill me-2"></i>Borsellino</header>
-                        <div class="credito d-flex align-items-center justify-content-between">
-                            <div class="credito_title">
-                                <span>Credito Residuo: <br></span><span class="value">{{formatPrice($currentMember->getMoney())}}</span>
-                            </div>
-                            <a href="/in?new=1&memberId={{$currentMember->id}}&causalId={{$causalId}}" class="btn--ui white small">ricarica</a>
-                        </div>
-                    </footer>
                 </div>
 
                 <div class="user--profile_resume">
 
                     <header class="d-flex align-item-center ">
                         <div class="user_name me-4">
-                            <span class="name">{{$currentMember->first_name}} {{$currentMember->last_name}}</span><br>
+                            <span class="name">{{$currentMember->first_name}} {{$currentMember->last_name}}</span>
                             <span class="badge tessera-badge {{$currentStatus["status"] > 0 ? ($currentStatus["status"] == 2 ? 'active' : 'suspended') : 'due'}}">{{$currentStatus["status"] > 0 ? ($currentStatus["status"] == 2 ? 'Tesserato' : 'Sospeso') : 'Non tesserato'}}</span>
                         </div>
-                        <button class="btn--ui extraLightGrey" wire:click="edit({{ $currentMember->id }})">modifica utente</button>
+                        <button class="btn--ui extraLightGrey" wire:click="edit({{ $currentMember->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
 
                     </header>
 
                     <ul class="user-address mb-4 p-0">
                         <li><i class="ico--ui resume--ico phone me-2"></i><span>Tel. {{$currentMember->phone}}</span></li>
                         <li><i class="ico--ui resume--ico birth me-2"></i><span>Nato/a il {{$currentMember->birth_date ? date("d/m/Y", strtotime($currentMember->birth_date)) : ''}}</span>&nbsp;({{$currentMember->getAge()}} anni)</li>
-                        <li><i class="ico--ui resume--ico email me-2"></i><span>{{strtolower($currentMember->email)}}</span></li>
+                        <li><i class="ico--ui resume--ico mail me-2"></i><span>{{strtolower($currentMember->email)}}</span></li>
                     </ul>
                     <ul class="user-residence p-0">
                         <li><i class="ico--ui residence me-2"></i><span class="title">Residenza</span></li>
@@ -132,26 +131,24 @@
                                 <i class="ico--ui gruppi me-2"></i>
                                 <div class="title" style="margin-right:20px">
                                     <h4>{{$member_category->category->getTree()}}</h4>
-
                                 </div>
                             @endforeach
 
                         </div>
                     </div>
 
-                    <div class="resume--tab_info gruppi">
+                    <div class="resume--tab_info corsi">
                         <h2 class="mb-3">Corsi</h2>
-                        <div class="">
 
                             @foreach($currentMember->courses as $member_course)
-                                <div class="title row">
-                                    <div class="col-md-4">
+                                <div class="d-flex align-items-center corsi--user_details">
 
-                                        <div class="title" style="margin-right:20px">
-                                            <h4>{{$member_course->course->getTree()}}</h4>
-                                        </div>
+                                    <div class="title me-3">
+                                        <h4>{{$member_course->course->getTree()}}</h4>
                                     </div>
-                                    <div class="col-md-4">
+                                    <div class="corsi--mesi me-3">
+                                        <span class="corsi_mesi_text">
+
                                         @php
                                         $aMo = json_decode($member_course->months);
                                         if (sizeof($aMo) == 1)
@@ -163,24 +160,23 @@
                                             print($this->getMonth($aMo[0]->m) . " - " . $this->getMonth($aMo[sizeof($aMo) - 1]->m));
                                         }
                                         @endphp
+                                        </span>
                                     </div>
-                                    <div class="col-md-4">
-                                        <span class="title-detail">
-                                            @foreach(json_decode($member_course->when) as $xx => $x)
+                                    <div class="title--dettagli corsi--orari me-3">
+                                        <span class="corsi--orari_text">
+                                           @foreach(json_decode($member_course->when) as $xx => $x)
                                                 @if($xx > 0)
-                                                    <br>
                                                 @endif
                                                 @foreach($x->day as $d)
                                                     {{$d}}
                                                 @endforeach
                                                 h {{$x->from}} - {{$x->to}}
                                             @endforeach
-                                        </span>
-                                    </div>
+                                            </span>
+                                        </div>
                                 </div>
                             @endforeach
 
-                        </div>
                     </div>
 
                 </div>
@@ -211,7 +207,7 @@
 
                 @if(!$add && !$update)
                     <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
-                        <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                        <div class="btn--ui entrata d-flex justify-items-between">
                         <a href="#" style="color:white">Aggiungi</a>
 
                         </div>
@@ -260,7 +256,7 @@
                                     <b>Età</b>
                                 </div>
                                 <div class="col-12">
-                                    <div class="row">
+                                    <div class="row mb-2">
                                         <div class="col-3"><label class="form-check-label ms-2" >Da</label></div>
                                         <div class="col-9"><input class="form-control " type="number" name="txtFromYear"></div>
                                     </div>
@@ -272,6 +268,24 @@
                                     </div>
                                 </div>
                             </div>
+                            <br>
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Anno di nascita</b>
+                                </div>
+                                <div class="col-12">
+                                    <div class="row mb-2">
+                                        <div class="col-3"><label class="form-check-label ms-2" >Da</label></div>
+                                        <div class="col-9"><input class="form-control " type="number" name="txtFromYearYear"></div>
+                                    </div>
+                                </div>
+                                <div class="col-12">
+                                    <div class="row">
+                                        <div class="col-3"><label class="form-check-label ms-2" >A</label></div>
+                                        <div class="col-9"><input class="form-control " type="number"  name="txtToYearYear"></div>
+                                    </div>
+                                </div>
+                            </div>
                         </div>
                         <div class="col-md-2">
                             <div class="row">
@@ -317,32 +331,52 @@
                         <div class="col-md-2">
                             <div class="row">
                                 <div class="col-md-12" style="margin-bottom:10px;">
-                                    <b>Certificato medico</b>
+                                    <b>Scadenza certificato medico</b>
                                 </div>
                                 <div class="col-12">
                                     <div class="form-check form-check-inline  align-items-center">
-                                        <input class="form-check-input chkCertificateNormal" type="checkbox">
-                                        <label class="form-check-label ms-2" >Normale</label>
+                                        <input class="form-check-input chkCertificateScadenza" name="chkCertificateScadenza" type="radio" value="" checked>
+                                        <label class="form-check-label ms-2" >Tutti</label>
                                     </div>
                                 </div>
                                 <div class="col-12">
                                     <div class="form-check form-check-inline  align-items-center">
-                                        <input class="form-check-input chkCertificateScadenza" type="checkbox" >
+                                        <input class="form-check-input chkCertificateScadenza" name="chkCertificateScadenza" type="radio" value="1">
+                                        <label class="form-check-label ms-2" >Scaduti</label>
+                                    </div>
+                                </div>
+                                <div class="col-12">
+                                    <div class="form-check form-check-inline  align-items-center">
+                                        <input class="form-check-input chkCertificateScadenza" name="chkCertificateScadenza" type="radio" value="2">
                                         <label class="form-check-label ms-2" >In Scadenza</label>
                                     </div>
                                 </div>
+                            </div>
+                        </div>
+                        <div class="col-md-2">
+                            <div class="row">
+                                <div class="col-md-12" style="margin-bottom:10px;">
+                                    <b>Tipologia certificato medico</b>
+                                </div>
                                 <div class="col-12">
                                     <div class="form-check form-check-inline  align-items-center">
-                                        <input class="form-check-input chkCertificateAgonistico" type="checkbox" >
-                                        <label class="form-check-label ms-2" >Agonistico</label>
+                                        <input class="form-check-input chkCertificateType" name="chkCertificateType" type="radio" value="" checked>
+                                        <label class="form-check-label ms-2" >Tutti</label>
                                     </div>
                                 </div>
                                 <div class="col-12">
                                     <div class="form-check form-check-inline  align-items-center">
-                                        <input class="form-check-input chkCertificateScaduti" type="checkbox" >
-                                        <label class="form-check-label ms-2" >Scaduti</label>
+                                        <input class="form-check-input chkCertificateType" name="chkCertificateType" type="radio" value="N">
+                                        <label class="form-check-label ms-2" >Normale</label>
+                                    </div>
+                                </div>
+                                <div class="col-12">
+                                    <div class="form-check form-check-inline  align-items-center">
+                                        <input class="form-check-input chkCertificateType" name="chkCertificateType" type="radio" value="A">
+                                        <label class="form-check-label ms-2" >Agonistico</label>
                                     </div>
                                 </div>
+
                             </div>
                         </div>
                         <div class="col-md-2">
@@ -363,17 +397,17 @@
                     </div>
                     <div class="row g-3">
                         <div class="col-md-12" style="text-align:right">
-                            <button class="card--ui card--ui_btnCancel" onclick="reset()" onclick="destroyDataTable()">CANCELLA</button>
-                            <button class="card--ui card--ui_btnAddHeaderUser" onclick="loadDataTable()">FILTRA</button>
+                            <button class="btn--ui lightGrey" onclick="reset()" onclick="destroyDataTable()">Reset</button>
+                            <button class="btn--ui" onclick="loadDataTable()">FILTRA</button>
                         </div>
                     </div>
                     <hr size="1">
                 </div>
 
-                <section id="resume-table">
+                <section id="anagrafiche--utenti">
                     <div class="compare--chart_wrapper d-none"></div>
 
-                    <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
+                    <table class="table tablesaw tablesaw-stack table--lista_utenti" id="tablesaw-350">
                         <thead>
                             <tr>
                                 <!--<th scope="col">#</th>-->
@@ -436,8 +470,8 @@
                                     </td>
 
                                     <td>
-                                        <button type="button" class="btn" wire:click="edit({{ $record->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
-                                        <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})"><i class="fa-regular fa-trash-can"></i></button>
+                                        <button type="button" class="btn" wire:click="edit({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>
+                                        <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="delete({{ $record->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>
                                     </td>
                                 </tr>
                             @endforeach
@@ -486,15 +520,15 @@
                     </div>
                 @endif
 
-                <div class="container">
+                <div class="container-fluid">
 
                     <div class="row mb-3">
-                        <div class="col-md-9 p-3">
-                            <div class="row mb-3">
-                                <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'dati' ? 'text-decoration:underline;' : ''}}" wire:click="change('dati')">Anagrafica</h4></div>
-                                <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'tesseramento' ? 'text-decoration:underline;' : ''}}" wire:click="change('tesseramento')">Tesseramento</h4></div>
-                                <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'corsi' ? 'text-decoration:underline;' : ''}}" wire:click="change('corsi')">Corsi</h4></div>
-                                <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'gruppi' ? 'text-decoration:underline;' : ''}}" wire:click="change('gruppi')">Gruppi</h4></div>
+                        <div class="col-md-7 col-xl-8 p-3">
+                            <div class="section--tab d-flex">
+                                <h4 style="cursor:pointer;{{$type == 'dati' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('dati')">Anagrafica</h4>
+                                <h4 style="cursor:pointer;{{$type == 'tesseramento' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('tesseramento')">Tesseramento</h4>
+                                <h4 style="cursor:pointer;{{$type == 'corsi' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('corsi')">Corsi</h4>
+                                <h4 style="cursor:pointer;{{$type == 'gruppi' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('gruppi')">Gruppi</h4>
                             </div>
 
                             <div class="row">
@@ -505,15 +539,15 @@
                                         <form class="form--utente d-flex">
                                             <div class="form--col" style="width:100%">
                                                 <div class="row g-3">
-                                                    <div class="col-md-3">
+                                                    <div class="col-md-6 col-xxl-3">
                                                         <label for="first_name" class="form-label">Nome</label>
                                                         <input class="form-control @error('first_name') is-invalid @enderror" type="text" id="first_name" placeholder="Nome" wire:model="first_name" style="text-transform:uppercase">
                                                     </div>
-                                                    <div class="col-md-3">
+                                                    <div class="col-md-6 col-xxl-3">
                                                         <label for="last_name" class="form-label">Cognome</label>
                                                         <input class="form-control @error('last_name') is-invalid @enderror" type="text" id="last_name" placeholder="Cognome" wire:model="last_name" style="text-transform:uppercase">
                                                     </div>
-                                                    <div class="col-md-3">
+                                                    <div class="col-md-6 col-xxl-3">
                                                         <label for="email" class="form-label">Sesso</label>
                                                         <select id="gender" class="form-select @error('gender') is-invalid @enderror" aria-label="Sesso" wire:model="gender">
                                                             <option value="">
@@ -522,7 +556,7 @@
                                                             <option value="O">Altro
                                                         </select>
                                                     </div>
-                                                    <div class="col-md-3">
+                                                    <div class="col-md-6 col-xxl-3">
                                                         <label for="inputDate" class="form-label">Data di nascita {!!$age != '' ? ' <b>(' . $age . ')</b>' : ''!!}{!!$under18 ? '<span style="color:red;font-weight:bold">&nbsp;MINORENNE</span>' : ''!!}</label>
                                                         <div class="input-group mb-3">
                                                             <input class="form-control @error('birth_date') is-invalid @enderror" type="date" id="birth_date" placeholder="Data di nascita" wire:model="birth_date">
@@ -531,27 +565,27 @@
                                                 </div>
 
                                                 <div class="row g-3">
-                                                    <div class="col-md-3">
+                                                    <div class="col-md-6 col-xxl-3">
                                                         <label for="birth_nation_id" class="form-label">Nazione di Nascita</label>
                                                         <select id="birth_nation_id" class="form-select nationBirthClass @error('birth_nation_id') is-invalid @enderror" aria-label="Nazione di nascita" wire:model="birth_nation_id">
                                                             <option value="{{$birth_nation_id}}">{{$this->getNation($birth_nation_id)}}
                                                         </select>
                                                     </div>
                                                     @if($isBirthItaly)
-                                                        <div class="col-md-3">
+                                                        <div class="col-md-6 col-xxl-3">
                                                             <label for="birth_province_id" class="form-label">Provincia di Nascita</label>
                                                             <select id="birth_province_id" class="form-select provinceBirthClass @error('birth_province_id') is-invalid @enderror" aria-label="Provincia di nascita" wire:model="birth_province_id">
                                                                 <option value="{{$birth_province_id}}">{{$this->getProvince($birth_province_id)}}
                                                             </select>
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="birth_city_id" class="form-label">Comune di Nascita</label>
                                                             <select id="birth_city_id" class="form-select cityBirthClass @error('birth_city_id') is-invalid @enderror" aria-label="Comune di nascita" wire:model="birth_city_id" >
                                                                 <option value="{{$birth_city_id}}">{{$this->getCity($birth_city_id)}}
                                                             </select>
                                                         </div>
                                                     @else
-                                                        <div class="col-md-3">
+                                                        <div class="col-xl-3">
                                                             <label for="birth_place" class="form-label">Paese di nascita</label>
                                                             <input class="form-control @error('birth_place') is-invalid @enderror" type="text" id="birth_place" placeholder="Paese di nascita" wire:model="birth_place">
                                                         </div>
@@ -560,7 +594,7 @@
 
                                                 <div class="row g-3 mt-1">
 
-                                                    <div class="col-md-6">
+                                                    <div class="col-xl-6">
                                                         <label for="fiscal_code" class="form-label">Codice fiscale (<a wire:click="getFiscalCode()" href="#" style="font-size:18px;color: #006099;font-weight: bold;">calcola</a>)</label>
                                                         <input class="form-control  @error('fiscal_code') is-invalid @enderror" type="text" id="fiscal_code" placeholder="Codice fiscale" wire:model="fiscal_code"  maxlength="16">
                                                         @if($this->error_fc)
@@ -568,7 +602,7 @@
                                                         @endif
                                                     </div>
 
-                                                    <div class="col-6">
+                                                    <div class="col-xl-6">
                                                         <div class="upload-file">
                                                             <label for="formFile" class="form-label">Immagine profilo</label>
                                                             @error('image') <span class="error">{{ $message }}</span> @enderror
@@ -587,20 +621,20 @@
                                                 <div class="row g-3 mt-1">
 
                                                     <span class="title-form primary d-block w-100">Residenza</span>
-                                                    <div class="col-md-3" wire:ignore>
+                                                    <div class="col-xl-3" wire:ignore>
                                                         <label for="nation_id" class="form-label">Nazione</label>
                                                         <select id="nation_id" class="form-select nationClass @error('nation_id') is-invalid @enderror" aria-label="Nazione" wire:model="nation_id">
                                                             <option value="{{$nation_id}}">{{$this->getNation($nation_id)}}
                                                         </select>
                                                     </div>
                                                     @if($isItaly)
-                                                        <div class="col-md-3">
+                                                        <div class="col-xl-3">
                                                             <label for="province_id" class="form-label">Provincia</label>
                                                             <select id="province_id" class="form-select provinceClass @error('province_id') is-invalid @enderror" aria-label="Provincia" wire:model="province_id">
                                                                 <option value="{{$province_id}}">{{$this->getProvince($province_id)}}
                                                             </select>
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="city_id" class="form-label">Comune</label>
                                                             <select id="city_id" class="form-select cityClass @error('city_id') is-invalid @enderror" aria-label="Comune" wire:model="city_id">
                                                                 <option value="{{$city_id}}">{{$this->getCity($city_id)}}
@@ -611,11 +645,11 @@
                                                 </div>
 
                                                 <div class="row g-3 mt-1">
-                                                    <div class="col-6">
+                                                    <div class="col-xl-6">
                                                         <label for="address" class="form-label">Indirizzo</label>
                                                         <input class="form-control @error('address') is-invalid @enderror" type="text" id="address" placeholder="Indirizzo" wire:model="address" style="text-transform:uppercase">
                                                     </div>
-                                                    <div class="col-3">
+                                                    <div class="col-xl-3">
                                                         <label for="zip_code" class="form-label">CAP</label>
                                                         <input class="form-control @error('zip_code') is-invalid @enderror" type="text" id="zip_code" placeholder="CAP" wire:model="zip_code" maxlength="5"  >
                                                     </div>
@@ -624,19 +658,19 @@
                                                 <div class="row g-3 mt-1">
 
                                                     <span class="title-form primary d-block w-100">Contatti</span>
-                                                    <div class="col-md-6">
+                                                    <div class="col-xl-6">
                                                         <label for="email" class="form-label">Email</label>
                                                         <input class="form-control @error('email') is-invalid @enderror" type="text" id="email" placeholder="Email" wire:model="email">
                                                     </div>
-                                                    <div class="col-md-6">
+                                                    <div class="col-xl-6">
                                                         <label for="phone" class="form-label">Telefono/Cellulare</label>
                                                         <input class="form-control @error('phone') is-invalid @enderror" type="text" id="phone" placeholder="Telefono" wire:model="phone">
                                                     </div>
-                                                    <div class="col-md-6">
+                                                    <div class="col-xl-6">
                                                         <label for="phone2" class="form-label">Telefono 2</label>
                                                         <input class="form-control" type="text" id="phone2" placeholder="Telefono 2" wire:model="phone2">
                                                     </div>
-                                                    <div class="col-md-6">
+                                                    <div class="col-xl-6">
                                                         <label for="phone3" class="form-label">Telefono 3</label>
                                                         <input class="form-control" type="text" id="phone3" placeholder="Telefono 3" wire:model="phone3">
                                                     </div>
@@ -645,11 +679,11 @@
 
                                                 <div class="row g-3 mt-1">
 
-                                                    <div class="col-md-12">
+                                                    <div class="col-lg-12">
                                                         <input type="checkbox" id="no_send_mail" wire:model="no_send_mail">&nbsp;<label for="birth_place" class="form-label">Non inviare mail ricevuta</label>
                                                     </div>
 
-                                                    <div class="col-md-12">
+                                                    <div class="col-lg-12">
                                                         <input type="checkbox" id="exclude_from_records" wire:model="exclude_from_records">&nbsp;<label for="birth_place" class="form-label">Escludi da prima nota e entrate/uscite</label>
                                                     </div>
 
@@ -677,27 +711,27 @@
 
                                                     <div class="row g-3 mt-1">
                                                         <span class="title-form primary d-block w-100">Genitore 1</span>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="father_name" class="form-label"><b>Nome</b></label>
                                                             <input class="form-control" type="text" id="father_name" placeholder="Nome" wire:model="father_name">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="father_name" class="form-label"><b>Email</b></label>
                                                             <input class="form-control" type="text" id="father_email" placeholder="Email" wire:model="father_email">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="father_name" class="form-label"><b>Telefono</b></label>
                                                             <input class="form-control" type="text" id="father_phone" placeholder="Telefono" wire:model="father_phone">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="father_name" class="form-label"><b>Codice fiscale</b></label>
                                                             <input class="form-control" type="text" id="father_fiscal_code" placeholder="Codice fiscale" wire:model="father_fiscal_code" maxlength="16">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="father_name" class="form-label"><b>Numero documento</b></label>
                                                             <input class="form-control" type="text" id="father_doc_number" placeholder="Numero documento" wire:model="father_doc_number">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="father_name" class="form-label"><b>Tipo documento</b></label>
                                                             <select class="form-select form-select-lg me-1" aria-label=".form-select-lg example" wire:model="father_doc_type">
                                                                 <option value="">Seleziona il tipo documento</option>
@@ -710,27 +744,27 @@
                                                     </div>
                                                     <div class="row g-3 mt-1">
                                                         <span class="title-form primary d-block w-100">Genitore 2</span>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="mother_name" class="form-label"><b>Nome</b></label>
                                                             <input class="form-control " type="text" id="mother_name" placeholder="Nome genitore 2" wire:model="mother_name">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="mother_name" class="form-label"><b>Email</b></label>
                                                             <input class="form-control " type="text" id="mother_email" placeholder="Email" wire:model="mother_email">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="mother_name" class="form-label"><b>Telefono</b></label>
                                                             <input class="form-control " type="text" id="mother_phone" placeholder="Telefono" wire:model="mother_phone">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="mother_name" class="form-label"><b>Codice fiscale</b></label>
                                                             <input class="form-control " type="text" id="mother_fiscal_code" placeholder="Codice fiscale" wire:model="mother_fiscal_code" maxlength="16">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="mother_name" class="form-label"><b>Numero documen to</b></label>
                                                             <input class="form-control " type="text" id="mother_doc_number" placeholder="Numero documento" wire:model="mother_doc_number">
                                                         </div>
-                                                        <div class="col-md-6">
+                                                        <div class="col-xl-6">
                                                             <label for="mother_name" class="form-label"><b>Tipo documento</b></label>
                                                             <select class="form-select form-select-lg me-1" aria-label=".form-select-lg example" wire:model="mother_doc_type">
                                                                 <option value="">Seleziona il tipo documento</option>
@@ -748,7 +782,7 @@
                                                 <div class="row g-3 mt-1" wire:key='reload-{{$selectId}}'>
 
                                                     <span class="title-form primary d-block w-100">Documento</span>
-                                                    <div class="col-3">
+                                                    <div class="col-xl-6 col-xl-3">
                                                         <label for="document_type" class="form-label">Tipo</label>
                                                         <select class="form-select form-select-lg me-1" aria-label=".form-select-lg example" wire:model="document_type">
                                                             <option value="">--Seleziona--</option>
@@ -758,11 +792,11 @@
                                                             <option value="Permesso di soggiorno">Permesso di soggiorno</option>
                                                         </select>
                                                     </div>
-                                                    <div class="col-3">
+                                                    <div class="col-xl-6 col-xl-3">
                                                         <label for="document_number" class="form-label">Numero</label>
                                                         <input class="form-control" type="text" id="document_number" placeholder="Numero" wire:model="document_number">
                                                     </div>
-                                                    <div class="col-3">
+                                                    <div class="col-xl-6 col-xl-3">
                                                         <label for="document_from" class="form-label">Rilasciato da</label>
                                                         <select class="form-select form-select-lg me-1" aria-label=".form-select-lg example" wire:model="document_from">
                                                             <option value="">--Seleziona--</option>
@@ -772,7 +806,7 @@
                                                             <option value="Prefettura">Prefettura</option>
                                                         </select>
                                                     </div>
-                                                    <div class="col-3">
+                                                    <div class="col-xl-6 col-xl-3">
                                                         <label for="document_expire_date" class="form-label">Scadenza</label>
                                                         <input class="form-control" type="date" id="document_expire_date" placeholder="Scadenza" wire:model="document_expire_date">
                                                     </div>
@@ -815,8 +849,8 @@
                                                                             <td>{{$member_certificate->expire_date ? date("d/m/Y", strtotime($member_certificate->expire_date)) : ''}}</td>
                                                                             <td>{!!$member_certificate->filename != '' ? '<a href="/storage/app/public/' . $member_certificate->filename . '" target="_blank">Visualizza</a>' : ''!!}</td>
                                                                             <td>
-                                                                                <button type="button" class="btn" wire:click="editCertificate({{ $member_certificate->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
-                                                                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="deleteCertificate({{ $member_certificate->id }})"><i class="fa-regular fa-trash-can"></i></button>
+                                                                                <button type="button" class="btn" wire:click="editCertificate({{ $member_certificate->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>
+                                                                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="deleteCertificate({{ $member_certificate->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>
                                                                             </td>
                                                                         </tr>
                                                                     @endforeach
@@ -857,7 +891,7 @@
                                                             @if($updateCertificate)
                                                                 <button class="btn--ui primary" wire:click.prevent="updateCertificate()">Salva</button>
                                                             @endif
-                                                            <button class="btn--ui primary" wire:click.prevent="cancelCertificate()">Annulla</button>
+                                                            <button class="btn--ui lightGrey" wire:click.prevent="cancelCertificate()">Annulla</button>
 
                                                         @endif
                                                     @else
@@ -893,8 +927,8 @@
                                                             <td>{{$member_card->number}}</td>
                                                             <td>{{$member_card->expire_date ? date("d/m/Y", strtotime($member_card->expire_date)) : ''}}</td>
                                                             <td>
-                                                                <button type="button" class="btn" wire:click="editCard({{ $member_card->id }})"><i class="fa-regular fa-pen-to-square"></i></button>
-                                                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="deleteCard({{ $member_card->id }})"><i class="fa-regular fa-trash-can"></i></button>
+                                                                <button type="button" class="btn" wire:click="editCard({{ $member_card->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>
+                                                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="deleteCard({{ $member_card->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>
                                                             </td>
                                                         </tr>
                                                     @endforeach
@@ -969,13 +1003,17 @@
                                             </div>
 
                                             <br>
-                                            @if($addCard)
-                                                <button class="btn--ui primary" wire:click.prevent="storeCard()">Salva</button>
-                                            @endif
-                                            @if($updateCard)
-                                                <button class="btn--ui primary" wire:click.prevent="updateCard()">Salva</button>
-                                            @endif
-                                            <button class="btn--ui primary" wire:click.prevent="cancelCard()">Annulla</button>
+                                            <div class="row mt-2">
+                                                <div class="col-md-12">
+                                                    @if($addCard)
+                                                        <button class="btn--ui primary" wire:click.prevent="storeCard()">Salva</button>
+                                                    @endif
+                                                    @if($updateCard)
+                                                        <button class="btn--ui primary" wire:click.prevent="updateCard()">Salva</button>
+                                                    @endif
+                                                    <button class="btn--ui lightGrey" wire:click.prevent="cancelCard()">Annulla</button>
+                                                </div>
+                                            </div>
 
                                         @endif
                                         <!--
@@ -1065,7 +1103,7 @@
                                     @if($dataId > 0)
 
                                         @if(!$addCourse && !$updateCourse)
-                                            <table class="table tablesaw tablesaw-stack" id="tablesaw-350-2" style="min-width:800px">
+                                            <table class="table tablesaw tablesaw-stack tabella--corsi" id="tablesaw-350-2" style="min-width:800px">
                                                 <tbody id="checkall-target">
                                                     @foreach($member_courses as $member_course)
                                                         <tr>
@@ -1106,9 +1144,9 @@
                                                                 <td style="width:10%">Iscrizione:<br><b>{{$member_course->status == 1 ? 'Pagata' : ($member_course->status == 2 ? 'Da pagare' : 'Sospesa')}}</b></td>
                                                             @endif
                                                             <td style="text-align:right;width:30%">
+                                                                <button type="button" class="btn" wire:click="editCourse({{ $member_course->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;
+                                                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="deleteCourse({{ $member_course->id }})" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>
                                                                 <button type="button" class="btn" wire:click="showHideCourse({{ $member_course->id }})"><i class="fa-solid fa-chevron-down"></i></button>&nbsp;
-                                                                <button type="button" class="btn" wire:click="editCourse({{ $member_course->id }})"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;
-                                                                <button type="button" class="btn" onclick="confirm('Sei sicuro?') || event.stopImmediatePropagation()" wire:click="deleteCourse({{ $member_course->id }})"><i class="fa-regular fa-trash-can"></i></button>
                                                             </td>
 
                                                         </tr>
@@ -1220,7 +1258,7 @@
                                                             </div>
                                                         @endif
                                                     </div>
-                                                    <div class="row ">
+                                                    <div class="row mt-4">
                                                         <div class="col-md-6">
                                                             <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">
@@ -1249,32 +1287,33 @@
                                                         @endif
                                                     </div>
 
-                                                    <div class="row ">
+                                                    <div class="row mt-4 course--duration">
                                                         <div class="col-md-12">
-                                                            <label for="duration" class="form-label">Durata del corso</label><br>
-                                                                <a class="{{$this->checkMonth(9) ? 'selected' : 'notSelected'}}" wire:click="setMonth(9)">Set</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(10) ? 'selected' : 'notSelected'}}" wire:click="setMonth(10)">Ott</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(11) ? 'selected' : 'notSelected'}}" wire:click="setMonth(11)">Nov</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(12) ? 'selected' : 'notSelected'}}" wire:click="setMonth(12)">Dic</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(1) ? 'selected' : 'notSelected'}}" wire:click="setMonth(1)">Gen</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(2) ? 'selected' : 'notSelected'}}" wire:click="setMonth(2)">Feb</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(3) ? 'selected' : 'notSelected'}}" wire:click="setMonth(3)">Mar</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(4) ? 'selected' : 'notSelected'}}" wire:click="setMonth(4)">Apr</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(5) ? 'selected' : 'notSelected'}}" wire:click="setMonth(5)">Mag</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(6) ? 'selected' : 'notSelected'}}" wire:click="setMonth(6)">Giu</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(7) ? 'selected' : 'notSelected'}}" wire:click="setMonth(7)">Lug</a>&nbsp;
-                                                                <a class="{{$this->checkMonth(8) ? 'selected' : 'notSelected'}}" wire:click="setMonth(8)">Ago</a>&nbsp;
-
+                                                            <label for="duration" class="form-label">Durata del corso</label>
+                                                                <div class="d-flex course--duration_mounth">
+                                                                    <a class="{{$this->checkMonth(9) ? 'selected' : 'notSelected'}}" wire:click="setMonth(9)">Set</a>
+                                                                    <a class="{{$this->checkMonth(10) ? 'selected' : 'notSelected'}}" wire:click="setMonth(10)">Ott</a>
+                                                                    <a class="{{$this->checkMonth(11) ? 'selected' : 'notSelected'}}" wire:click="setMonth(11)">Nov</a>
+                                                                    <a class="{{$this->checkMonth(12) ? 'selected' : 'notSelected'}}" wire:click="setMonth(12)">Dic</a>
+                                                                    <a class="{{$this->checkMonth(1) ? 'selected' : 'notSelected'}}" wire:click="setMonth(1)">Gen</a>
+                                                                    <a class="{{$this->checkMonth(2) ? 'selected' : 'notSelected'}}" wire:click="setMonth(2)">Feb</a>
+                                                                    <a class="{{$this->checkMonth(3) ? 'selected' : 'notSelected'}}" wire:click="setMonth(3)">Mar</a>
+                                                                    <a class="{{$this->checkMonth(4) ? 'selected' : 'notSelected'}}" wire:click="setMonth(4)">Apr</a>
+                                                                    <a class="{{$this->checkMonth(5) ? 'selected' : 'notSelected'}}" wire:click="setMonth(5)">Mag</a>
+                                                                    <a class="{{$this->checkMonth(6) ? 'selected' : 'notSelected'}}" wire:click="setMonth(6)">Giu</a>
+                                                                    <a class="{{$this->checkMonth(7) ? 'selected' : 'notSelected'}}" wire:click="setMonth(7)">Lug</a>
+                                                                    <a class="{{$this->checkMonth(8) ? 'selected' : 'notSelected'}}" wire:click="setMonth(8)">Ago</a>
+                                                                </div>
                                                         </div>
                                                     </div>
-                                                    <div class="row">
+                                                    <div class="row mt-4">
                                                         <div class="col-md-6">
                                                             <label for="course_subscription_price" class="form-label">Costo iscrizione</label>
                                                             <input class="form-control" type="text" id="course_subscription_price" placeholder="Costo iscrizione" wire:model="course_subscription_price" onkeyup="onlyNumberAmount(this)">
                                                         </div>
                                                     </div>
                                                     @if(false)
-                                                        <div class="row ">
+                                                        <div class="row mt-4">
                                                             <div class="col-md-6">
                                                                 <label for="course_date_from" class="form-label">Dal</label>
                                                                 <input class="form-control" type="date" id="course_date_from" placeholder="Dal" wire:model="course_date_from">
@@ -1286,46 +1325,52 @@
                                                         </div>
                                                     @endif
                                                     @foreach($course_when as $idW => $when)
-                                                        <div class="row day" >
-                                                            <div class="col-md-12">
-                                                                <label for="" class="form-label">Giorno</label><br>
-                                                                <a class="{{in_array('lun', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'lun')">Lun</a>&nbsp;
-                                                                <a class="{{in_array('mar', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'mar')">Mar</a>&nbsp;
-                                                                <a class="{{in_array('mer', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'mer')">Mer</a>&nbsp;
-                                                                <a class="{{in_array('gio', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'gio')">Gio</a>&nbsp;
-                                                                <a class="{{in_array('ven', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'ven')">Ven</a>&nbsp;
-                                                                <a class="{{in_array('sab', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'sab')">Sab</a>&nbsp;
-                                                                <a class="{{in_array('dom', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'dom')">Dom</a>&nbsp;
-                                                            </div>
-                                                            <div class="col-md-3">
-                                                                <label for="" class="form-label">Dalle</label>
-                                                                <select class="form-select" wire:model="course_when.{{$idW}}.from">
-                                                                    <option value="">--Seleziona--
-                                                                    @for($c=6;$c<=23;$c++)
-                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
-                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
-                                                                    @endfor
-                                                                </select>
-                                                            </div>
-                                                            <div class="col-md-3">
-                                                                <label for="" class="form-label">Alle</label>
-                                                                <select class="form-select" wire:model="course_when.{{$idW}}.to">
-                                                                    <option value="">--Seleziona--
-                                                                    @for($c=6;$c<=23;$c++)
-                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
-                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
-                                                                    @endfor
-                                                                </select>
-                                                            </div>
-                                                            <div class="col-md-1">
-                                                                <br>
-                                                                <button class="btn--ui primary" wire:click.prevent="delRow({{$idW}})">-</button>
+                                                        <div class="row">
+                                                            <div class="col-12">
+                                                                <div class="day durata--corso d-flex">
+                                                                    <label for="" class="form-label">Giorno</label>
+                                                                        <div class="durata--corso_days mb-3">
+                                                                            <a class="{{in_array('lun', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'lun')">Lun</a>
+                                                                            <a class="{{in_array('mar', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'mar')">Mar</a>
+                                                                            <a class="{{in_array('mer', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'mer')">Mer</a>
+                                                                            <a class="{{in_array('gio', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'gio')">Gio</a>
+                                                                            <a class="{{in_array('ven', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'ven')">Ven</a>
+                                                                            <a class="{{in_array('sab', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'sab')">Sab</a>
+                                                                            <a class="{{in_array('dom', $course_when[$idW]["day"]) ? 'selected' : 'notSelected'}}" wire:click="setDay({{$idW}}, 'dom')">Dom</a>
+                                                                        </div>
+
+                                                                        <div class="durata--corso_select">
+                                                                            <div class="from--h me-3">
+                                                                                <label for="" class="form-label">Dalle</label>
+                                                                                <select class="form-select" wire:model="course_when.{{$idW}}.from">
+                                                                                    <option value="">--Seleziona--
+                                                                                    @for($c=6;$c<=23;$c++)
+                                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
+                                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
+                                                                                    @endfor
+                                                                                </select>
+                                                                            </div>
+                                                                            <div class="to--h">
+                                                                                <label for="" class="form-label">Alle</label>
+                                                                                <select class="form-select" wire:model="course_when.{{$idW}}.to">
+                                                                                    <option value="">--Seleziona--
+                                                                                    @for($c=6;$c<=23;$c++)
+                                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
+                                                                                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
+                                                                                    @endfor
+                                                                                </select>
+                                                                            </div>
+                                                                        </div>
+
+
+                                                                    <button class="btn--ui primary remove--day position-absolute" wire:click.prevent="delRow({{$idW}})"><i class="fa-solid fa-minus"></i></button>
+
+                                                                    <button class="btn--ui primary add--day position-absolute" wire:click.prevent="addRow()"><i class="fa-solid fa-plus"></i></button>
+                                                                </div>
                                                             </div>
                                                         </div>
                                                     @endforeach
-                                                    <br>
-                                                    <button class="btn--ui primary" wire:click.prevent="addRow()">+</button>
-                                                    <br>
+
                                                     <div class="row  mt-2">
                                                         <div class="col-md-12">
                                                             <label for="course_date_from" class="form-label">Note</label>
@@ -1352,7 +1397,7 @@
 
                                                 @endif
 
-                                                    <button class="btn--ui primary" wire:click.prevent="cancelCourse()">Annulla</button>
+                                                    <button class="btn--ui lightGrey" wire:click.prevent="cancelCourse()">Annulla</button>
                                                     </div>
 
                                             </div>
@@ -1366,7 +1411,7 @@
                             </div>
 
                         </div>
-                        <div class="col-md-3 p-3">
+                        <div class="col-md-5 col-xl-4 p-3">
 
                             <div id="card--resume" class="primary card--ui ms-3 user--resume">
                                 <header>
@@ -1382,7 +1427,7 @@
                                 <div class="card--resume_body">
                                     <ul class="user-address mb-4 p-0">
                                         <li><i class="ico--ui resume--ico phone me-2"></i><span>Tel. {{ $phone }}</span></li>
-                                        <li><i class="ico--ui resume--ico birth me-2"></i><span>{{ $email }}</span></li>
+                                        <li><i class="ico--ui resume--ico mail light me-2"></i><span>{{ $email }}</span></li>
                                     </ul>
                                     <ul class="user-residence p-0">
                                         <li><i class="ico--ui resume--ico residence me-2"></i>
@@ -1443,7 +1488,7 @@
 
                                             <div class="resume--wrapper d-flex align-items-start justify-content-between mb-2">
                                                 <div class="resume--info d-flex align-items-start">
-                                                    <i class="ico--ui tessera me-2"></i>
+                                                    <i class="fa-regular fa-file-lines me-2"></i>
                                                     <div class="title--tessera_added">
                                                         <h4>{{$cert->type == 'A' ? 'Agonistico' : 'Non agonistico'}}</h4>
                                                         <span class="title-detail">Scadenza: <span class="title-detail_date">{{$cert->expire_date ? date("d/m/Y", strtotime($cert->expire_date)) : ''}}</span></span></small>
@@ -1484,7 +1529,7 @@
                                         @endforeach
                                     </div>
 
-                                    <div class="resume--tab_info gruppi">
+                                    <div class="resume--tab_info gruppi corsi">
                                         <h2 class="mb-3">Corsi</h2>
                                         @foreach($member_courses as $member_course)
                                             <div class="resume--info d-flex align-items-center">
@@ -1536,15 +1581,25 @@
 
                 <!-- save & continue section -->
                 <section class="save--section d-flex justify-content-start">
-                    @if($add)
-                        <button class="btn--ui primary" onclick="storeAction(true)">salva e chiudi</button>&nbsp;&nbsp;&nbsp;
-                        <button class="btn--ui primary" onclick="storeAction(false)">salva e continua</button>&nbsp;&nbsp;&nbsp;
-                    @endif
-                    @if($update)
-                        <button class="btn--ui primary" onclick="updateAction(true)">salva e chiudi</button>&nbsp;&nbsp;&nbsp;
-                        <button class="btn--ui primary" onclick="updateAction(false)">salva e continua</button>&nbsp;&nbsp;&nbsp;
-                    @endif
-                    <button class="btn--ui lightGrey"  type="button" onclick="cancelAction()">annulla</button>
+
+                    <div class="container">
+                        <div class="row">
+                            <div class="col-md-7 col-xl-8 d-flex gx-0">
+                            @if($add)
+                        <button class="btn--ui primary d-flex order-1 me-2" onclick="storeAction(false)">continua</button>
+                        <button class="btn--ui primary d-flex order-3 ms-auto" onclick="storeAction(true)">salva e chiudi</button>
+                        @endif
+                        @if($update)
+                            <button class="btn--ui primary d-flex order-1 me-2" onclick="updateAction(false)">continua</button>
+                            <button class="btn--ui primary d-flex order-3 ms-auto" onclick="updateAction(true)">salva e chiudi</button>
+                        @endif
+                        <button class="btn--ui lightGrey d-flex order-2"  type="button" onclick="cancelAction()">annulla</button>
+
+                            </div>
+                            <div class="col-md-5 col-xl-4"></div>
+                        </div>
+                    </div>
+
                 </section>
 
 
@@ -1638,7 +1693,7 @@
             transition: all 0.3s ease-in-out;
             border: 2px solid #d3dce1;
         }
-        a.grey
+        /* a.grey
         {
             display: flex;
             margin-right:10px;
@@ -1758,7 +1813,7 @@
         -webkit-border-radius: 0.5rem !important;
         background-color:#0C6197 !important;
         font-weight:normal;
-    }
+    } */
     .btn--ui.lightGrey, .btn--ui.extraLightGrey
     {
         -webkit-border-radius: 0.5rem !important;
@@ -2078,10 +2133,15 @@
                 $(this).prop( "checked", false );
             });
 
+            $(".chkCertificateScadenza").val( "" );
+            $(".chkCertificateType").val( "" );
+
+            /*
             $(".chkCertificateNormal").prop( "checked", false );
             $(".chkCertificateAgonistico").prop( "checked", false );
             $(".chkCertificateScadenza").prop( "checked", false );
             $(".chkCertificateScaduti").prop( "checked", false );
+            */
 
             $('input[name="chkStatus0"]').prop( "checked", false );
             $('input[name="chkStatus1"]').prop( "checked", false );
@@ -2090,6 +2150,9 @@
             $('input[name="txtFromYear"]').val('');
             $('input[name="txtToYear"]').val('');
 
+            $('input[name="txtFromYearYear"]').val('');
+            $('input[name="txtToYearYear"]').val('');
+
 
             loadDataTable();
         }
@@ -2121,10 +2184,13 @@
                 }
             });
 
-            var chkCertificateNormal = $(".chkCertificateNormal").is(':checked') ? "1" : "";
+            /*var chkCertificateNormal = $(".chkCertificateNormal").is(':checked') ? "1" : "";
             var chkCertificateAgonistico = $(".chkCertificateAgonistico").is(':checked') ? "1" : "";
             var chkCertificateScadenza = $(".chkCertificateScadenza").is(':checked') ? "1" : "";
-            var chkCertificateScaduti = $(".chkCertificateScaduti").is(':checked') ? "1" : "";
+            var chkCertificateScaduti = $(".chkCertificateScaduti").is(':checked') ? "1" : "";*/
+
+            var chkCertificateScadenza = $('input[name="chkCertificateScadenza"]:checked').val();
+            var chkCertificateType = $('input[name="chkCertificateType"]:checked').val();
 
             var chkStatus0 = $('input[name="chkStatus0"]').is(':checked') ? "1" : "0";
             var chkStatus1 = $('input[name="chkStatus1"]').is(':checked') ? "1" : "0";
@@ -2134,10 +2200,14 @@
             var fromYear = $('input[name="txtFromYear"]').val();
             var toYear = $('input[name="txtToYear"]').val();
 
+            var fromYearYear = $('input[name="txtFromYearYear"]').val();
+            var toYearYear = $('input[name="txtToYearYear"]').val();
+
             $('#tablesaw-350').DataTable({
                 //destroy: true,
                 serverSide: true,
-                ajax: '/get_members?cards=' + cards + "&categories=" + categories + "&chkCertificateNormal=" + chkCertificateNormal + "&chkCertificateAgonistico=" + chkCertificateAgonistico + "&chkCertificateScadenza=" + chkCertificateScadenza + "&chkCertificateScaduti=" + chkCertificateScaduti + "&chkStatus0=" + chkStatus0 + "&chkStatus1=" + chkStatus1 + "&chkStatus2=" + chkStatus2 + "&fromYear=" + fromYear + "&toYear=" + toYear,
+                ajax: '/get_members?cards=' + cards + "&categories=" + categories + "&chkCertificateType=" + chkCertificateType + "&chkCertificateScadenza=" + chkCertificateScadenza + "&chkStatus0=" + chkStatus0 + "&chkStatus1=" + chkStatus1 + "&chkStatus2=" + chkStatus2 + "&fromYear=" + fromYear + "&toYear=" + toYear + "&fromYearYear=" + fromYearYear + "&toYearYear=" + toYearYear,
+                //ajax: '/get_members?cards=' + cards + "&categories=" + categories + "&chkCertificateNormal=" + chkCertificateNormal + "&chkCertificateAgonistico=" + chkCertificateAgonistico + "&chkCertificateScadenza=" + chkCertificateScadenza + "&chkCertificateScaduti=" + chkCertificateScaduti + "&chkStatus0=" + chkStatus0 + "&chkStatus1=" + chkStatus1 + "&chkStatus2=" + chkStatus2 + "&fromYear=" + fromYear + "&toYear=" + toYear,
                 columns: [
                     //{ data: 'id' },
                     {
@@ -2164,6 +2234,7 @@
                     { data: "year"},
                     {
                         data: "status",
+                        "orderable": false,
                         render: function (data){
                             // Split class and text
                             const d = data.split("|");
@@ -2186,6 +2257,7 @@
                     },*/
                     {
                         data: "certificate",
+                        "orderable": false,
                         render: function (data){
                             // Split class and text
                             var ret = '';
@@ -2219,8 +2291,8 @@
                     {
                         data: "action",
                         render: function (data){
-                            var ret = '<button type="button" class="btn" onclick="editData(' + data + ')"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;';
-                            ret += '<button type="button" class="btn" onclick="deleteData(' + data + ')"><i class="fa-regular fa-trash-can"></i></button>';
+                            var ret = '<button type="button" class="btn" onclick="editData(' + data + ')" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;';
+                            ret += '<button type="button" class="btn" onclick="deleteData(' + data + ')" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="fa-regular fa-trash-can"></i></button>';
                             return ret;
                         }
                     },
@@ -2289,8 +2361,8 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
-                    html += '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
+                    html += '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -209,14 +209,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Metodi di pagamento',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Metodi di pagamento',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -224,7 +224,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Metodi di pagamento',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -246,7 +246,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>

+ 12 - 12
resources/views/livewire/receipt.blade.php

@@ -12,7 +12,7 @@
 
         <!--
         <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-            <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+            <div class="btn--ui entrata d-flex justify-items-between">
                 <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
             </div>
         </div>
@@ -28,7 +28,7 @@
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Periodo</b>
                     </div>
-                    <div class="col-12">
+                    <div class="col-12 mb-2">
                         <input id="dateFrom" type="date" class="form-control filterFrom"  >
                     </div>
                     <div class="col-12">
@@ -53,8 +53,8 @@
         </div>
         <div class="row g-3">
             <div class="col-md-12" style="text-align:right">
-                <button class="card--ui card--ui_btnCancel" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
-                <button class="card--ui card--ui_btnAddHeaderUser" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
+                <button class="btn--ui lightGrey" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">Reset</button>
+                <button class="btn--ui" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
             </div>
         </div>
         <hr size="1">
@@ -63,7 +63,7 @@
     <section id="resume-table">
         <div class="compare--chart_wrapper d-none"></div>
 
-        <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
+        <table class="table tablesaw tablesaw-stack table--lista_ricevute" id="tablesaw-350">
             <thead>
                 <tr>
                     <th scope="col">Anno</th>
@@ -91,9 +91,9 @@
                         <td>{{date("d/m/Y", strtotime($record->date))}}</td>
                         <td>{{formatPrice($record->rows->sum('amount'))}}</td>
                         <td>
-                            <button type="button" class="btn u" onclick="document.location.href='/in?id={{$record->record_id}}'"><i class="fa-solid fa-arrow-up-right-from-square"></i></button>
-                            <a target="_blank" class="btn  u" href="/receipt/{{$record->id}}"><i class="fa-solid fa-print"></i></a>
-                            <a target="_blank" class="btn u" onclick="sendMail({{$record->id}})"><i class="fa-regular fa-envelope"></i></a>
+                            <button type="button" class="btn u" onclick="document.location.href='/in?id={{$record->record_id}}'" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="visualizza ricevuta"><i class="fa-regular fa-eye"></i></button>
+                            <a target="_blank" class="btn  u" href="/receipt/{{$record->id}}" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="stampa ricevuta"><i class="fa-regular fa-file-lines"></i></a>
+                            <a target="_blank" class="btn u" onclick="sendMail({{$record->id}})"><i class="fa-regular fa-envelope" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="invia email"></i></a>
                         </td>
                     </tr>
                 @endforeach
@@ -174,14 +174,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Ricevute',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Ricevute',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -189,7 +189,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Ricevute',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -212,7 +212,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 132 - 6
resources/views/livewire/records.blade.php

@@ -8,7 +8,7 @@
 
     </header>
 
-    <section id="subheader" class="d-flex align-items-center ">
+    <section id="subheader" class="d-flex align-items-center filtri-prima_nota">
         <!--
         <form action="" class="group--action d-flex align-items-center">
         <select class="form-select form-select-lg me-1" aria-label=".form-select-lg example">
@@ -21,9 +21,12 @@
         </form>
         -->
 
-            Dal&nbsp;<input type="date" wire:model="fromDate" class="form-control" style="width:200px;">
-            &nbsp;&nbsp;&nbsp;
-            al&nbsp;<input type="date" wire:model="toDate" class="form-control"  style="width:200px;">
+        <div class="prima--nota_date">
+
+            <span class="date_span">Dal</span><input type="date" wire:model="fromDate" class="form-control">
+            
+            <span class="date_span ms-2">al</span><input type="date" wire:model="toDate" class="form-control">
+
             @if(false)
             Da&nbsp;<select class="form-select form-select-lg me-1" wire:model="selectedFilterFromDay" style="width:150px">
                 @foreach($days as $p)
@@ -57,9 +60,26 @@
                 @endforeach
             </select>
             @endif
+            </div>
 
-        <button class="btn--ui reset" wire:click="export()" style="margin-left:5px;"><i class="fa-solid fa-download"></i></button>
-        <button class="btn--ui reset " style="margin-left:5px;" id="print"><i class="fa-solid fa-print"></i></button>
+            <div class="prima--nota_tipology">
+                <select name="search_causal_id[]" class="form-select filterCausals me-2" multiple="multiple" wire:model="filterCausals">
+                    @foreach($causals as $causal)
+                        <option value="{{$causal["id"]}}">{!!$causal["name"]!!}
+                    @endforeach
+                </select>
+                <select name="search_member_id" class="form-select filterMember" wire:model="filterMember">
+                    <option value="">--Seleziona--
+                    @foreach($members as $member)
+                        <option value="{{$member->id}}">{{$member->last_name}} {{$member->first_name}}
+                    @endforeach
+                </select>
+            </div>
+                                   
+            <div class="prima--nota_buttons ms-auto">
+                <button class="btn--ui_outline light reset" wire:click="export()" style="margin-left:5px;"><i class="fa-solid fa-download"></i></button>
+                <button class="btn--ui_outline light reset" style="margin-left:5px;" id="print"><i class="fa-solid fa-print"></i></button>
+            </div>
     </section>
 
     <section id="resume-table">
@@ -198,7 +218,113 @@
 @push('scripts')
     <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
 @endpush
+@push('scripts')
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+        .i{
+            font-size:16px;
+            font-weight:bold;
+        }
+        .cellBorder
+        {
+            border-left: 1px solid grey;
+        }
+
+        .select2-selection--multiple{
+            overflow: hidden !important;
+            height: auto !important;
+        }
+        .select2-container {
+            box-sizing: border-box;
+            display: inline-block;
+            margin: 0;
+            position: relative;
+            vertical-align: middle;
+        }
+        .select2-container .select2-selection--single {
+            box-sizing: border-box;
+            cursor: pointer;
+            display: block;
+            height: 38px;
+            user-select: none;
+            -webkit-user-select: none;
+        }
+        .select2-container .select2-selection--single .select2-selection__rendered {
+            display: block;
+            padding-left: 8px;
+            padding-right: 20px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
+    <script src="/assets/js/aCollapTable.js"></script>
+@endpush
 
+@push('scripts')
+    <script>
+
+        Livewire.on('load-table', () => {
+            load();
+        });
+
+
+        function load()
+        {
+            $(document).ready(function(){
+
+                $('.filterCausals').select2();
+                $('.filterCausals').on('change', function (e) {
+                    var data = $('.filterCausals').select2("val");
+                    @this.set('filterCausals', data);
+                });
+
+                $('.filterMember').select2();
+                $('.filterMember').on('change', function (e) {
+                    var data = $('.filterMember').select2("val");
+                    @this.set('filterMember', data);
+                });
+
+            });
+        }
+
+        Livewire.on('load-select', () => {
+            $('.filterCausals').select2();
+            $('.filterCausals').on('change', function (e) {
+                var data = $('.filterCausals').select2("val");
+                @this.set('filterCausals', data);
+            });
+            $('.filterMember').select2();
+            $('.filterMember').on('change', function (e) {
+                var data = $('.filterMember').select2("val");
+                @this.set('filterMember', data);
+            });
+        });
+
+        load();
+
+
+    </script>
+
+@endpush
 
 @push('scripts')
     <script>

+ 85 - 73
resources/views/livewire/records_in.blade.php

@@ -13,7 +13,7 @@
 
                     @if(!$add && !$update)
                         <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
-                            <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                            <div class="btn--ui entrata d-flex justify-items-between">
                                 <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                             </div>
                         </div>
@@ -46,7 +46,7 @@
                                 <div class="col-md-12" style="margin-bottom:10px;">
                                     <b>Periodo</b>
                                 </div>
-                                <div class="col-12">
+                                <div class="col-12 mb-2">
                                     <input id="dateFrom" type="date" class="form-control filterFrom"  >
                                 </div>
                                 <div class="col-12">
@@ -82,7 +82,7 @@
                         <div class="col-md-2">
                             <div class="row">
                                 <div class="col-md-12" style="margin-bottom:10px;">
-                                    <b>Persona</b>
+                                    <b>Utente</b>
                                 </div>
                                 <div class="col-12">
                                     <select name="search_member_id" class="form-select filterMember">
@@ -97,11 +97,10 @@
                         <div class="col-md-2">
                             <div class="row">
                                 <div class="col-md-12" style="margin-bottom:10px;">
-                                    <b>Pagamento</b>
+                                    <b>Metodi di pagamento</b>
                                 </div>
                                 <div class="col-12">
-                                    <select name="search_payment_method_id" class="form-select filterPaymentMethod">
-                                        <option value="">--Seleziona--
+                                    <select name="search_payment_method_id" class="form-select filterPaymentMethod" multiple="multiple">
                                         @foreach($payments as $payment)
                                             <option value="{{$payment->id}}">{{$payment->name}}
                                         @endforeach
@@ -115,8 +114,7 @@
                                     <b>Causali</b>
                                 </div>
                                 <div class="col-12">
-                                    <select name="search_causal_id" class="form-select filterCausals">
-                                        <option value="">--Seleziona--
+                                    <select name="search_causal_id" class="form-select filterCausals" multiple="multiple">
                                         @foreach($causals as $causal)
                                             <option value="{{$causal["id"]}}">{!!$causal["name"]!!}
                                         @endforeach
@@ -127,8 +125,8 @@
                     </div>
                     <div class="row g-3">
                         <div class="col-md-12" style="text-align:right">
-                            <button class="card--ui card--ui_btnCancel" onclick="reset()">CANCELLA</button>
-                            <button class="card--ui card--ui_btnAddHeaderUser" onclick="loadDataTable()">FILTRA</button>
+                            <button class="btn--ui lightGrey" onclick="reset()">Reset</button>
+                            <button class="btn--ui" onclick="loadDataTable()">FILTRA</button>
                         </div>
                     </div>
                     <hr size="1">
@@ -137,7 +135,7 @@
                 <section id="resume-table">
                     <div class="compare--chart_wrapper d-none"></div>
 
-                    <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
+                    <table class="table tablesaw tablesaw-stack table--lista_entrate" id="tablesaw-350">
                         <thead>
                             <tr>
                                 <!--<th scope="col"></th>-->
@@ -207,7 +205,7 @@
 
 
                                     <div class="col-md-6">
-                                        <span class="title-form d-block w-100">Persona</span>
+                                        <span class="title-form d-block w-100">Utente</span>
                                         <select name="member_id" class="form-select memberClass @error('member_id') is-invalid @enderror" aria-label="Seleziona una persona" wire:model="member_id" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
                                             <option value="">--Seleziona--
                                             @foreach($members as $member)
@@ -223,7 +221,7 @@
                                     <div class="col-md-6">
                                         @if($this->dataId == 0 && !$isDuplicate)
                                             <span class="title-form d-block w-100">&nbsp;</span>
-                                            <button type="button" class="btn--ui primary" data-bs-toggle="modal" data-bs-target="#userModal" style="width:50px">&nbsp;<i style="margin-left:5px;" class="fa-solid fa-plus"></i></button>
+                                            <button type="button" class="btn--ui primary" data-bs-toggle="modal" data-bs-target="#userModal" style="width:50px">&nbsp;<i class="fa-solid fa-plus"></i></button>
                                         @endif
                                         @if(false && $this->member)
                                             <b>{{$this->member->first_name}} {{$this->member->last_name}}</b> {!! !$this->member->isAdult() ? '<span style="color:red;font-weight:bold">&nbsp;MINORENNE</span>' : '' !!}<br>
@@ -319,7 +317,7 @@
                                 @else
 
                                     <div class="row gx-2 mt-3">
-                                        <span class="title-form d-block w-100">Pagamento</span>
+                                        <span class="title-form d-block w-100">Metodo di pagamento</span>
 
                                         <div class="col-md-12" >
 
@@ -399,9 +397,9 @@
                                                 <div class="row">
 
                                                     @if($multiP)
-                                                        <div class="row" style="background-color:lightGrey">
+                                                        <div class="row">
                                                             <h4>Seleziona inizio e fine multiperiodo</h4>
-                                                            <div class="col-md-3">
+                                                            <div class="col-lg-6 col-xxl-3">
                                                                 <span class="title-form d-block w-100">Dal mese</span>
                                                                 <div class="input-group mb-3">
                                                                     <select class="form-select form-select-lg me-1"  wire:model="multiMonthFrom" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
@@ -420,13 +418,13 @@
                                                                     </select>
                                                                 </div>
                                                             </div>
-                                                            <div class="col-md-3">
+                                                            <div class="col-lg-6 col-xxl-3">
                                                                 <span class="title-form d-block w-100">Anno</span>
                                                                 <div class="input-group mb-3">
                                                                     <input type="number" class="form-control"  wire:model="multiYearFrom"  {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
                                                                 </div>
                                                             </div>
-                                                            <div class="col-md-3">
+                                                            <div class="col-lg-6 col-xxl-3">
                                                                 <span class="title-form d-block w-100">Dal mese</span>
                                                                 <div class="input-group mb-3">
                                                                     <select class="form-select form-select-lg me-1"  wire:model="multiMonthTo" {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
@@ -445,20 +443,20 @@
                                                                     </select>
                                                                 </div>
                                                             </div>
-                                                            <div class="col-md-3">
+                                                            <div class="col-lg-6 col-xxl-3">
                                                                 <span class="title-form d-block w-100">Anno</span>
                                                                 <div class="input-group mb-3">
                                                                     <input type="number" class="form-control"  wire:model="multiYearTo"  {{$this->dataId > 0 && !$isDuplicate ? 'disabled' : ''}}>
                                                                 </div>
                                                             </div>
                                                             @if($this->dataId == 0 && !$isDuplicate)
-                                                                <div class="col-md-6">
+                                                                <div class="col-lg-6">
                                                                     <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriodCreate({{$idx}})" style="margin-top:20px">
                                                                         Crea multi periodo
                                                                     </button>
                                                                 </div>
-                                                                <div class="col-md-6">
-                                                                    <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriodCancel()" style="margin-top:20px">
+                                                                <div class="col-lg-6">
+                                                                    <button type="button" class="btn--ui lightGrey" wire:click.prevent="multiPeriodCancel()" style="margin-top:20px">
                                                                         Annulla multi periodo
                                                                     </button>
                                                                 </div>
@@ -506,13 +504,15 @@
                                                             </div>
                                                         @endforeach
                                                         @if($this->dataId == 0)
-                                                        <button type="button" class="btn--ui primary" wire:click.prevent="addPeriod({{$idx}})">
-                                                            Aggiungi periodo
-                                                        </button>
-
-                                                        <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriod()" style="margin-top:20px">
-                                                            Imposta multi periodo
-                                                        </button>
+                                                        <div class="d-flex justify-content-between mt-3">
+                                                            <button type="button" class="btn--ui lightGrey order-2" wire:click.prevent="addPeriod({{$idx}})">
+                                                                Aggiungi periodo
+                                                            </button>
+
+                                                            <button type="button" class="btn--ui_tertiary primary order-1" wire:click.prevent="multiPeriod()">
+                                                                Imposta multi periodo
+                                                            </button>
+                                                        </div>
                                                         @endif
                                                     @endif
 
@@ -543,7 +543,7 @@
                                 @endif
 
 
-                                <div class="accountingEntry--btn d-flex align-items-center justify-content-between">
+                                <div class="accountingEntry--btn d-flex align-items-center justify-content-between mt-5">
                                     <button class="btn--ui lightGrey"  type="submit" wire:click.prevent="cancel()">annulla</button>
                                     @if($canSave)
                                         @if($add)
@@ -564,7 +564,7 @@
                                                 @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
                                                     <span style="color:red">Devi selezionare un genitore</span>
                                                 @else
-                                                    <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="store(true)"><i class="ico--ui sendingBtn"></i>inserisci {{!$commercial ? 'genera ricevuta' : ''}}</button>
+                                                    <button class="btn--ui primary sendInvoice d-flex ms-auto" wire:click.prevent="store(true)"><i class="ico--ui sendingBtn"></i><span>inserisci {{!$commercial ? 'genera ricevuta' : ''}}</span></button>
                                                 @endif
                                             @endif
 
@@ -573,8 +573,7 @@
                                             @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
                                                 <span style="color:red">Devi selezionare un genitore</span>
                                             @else
-                                                {{$commercial ? 'comm' : 'non comm'}}
-                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update({{!$commercial}})"><i class="ico--ui sendingBtn"></i>inserisci {{!$commercial ? 'genera ricevuta' : ''}}</button>
+                                                <button class="btn--ui primary sendInvoice d-flex ms-auto" wire:click.prevent="update({{!$commercial}})"><i class="ico--ui sendingBtn"></i><span>inserisci {{!$commercial ? 'genera ricevuta' : ''}}</span></button>
                                             @endif
                                         @endif
                                     @else
@@ -718,12 +717,12 @@
                                             @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
                                                 <span style="color:red">Devi selezionare un genitore</span>
                                             @else
-                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update(true)"><i class="ico--ui sendingBtn"></i>salva e rigenera ricevuta</button>
+                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update(true)"><i class="ico--ui sendingBtn"></i><span>salva e rigenera ricevuta</span></button>
                                             @endif
                                         @else
-                                            <div class="mt-5">
-                                                <a target="_blank" class="btn--ui" href="/receipt/{{$currentReceip->id}}"><i class="ico--ui sendingBtn"></i>stampa ricevuta</a>
-                                                <button class="btn--ui " wire:click.prevent="removeReceipt()"><i class="ico--ui "></i>annulla ricevuta</button>
+                                            <div class="mt-5 buttons--ricevuta d-flex align-items-center">
+                                                <a target="_blank" class="btn--ui me-2 mb-2 mb-xxl-0" href="/receipt/{{$currentReceip->id}}"><i class="fa-regular fa-file-lines"></i><span>stampa ricevuta</span></a>
+                                                <button class="btn--ui " wire:click.prevent="removeReceipt()"><i class="ico--ui annulla_ricevuta light"></i><span>annulla ricevuta</span></button>
                                             </div>
                                         @endif
                                     @else
@@ -731,7 +730,7 @@
                                             @if($this->member && !$commercial && !$this->member->isAdult() && $parent == '')
                                                 <span style="color:red">Devi selezionare un genitore</span>
                                             @else
-                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update(true)"><i class="ico--ui sendingBtn"></i>salva {{!$commercial ? ' e genera ricevuta' : ''}}</button>
+                                                <button class="btn--ui primary sendInvoice mt-5 d-flex ms-auto" wire:click.prevent="update(true)"><i class="ico--ui sendingBtn"></i><span>salva {{!$commercial ? ' e genera ricevuta' : ''}}</span></button>
                                             @endif
                                         @endif
                                     @endif
@@ -772,8 +771,8 @@
                             </div>
                         </div>
                         <div class="modal-footer">
-                            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annulla</button>
-                            <button type="button" class="btn btn-primary" wire:click.prevent="createMember()">Salva</button>
+                            <button type="button" class="btn--ui lightGrey" data-bs-dismiss="modal">Annulla</button>
+                            <button type="button" class="btn--ui btn-primary" wire:click.prevent="createMember()">Salva</button>
                         </div>
                         </div>
                     </div>
@@ -805,14 +804,14 @@
         .page-link.active, .active > .page-link {
             background-color:#006099 !important;
         }
-        .total.primary
+        /* .total.primary
         {
             font-size:38px !important;
-        }
-        .total.primary.comp
+        } */
+        /* .total.primary.comp
         {
             font-size:32px !important;
-        }
+        } */
     </style>
     <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
     <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
@@ -908,16 +907,19 @@
                 @this.set('filterMember', data);
                 @this.search();
             });*/
+
             $('.filterPaymentMethod').select2();
-            /*$('.filterPaymentMethod').on('change', function (e) {
-                var data = $('.filterPaymentMethod').select2("val");
-                @this.set('filterPaymentMethod', data);
-            });*/
+            $('.filterPaymentMethod').on('change', function (e) {
+                //var data = $('.filterPaymentMethod').select2("val");
+                //@this.set('filterPaymentMethod', data);
+            });
             $('.filterCausals').select2();
-            /*$('.filterCausals').on('change', function (e) {
-                var data = $('.filterCausals').select2("val");
-                @this.set('filterCausals', data);
-            });*/
+            $('.filterCausals').on('change', function (e) {
+                //var data = $('.filterCausals').select2("val");
+                //@this.set('filterCausals', data);
+            });
+
+
 
         });
 
@@ -925,6 +927,17 @@
             pcsh2();
         });
 
+        $('.filterPaymentMethod').select2();
+        $('.filterPaymentMethod').on('change', function (e) {
+            //var data = $('.filterPaymentMethod').select2("val");
+            //@this.set('filterPaymentMethod', data);
+        });
+        $('.filterCausals').select2();
+        $('.filterCausals').on('change', function (e) {
+            //var data = $('.filterCausals').select2("val");
+            //@this.set('filterCausals', data);
+        });
+
         window.livewire.on('saved', () => {
             $('#userModal').modal('hide');
         });
@@ -941,16 +954,8 @@
             @this.set('filterMember', data);
             @this.search();
         });*/
-        $('.filterPaymentMethod').select2();
-        /*$('.filterPaymentMethod').on('change', function (e) {
-            var data = $('.filterPaymentMethod').select2("val");
-            @this.set('filterPaymentMethod', data);
-        });*/
-        $('.filterCausals').select2();
-        /*$('.filterCausals').on('change', function (e) {
-            var data = $('.filterCausals').select2("val");
-            @this.set('filterCausals', data);
-        });*/
+        //$('.filterPaymentMethod').select2();
+
 
         function onlyNumberAmount(input) {
             let v = input.value.replace(/\D+/g, '');
@@ -1109,6 +1114,13 @@
 
             $('#tablesaw-350').DataTable({
                 //searching: false,
+                /*fixedHeader: {
+                    header: true,
+                    footer: true
+                },
+                scrollCollapse: true,
+                scrollX: true,
+                scrollY: 800,*/
                 serverSide: true,
                 ajax: '/get_record_in?filterCommercial=' + filterCommercial + "&filterMember=" + filterMember + "&filterPaymentMethod=" + filterPaymentMethod + "&filterCausals=" + filterCausals + "&filterFrom=" + filterFrom + "&filterTo=" + filterTo,
                 columns: [
@@ -1132,9 +1144,9 @@
                     { data: 'last_name' },
                     { data: 'first_name' },
                     { data: 'commercial' },
-                    { data: 'causals' },
-                    { data: 'payment' },
-                    { data: 'status' },
+                    { data: 'causals', "orderable": false, },
+                    { data: 'payment', "orderable": false, },
+                    { data: 'status', "orderable": false, },
                     {
                         data: "action",
                         render: function (data){
@@ -1147,9 +1159,9 @@
                             var ret = '';
                             if (j[2] != 'x')
                             {
-                                ret = '<button type="button" class="btn" onclick="editData(' + j[0] + ')"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;';
-                                ret += '<button type="button" class="btn" onclick="deleteData(' + j[0] + ')"><i class="fa-regular fa-square-minus"></i></button>';
-                                ret += '<button type="button" class="btn btn-outline-default btn-sm" onclick="duplicateData(' + j[0] + ')"><i class="fa-regular fa-copy"></i></button>';
+                                ret = '<button type="button" class="btn" onclick="editData(' + j[0] + ')" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="modifica"><i class="fa-regular fa-pen-to-square"></i></button>&nbsp;';
+                                ret += '<button type="button" class="btn" onclick="deleteData(' + j[0] + ')"  data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="elimina"><i class="ico--ui annulla_ricevuta"></i></button>';
+                                ret += '<button type="button" class="btn btn-outline-default btn-sm" onclick="duplicateData(' + j[0] + ')" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-placement="bottom" data-bs-content="duplica"><i class="ico--ui copy"></i></button>';
                             }
                             return ret;
                         }
@@ -1179,14 +1191,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Entrate',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Entrate',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -1194,7 +1206,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Entrate',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -1216,8 +1228,8 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
-                    html += '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
+                    html += '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 40 - 12
resources/views/livewire/records_in_out.blade.php

@@ -46,10 +46,12 @@
                     <button class="btn--ui show" style="margin-left:5px;">aggiungi</button>
                 @endif
 
-                <button class="btn--ui reset" wire:click="clear()" style="margin-left:5px;">reset</button>
+                    <button class="btn--ui lightGrey reset reset" wire:click="clear()" style="margin-left:5px;">reset</button>
                 @if($showData)
-                    <button class="btn--ui reset" wire:click="export()" style="margin-left:5px;"><i class="fa-solid fa-download"></i></button>
-                    <button class="btn--ui reset exportYear"  style="margin-left:5px;">esporta anno fiscale selezionato</button>
+                <div class="export--button ms-auto">
+                    <button class="btn--ui lightGrey reset" wire:click="export()"><i class="fa-solid fa-download me-2"></i>esporta selezione</button>
+                    <button class="btn--ui lightGrey reset exportYear"  style="margin-left:5px;">esporta anno fiscale</button>
+                </div>
                 @endif
 
 
@@ -71,7 +73,7 @@
                                 <div class="col-md-2">
                                 Filtra per causale
                                 </div>
-                                <div class="col-md-4 m-1">
+                                <div class="col-md-12 m-1">
                                     <select name="search_causal_id[]" class="form-select filterCausalsIn" multiple="multiple" wire:model="filterCausalsIn">
                                         @foreach($causalsIn as $causal)
                                             <option value="{{$causal["id"]}}">{!!$causal["name"]!!}
@@ -101,7 +103,7 @@
                                                 @foreach($columns as $column)
                                                     <td class="cellBorder" style="text-align:center">
                                                         @if(isset($records_in[$column][$in["id"]]))
-                                                            <span class="tablesaw-cell-content {{$in["level"] == 0 ? 'primary' : ''}}" {{$in["level"] == 0 ? 'style=""' : 'font-weight:bold;'}}>
+                                                            <span class="tablesaw-cell-content {{$in["level"] == 0 ? 'primary' : ''}}" {{$in["level"] == 0 ? 'style="font-weight:bold;' : ''}}>
                                                                 {{formatPrice($records_in[$column][$in["id"]])}}
                                                             </span>
                                                         @else
@@ -121,12 +123,25 @@
                                             <td class="cellBorder" style="text-align:center">
                                                 @php
                                                 $total = 0;
+                                                $existIn = [];
                                                 @endphp
                                                 @foreach($rows_in as $in)
                                                     @if($filterCausalsIn == null || (sizeof($filterCausalsIn) == 0 || in_array($in["id"], $filterCausalsIn)))
-                                                        @if(isset($records_in[$column][$in["id"]]) && $in["level"] == 0)
+                                                        @if(isset($records_in[$column][$in["id"]]))
                                                             @php
-                                                            $total += $records_in[$column][$in["id"]];
+                                                            if($in["level"] == 0)
+                                                            {
+                                                                $total += $records_in[$column][$in["id"]];
+                                                                $existIn[] = $in["id"];
+                                                            }
+                                                            else
+                                                            {
+                                                                if (!in_array($in["parent_id"], $existIn))
+                                                                {
+                                                                    $total += $records_in[$column][$in["id"]];
+                                                                }
+                                                                $existIn[] = $in["id"];
+                                                            }
                                                             @endphp
                                                         @endif
                                                     @endif
@@ -155,7 +170,7 @@
                                 <div class="col-md-2">
                                     <label class="form-label">Filtra per causale</label>
                                 </div>
-                                <div class="col-md-4 m-1">
+                                <div class="col-md-12 m-1">
                                     <select name="search_causal_id_x[]" class="form-select filterCausalsOut" multiple="multiple" wire:model="filterCausalsOut">
                                         @foreach($causalsOut as $causal)
                                             <option value="{{$causal["id"]}}">{!!$causal["name"]!!}
@@ -179,13 +194,13 @@
                                 <tbody id="checkall-target">
 
                                     @foreach($rows_out as $out)
-                                        @if($filterCausalsOut == null || (sizeof($filterCausalsOut) == 0 || in_array($out["id"], $filterCausalsOut)))
+                                        @if($filterCausalsOut == null || (sizeof($filterCausalsOut) == 0 || in_array($out["id"], $filterCausalsOut) || in_array($out["parent_id"], $filterCausalsOut) || in_array($out["first_parent_id"], $filterCausalsOut)))
                                             <tr data-id="{{$out["id"] + 1000}}" data-parent="{{$out["parent_id"] != null ? ($out["parent_id"] + 1000) : 0}}">
                                                 <td>{!!str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $out["level"])!!}{{$out["name"]}}</td>
                                                 @foreach($columns as $column)
                                                     <td class="cellBorder" style="text-align:center">
                                                         @if(isset($records_out[$column][$out["id"]]))
-                                                            <span class="tablesaw-cell-content {{$out["level"] == 0 ? 'primary' : ''}}"  {{$out["level"] == 0 ? 'style=""' : 'font-weight:bold;'}}>
+                                                            <span class="tablesaw-cell-content {{$out["level"] == 0 ? 'primary' : ''}}"  {{$out["level"] == 0 ? 'style="font-weight:bold;' : ''}}>
                                                             {{formatPrice($records_out[$column][$out["id"]])}}
                                                             </span>
                                                         @else
@@ -206,12 +221,25 @@
                                             <td class="cellBorder" style="text-align:center">
                                                 @php
                                                 $total = 0;
+                                                $existOut = [];
                                                 @endphp
                                                 @foreach($rows_out as $out)
                                                     @if($filterCausalsOut == null || (sizeof($filterCausalsOut) == 0 || in_array($out["id"], $filterCausalsOut)))
-                                                        @if(isset($records_out[$column][$out["id"]]) && $out["level"] == 0)
+                                                        @if(isset($records_out[$column][$out["id"]]))
                                                             @php
-                                                            $total += $records_out[$column][$out["id"]];
+                                                            if($out["level"] == 0)
+                                                            {
+                                                                $total += $records_out[$column][$out["id"]];
+                                                                $existOut[] = $out["id"];
+                                                            }
+                                                            else
+                                                            {
+                                                                if (!in_array($out["parent_id"], $existOut))
+                                                                {
+                                                                    $total += $records_out[$column][$out["id"]];
+                                                                }
+                                                                $existOut[] = $out["id"];
+                                                            }
                                                             @endphp
                                                         @endif
                                                     @endif

+ 25 - 25
resources/views/livewire/records_out.blade.php

@@ -13,7 +13,7 @@
 
                 @if(!$add && !$update)
                     <div class="title--section_addButton" wire:click="add()" style="cursor: pointer;">
-                        <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                        <div class="btn--ui entrata d-flex justify-items-between">
                             <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                         </div>
                     </div>
@@ -56,7 +56,7 @@
                                     <b>Periodo</b>
                                 </div>
                                 <div class="col-12">
-                                    <input id="dateFrom" type="date" class="form-control filterFrom"  >
+                                    <input id="dateFrom mb-2" type="date" class="form-control filterFrom"  >
                                 </div>
                                 <div class="col-12">
                                     <input id="dateFrom" type="date" class="form-control filterTo" >
@@ -81,11 +81,10 @@
                         <div class="col-md-2">
                             <div class="row">
                                 <div class="col-md-12" style="margin-bottom:10px;">
-                                    <b>Pagamento</b>
+                                    <b>Metodi di pagamento</b>
                                 </div>
                                 <div class="col-12">
-                                   <select name="search_payment_method_id" class="form-select filterPaymentMethod">
-                                        <option value="">--Seleziona--
+                                   <select name="search_payment_method_id" class="form-select filterPaymentMethod" multiple="multiple">
                                         @foreach($payments as $payment)
                                             <option value="{{$payment->id}}">{{$payment->name}}
                                         @endforeach
@@ -99,8 +98,7 @@
                                     <b>Causali</b>
                                 </div>
                                 <div class="col-12">
-                                    <select name="search_causal_id" class="form-select filterCausals">
-                                        <option value="">--Seleziona--
+                                    <select name="search_causal_id" class="form-select filterCausals" multiple="multiple">
                                         @foreach($causals as $causal)
                                             <option value="{{$causal["id"]}}">{!!$causal["name"]!!}
                                         @endforeach
@@ -111,8 +109,8 @@
                     </div>
                     <div class="row g-3">
                         <div class="col-md-12" style="text-align:right">
-                            <button class="card--ui card--ui_btnCancel" onclick="reset()">CANCELLA</button>
-                            <button class="card--ui card--ui_btnAddHeaderUser" onclick="loadDataTable()">FILTRA</button>
+                            <button class="btn--ui lightGrey" onclick="reset()">Reset</button>
+                            <button class="btn--ui" onclick="loadDataTable()">FILTRA</button>
                         </div>
                     </div>
                     <hr size="1">
@@ -226,7 +224,7 @@
                                 </div>
 
                                 <div class="row gx-2 mt-5">
-                                    <span class="title-form d-block w-100">Pagamento</span>
+                                    <span class="title-form d-block w-100">Metodo di pagamento</span>
 
                                     <div class="col-md-12">
                                         <select name="payment_method_id" class="form-select paymentClass @error('payment_method_id') is-invalid @enderror" aria-label="Seleziona un metodo di pagamento" wire:model="payment_method_id">
@@ -300,7 +298,7 @@
                                         <div class="col-md-8">
 
                                             @if($multiP)
-                                                <div class="row" style="background-color:lightGrey">
+                                                <div class="row">
                                                     <div class="col-md-3">
                                                         <span class="title-form d-block w-100">Dal mese</span>
                                                         <div class="input-group mb-3">
@@ -357,7 +355,7 @@
                                                         </button>
                                                     </div>
                                                     <div class="col-md-6">
-                                                        <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriodCancel()" style="margin-top:20px">
+                                                        <button type="button" class="btn--ui lightGrey" wire:click.prevent="multiPeriodCancel()" style="margin-top:20px">
                                                             Annulla multi periodo
                                                         </button>
                                                     </div>
@@ -403,12 +401,14 @@
                                                             </button>
                                                         </div>
                                                     @endforeach
-                                                    <button type="button" class="btn--ui primary" wire:click.prevent="addPeriod({{$idx}})">
-                                                        Aggiungi periodo
-                                                    </button>
-                                                    <button type="button" class="btn--ui primary" wire:click.prevent="multiPeriod()" style="margin-top:20px">
-                                                        Imposta multi periodo
-                                                    </button>
+                                                    <div class="d-flex justify-content-between mt-3">
+                                                        <button type="button" class="btn--ui primary order-2" wire:click.prevent="addPeriod({{$idx}})">
+                                                            Aggiungi periodo
+                                                        </button>
+                                                        <button type="button" class="btn--ui_tertiary primary order-1" wire:click.prevent="multiPeriod()">
+                                                            Imposta multi periodo
+                                                        </button>
+                                                    </div>
                                                 </div>
                                             @endif
                                         </div>
@@ -434,10 +434,10 @@
                                 <div class="accountingExit--btn d-flex align-items-center justify-content-between">
                                 <button class="btn--ui lightGrey"  type="submit" wire:click.prevent="cancel()">annulla</button>
                                     @if($add)
-                                        <button class="btn--ui secondary"  type="submit" wire:click.prevent="store()">inserisci</button>
+                                        <button class="btn--ui primary"  type="submit" wire:click.prevent="store()">inserisci</button>
                                     @endif
                                     @if($update)
-                                        <button class="btn--ui secondary"  type="submit" wire:click.prevent="update()">salva</button>
+                                        <button class="btn--ui primary"  type="submit" wire:click.prevent="update()">salva</button>
                                     @endif
 
                                 </div>
@@ -800,14 +800,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Uscite',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Uscite',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -815,7 +815,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Uscite',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -837,8 +837,8 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
-                    html += '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
+                    html += '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 100 - 18
resources/views/livewire/reminders.blade.php

@@ -21,7 +21,7 @@
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Periodo scadenza</b>
                     </div>
-                    <div class="col-12">
+                    <div class="col-12 mb-2">
                         <input id="dateFrom" type="date" class="form-control filterFrom"  >
                     </div>
                     <div class="col-12">
@@ -34,25 +34,22 @@
                     <div class="col-md-12" style="margin-bottom:10px;">
                         <b>Tipologia</b>
                     </div>
+
                     <div class="col-12">
-                        <div class="form-check form-check-inline d-inline-flex align-items-center">
-                            <input class="form-check-input" type="checkbox" wire:model="filterC" onclick="destroyDataTable()">
-                            <label class="form-check-label ms-2" >Certificato</label>
-                        </div>
-                    </div>
-                    <div class="col-12">
-                        <div class="form-check form-check-inline d-inline-flex align-items-center">
-                            <input class="form-check-input" type="checkbox"  wire:model='filterT' onclick="destroyDataTable()">
-                            <label class="form-check-label ms-2" >Tessera</label>
-                        </div>
+                        <select class="form-select filterType" wire:model="filterType" onchange="destroyDataTable()" multiple="multiple">
+                            <option value="C">Certificato
+                            @foreach(getCards() as $card)
+                                <option value="{{$card->id}}">{{$card->name}}
+                            @endforeach
+                        </select>
                     </div>
                 </div>
             </div>
         </div>
         <div class="row g-3">
             <div class="col-md-12" style="text-align:right">
-                <button class="card--ui card--ui_btnCancel" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">CANCELLA</button>
-                <button class="card--ui card--ui_btnAddHeaderUser" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
+                <button class="btn--ui lightGrey" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">Reset</button>
+                <button class="btn--ui" wire:click.prevent="search()" onclick="destroyDataTable()">FILTRA</button>
             </div>
         </div>
         <hr size="1">
@@ -113,9 +110,86 @@
 </div>
 </div>
 
+@push('scripts')
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
+@endpush
+
 @push('scripts')
     <link href="/css/datatables.css" rel="stylesheet" />
     <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+
+
+    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
+    <style>
+        .select2-container--default .select2-selection--single{
+            background-color: #E9F0F5;
+            border: 0.0625rem solid #DFE5EB;
+            font-size: 0.75rem;
+        }
+        .select2-selection
+        {
+            height: 38px !important;
+        }
+        .select2-selection__rendered
+        {
+            padding-top:3px;
+        }
+        .select2 {
+            width:100% !important;
+        }
+        .select2-selection--multiple{
+            overflow: hidden !important;
+            height: auto !important;
+        }
+        .select2-container {
+            box-sizing: border-box;
+            display: inline-block;
+            margin: 0;
+            position: relative;
+            vertical-align: middle;
+        }
+        .select2-container .select2-selection--single {
+            box-sizing: border-box;
+            cursor: pointer;
+            display: block;
+            height: 38px;
+            user-select: none;
+            -webkit-user-select: none;
+        }
+        .select2-container .select2-selection--single .select2-selection__rendered {
+            display: block;
+            padding-left: 8px;
+            padding-right: 20px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+        }
+        .select2-selection__choice__display{
+            color:#000000 !important;
+        }
+    </style>
+    <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
+    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
     <script src="/assets/js/datatables.js"></script>
     <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
@@ -130,9 +204,17 @@
             loadDataTable();
         } );
 
+        $('.filterType').select2();
+        $('.filterType').on('change', function (e) {
+            var data = $('.filterType').select2("val");
+            if (data == null) data = [];
+            @this.set('filterType', data);
+            //@this.search();
+        });
+
         Livewire.on('load-data-table', () => {
+            $('.filterType').select2();
             setTimeout(function() {loadDataTable()}, 100);
-
         });
 
         Livewire.on('destroy-data-table', () => {
@@ -176,14 +258,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Scadenze',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Scadenze',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -191,7 +273,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Scadenze',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -213,7 +295,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="showHideFilter card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-sliders"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="showHideFilter btn--ui"><i class="fa-solid fa-sliders"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 9 - 3
resources/views/livewire/settings.blade.php

@@ -9,12 +9,18 @@
     </header>
 
 
-    <div class="container">
+    <section id="setting">
 
-        <div class="row mb-3">
+        <!-- <div class="row mb-3">
             <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'anagrafica' ? 'text-decoration:underline;' : ''}}" wire:click="change('anagrafica')">Anagrafica</h4></div>
             <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'corsi' ? 'text-decoration:underline;' : ''}}" wire:click="change('corsi')">Corsi</h4></div>
             <div class="col-md-3 p-3"><h4 style="cursor:pointer;{{$type == 'contabilita' ? 'text-decoration:underline;' : ''}}" wire:click="change('contabilita')">Contabilità</h4></div>
+        </div> -->
+
+        <div class="section--tab d-flex">
+            <h4 style="cursor:pointer;{{$type == 'anagrafica' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('anagrafica')">Anagrafica</h4>
+            <h4 style="cursor:pointer;{{$type == 'corsi' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('corsi')">Corsi</h4>
+            <h4 style="cursor:pointer;{{$type == 'contabilita' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('contabilita')">Contabilità</h4>
         </div>
 
         @if($type == 'anagrafica')
@@ -123,6 +129,6 @@
             </div>
         @endif
 
-    </div>
+    </section>
 
 </div>

+ 4 - 4
resources/views/livewire/sponsor.blade.php

@@ -9,7 +9,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -164,20 +164,20 @@
                                         </div>
 
                                         <div class="row mb-3">
-                                            <div class="col">
+                                            <div class="col-md-6 mb-3">
                                                 <label for="nation_id" class="form-label">Nazione</label>
                                                 <select name="nation_id" class="form-select nationClass" aria-label="Seleziona una nazione" wire:model="nation_id">
                                                     <option value="{{$nation_id}}">{{$this->getNation($nation_id)}}
                                                 </select>
                                             </div>
                                             @if($isItaly)
-                                                <div class="col">
+                                                <div class="col-md-6 mb-3">
                                                     <label for="province_id" class="form-label">Provincia</label>
                                                     <select name="province_id" class="form-select provinceClass" aria-label="Seleziona una provincia" wire:model="province_id">
                                                         <option value="{{$province_id}}">{{$this->getProvince($province_id)}}
                                                     </select>
                                                 </div>
-                                                <div class="col">
+                                                <div class="col-md-6 mb-3">
                                                     <label for="city_id" class="form-label">Comune</label>
                                                     <select name="city_id" class="form-select cityClass" aria-label="Seleziona un comune" wire:model="city_id">
                                                         <option value="{{$city_id}}">{{$this->getCity($city_id)}}

Разлика између датотеке није приказан због своје велике величине
+ 14006 - 0
resources/views/livewire/style.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/views/livewire/style.css.map


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

@@ -9,7 +9,7 @@
 
         @if(!$add && !$update)
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
                 </div>
             </div>
@@ -116,20 +116,20 @@
                         </div>
 
                         <div class="row mb-3">
-                            <div class="col">
+                            <div class="col-md-6 mb-3">
                                 <label for="nation_id" class="form-label">Nazione</label>
                                 <select name="nation_id" class="form-select nationClass" aria-label="Seleziona una nazione" wire:model="nation_id">
                                     <option value="{{$nation_id}}">{{$this->getNation($nation_id)}}
                                 </select>
                             </div>
                             @if($isItaly)
-                                <div class="col">
+                                <div class="col-md-6 mb-3">
                                     <label for="province_id" class="form-label">Provincia</label>
                                     <select name="province_id" class="form-select provinceClass" aria-label="Seleziona una provincia" wire:model="province_id">
                                         <option value="{{$province_id}}">{{$this->getProvince($province_id)}}
                                     </select>
                                 </div>
-                                <div class="col">
+                                <div class="col-md-6 mb-3">
                                     <label for="city_id" class="form-label">Comune</label>
                                     <select name="city_id" class="form-select cityClass" aria-label="Seleziona un comune" wire:model="city_id">
                                         <option value="{{$city_id}}">{{$this->getCity($city_id)}}
@@ -394,14 +394,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Fornitori',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Fornitori',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -409,7 +409,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Fornitori',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -431,7 +431,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

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

@@ -8,7 +8,7 @@
             </div>
 
             <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-                <div class="card--ui card--ui_btnAddHeaderUser entrata d-flex justify-items-between">
+                <div class="btn--ui entrata d-flex justify-items-between">
                     <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
 
                 </div>
@@ -145,14 +145,14 @@
                                 buttons: [
                                     {
                                     extend: 'excelHtml5',
-                                        title: 'Utenti',
+                                        title: 'Iva',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
                                     },
                                     {
                                         extend: 'pdfHtml5',
-                                        title: 'Utenti',
+                                        title: 'Iva',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -160,7 +160,7 @@
                                     {
                                         extend: 'print',
                                         text: 'Stampa',
-                                        title: 'Utenti',
+                                        title: 'Iva',
                                         exportOptions: {
                                             columns: ":not(':last')"
                                         }
@@ -182,7 +182,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData card--ui card--ui_btnAddHeaderUser">&nbsp;&nbsp;<i class="fa-solid fa-plus"></i>&nbsp;&nbsp;</a>';
+                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });

+ 130 - 41
routes/web.php

@@ -52,7 +52,8 @@ Route::get('/records_in_out', \App\Http\Livewire\RecordINOUT::class);
 Route::get('/receipt/{id}', function($id){
     $receipt = \App\Models\Receipt::findOrFail($id);
     $pdf = PDF::loadView('receipt', array('receipt' => $receipt));
-    return $pdf->stream();
+    $pdfName = "Ricevuta_" . $receipt->member->last_name . "_" . $receipt->number . "_" . $receipt->year . ".pdf";
+    return $pdf->stream($pdfName);
     /*return response()->streamDownload(
         fn () => print($pdf),
         "ricevuta_" . $receipt->number . "_" . $receipt->year . ".pdf"
@@ -163,9 +164,24 @@ Route::get('/get_members', function(){
     {
         $x = $x->where('birth_date', '>', date("Y-m-d", strtotime("-" . $_GET["toYear"] . " year", time())));
     }
+    if ($_GET["fromYearYear"] != "")
+    {
+        $x = $x->whereYear('birth_date', '>=', $_GET["fromYearYear"]);
+    }
+    if ($_GET["toYearYear"] != "")
+    {
+        $x = $x->whereYear('birth_date', '<=', $_GET["toYearYear"]);
+    }
 
     $ids = [];
 
+    if ($_GET["chkCertificateType"] != "")
+    {
+        $types = \App\Models\MemberCertificate::where('type', $_GET["chkCertificateType"])->pluck('member_id');
+        $x = $x->whereIn('id', $types->toArray());;
+        //$ids = array_merge($ids, $types->toArray());
+    }
+    /*
     if ($_GET["chkCertificateNormal"] != "")
     {
         $normal = \App\Models\MemberCertificate::where('type', 'N')->pluck('member_id');
@@ -183,11 +199,15 @@ Route::get('/get_members', function(){
         $scaduto = \App\Models\MemberCertificate::where('expire_date', '<', date("Y-m-d"))->pluck('member_id');
         $ids = array_merge($ids, $scaduto->toArray());
         //$x = $x->whereIn('id', $scaduto);
-    }
+    }*/
     if ($_GET["chkCertificateScadenza"] != "")
     {
-        $scadenza = \App\Models\MemberCertificate::whereBetween('expire_date', [date("Y-m-d"), date("Y-m-d", strtotime("+1 month"))])->pluck('member_id');
-        $ids = array_merge($ids, $scadenza->toArray());
+        if ($_GET["chkCertificateScadenza"] == "1")
+            $scad = \App\Models\MemberCertificate::where('expire_date', '<', date("Y-m-d"))->pluck('member_id');
+        if ($_GET["chkCertificateScadenza"] == "2")
+            $scad = \App\Models\MemberCertificate::whereBetween('expire_date', [date("Y-m-d"), date("Y-m-d", strtotime("+1 month"))])->pluck('member_id');
+        //$ids = array_merge($ids, $scad->toArray());
+        $x = $x->whereIn('id', $scad->toArray());;
         //$x = $x->whereIn('id', $scadenza);
     }
 
@@ -231,7 +251,28 @@ Route::get('/get_members', function(){
 
     $count = $x->count();
 
-    $x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
+    if (isset($_GET["order"]))
+    {
+        $column = '';
+        if ($_GET["order"][0]["column"] == 0)
+            $column = 'last_name';
+        if ($_GET["order"][0]["column"] == 1)
+            $column = 'first_name';
+        if ($_GET["order"][0]["column"] == 2)
+            $column = 'phone';
+        if ($_GET["order"][0]["column"] == 3)
+            $column = 'birth_date';
+        if ($_GET["order"][0]["column"] == 4)
+            $column = 'birth_date';
+        if ($column != '')
+            $x = $x->orderBy($column, $_GET["order"][0]["dir"]);
+        else
+            $x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
+    }
+    else
+        $x = $x->orderBy('last_name', 'ASC')->orderBy('first_name', 'ASC');
+
+
 
     if (isset($_GET["start"]))
         $x = $x->offset($_GET["start"])->limit($_GET["length"])->get();
@@ -246,7 +287,7 @@ Route::get('/get_members', function(){
 
         // $state = $r->isActive();
 
-        $class = $status > 0 ? ($status == 2 ? 'active' : 'suspended') : 'due';
+        $class = $status > 0 ? ($status == 2 ? 'active' : 'due') : 'suspended';
         $text = $status > 0 ? ($status == 2 ? 'Tesserato' : 'Sospeso') : 'Non tesserato';
 
 
@@ -318,43 +359,50 @@ Route::get('/get_record_in', function(){
             ->leftJoin('payment_methods', 'records.payment_method_id', '=', 'payment_methods.id')
             ->where('records.type', 'IN');
 
-    // $datas = \App\Models\Record::where('type', 'IN')->with('member', 'payment_method');
-    if ($_GET["filterCommercial"] > 0)
-    {
-        $x = $x->where('commercial', $_GET["filterCommercial"] == 1 ? true : false);
-    }
-    if ($_GET["filterMember"] > 0)
-    {
-        $x = $x->where('member_id', $_GET["filterMember"]);
-    }
-    if ($_GET["filterPaymentMethod"] > 0)
-    {
-        $x = $x->where('payment_method_id', $_GET["filterPaymentMethod"]);
-    }
-    if ($_GET["filterCausals"] > 0)
-    {
-        $causals = \App\Models\RecordRow::where('causal_id', $_GET["filterCausals"])->pluck('record_id');
-        $x = $x->whereIn('records.id', $causals);
-    }
-    if ($_GET["filterFrom"] != '')
-    {
-        $x = $x->where('date', '>=', $_GET["filterFrom"]);
-    }
-    if ($_GET["filterTo"] != '')
-    {
-        $x = $x->where('date', '<=', $_GET["filterTo"]);
-    }
-
     if (isset($_GET["search"]["value"]))
     {
         $v = str_replace("'", "''", stripcslashes($_GET["search"]["value"]));
         $x = $x->where(function ($query) use ($v) {
             $query->where('first_name', 'like', '%' . $v . '%')
-                  ->orWhere('last_name', 'like', '%' . $v . '%');
+                    ->orWhere('last_name', 'like', '%' . $v . '%');
         });
         //where('first_name', 'like', '%' . $_GET["search"]["value"] . '%');
     }
 
+    //$x = $x->where(function ($query) use ($v) {
+
+        // $datas = \App\Models\Record::where('type', 'IN')->with('member', 'payment_method');
+        if ($_GET["filterCommercial"] > 0)
+        {
+            $x = $x->where('commercial', $_GET["filterCommercial"] == 1 ? true : false);
+        }
+        if ($_GET["filterMember"] > 0)
+        {
+            $x = $x->where('member_id', $_GET["filterMember"]);
+        }
+        if ($_GET["filterPaymentMethod"] != "null")
+        {
+            $payments = explode(",", $_GET["filterPaymentMethod"]);
+            $x = $x->whereIn('payment_method_id', $payments);
+        }
+        if ($_GET["filterCausals"] != "null")
+        {
+            $causals = explode(",", $_GET["filterCausals"]);
+            //$causals = \App\Models\RecordRow::where('causal_id', $_GET["filterCausals"])->pluck('record_id');
+            $causals = \App\Models\RecordRow::whereIn('causal_id', $causals)->pluck('record_id');
+            $x = $x->whereIn('records.id', $causals);
+        }
+        if ($_GET["filterFrom"] != '')
+        {
+            $x = $x->where('date', '>=', $_GET["filterFrom"]);
+        }
+        if ($_GET["filterTo"] != '')
+        {
+            $x = $x->where('date', '<=', $_GET["filterTo"]);
+        }
+
+    //});
+
     $start = 0;
     $limit = 100000;
 
@@ -378,23 +426,52 @@ Route::get('/get_record_in', function(){
 
     $exclude_from_records = \App\Models\Member::where('exclude_from_records', true)->pluck('id')->toArray();
 
+    // Pagamento money
+    $moneys = \App\Models\PaymentMethod::where('money', true)->pluck('id')->toArray();
+
+    // Causale money
+    $moneysCausal = \App\Models\Causal::where('money', true)->pluck('id')->toArray();
+
     $total = 0;
     foreach($x->get() as $r)
     {
-        foreach($r->rows as $rr)
+
+        if (!in_array($r->payment_method_id, $moneys))
         {
-            if (!in_array($rr->member_id, $exclude_from_records) && (!$r->deleted || $r->deleted == null) && !in_array($rr->causal_id, $excludeCausals) && (!$r->financial_movement || $r->financial_movement == null) && (!$r->corrispettivo_fiscale || $r->corrispettivo_fiscale == null))
+            foreach($r->rows as $rr)
             {
-                $total += $rr->amount;
-                if ($rr->vat_id > 0)
-                    $total += getVatValue($rr->amount, $rr->vat_id);
+                if ((!in_array($rr->member_id, $exclude_from_records) || in_array($r->causal_id, $moneysCausal)) && (!$r->deleted || $r->deleted == null) && (!in_array($rr->causal_id, $excludeCausals) || in_array($r->causal_id, $moneysCausal)) && (!$r->financial_movement || $r->financial_movement == null) && (!$r->corrispettivo_fiscale || $r->corrispettivo_fiscale == null))
+                {
+                    $total += $rr->amount;
+                    if ($rr->vat_id > 0)
+                        $total += getVatValue($rr->amount, $rr->vat_id);
+                }
             }
         }
     }
 
     $count = $x->count();
 
-    $x = $x->orderBy('date', 'DESC')->orderBy('id', 'DESC');
+    if (isset($_GET["order"]))
+    {
+        $column = '';
+        if ($_GET["order"][0]["column"] == 0)
+            $column = 'date';
+        if ($_GET["order"][0]["column"] == 1)
+            $column = 'records.amount';
+        if ($_GET["order"][0]["column"] == 2)
+            $column = 'last_name';
+        if ($_GET["order"][0]["column"] == 3)
+            $column = 'first_name';
+        if ($_GET["order"][0]["column"] == 4)
+            $column = 'commercial';
+        if ($column != '')
+            $x = $x->orderBy($column, $_GET["order"][0]["dir"])->orderBy('records.id', 'DESC');
+        else
+            $x = $x->orderBy('records.id', 'DESC');
+    }
+    else
+        $x = $x->orderBy('records.date', 'DESC')->orderBy('records.id', 'DESC');
 
     $x = $x->offset($start)->limit($limit)->get();
 
@@ -450,7 +527,7 @@ Route::get('/get_record_out', function(){
     {
         $x = $x->where('supplier_id', $_GET["filterSupplier"]);
     }
-    if ($_GET["filterPaymentMethod"] > 0)
+    /*if ($_GET["filterPaymentMethod"] > 0)
     {
         $x = $x->where('payment_method_id', $_GET["filterPaymentMethod"]);
     }
@@ -458,6 +535,18 @@ Route::get('/get_record_out', function(){
     {
         $causals = \App\Models\RecordRow::where('causal_id', $_GET["filterCausals"])->pluck('record_id');
         $x = $x->whereIn('records.id', $causals);
+    }*/
+    if ($_GET["filterPaymentMethod"] != "null")
+    {
+        $payments = explode(",", $_GET["filterPaymentMethod"]);
+        $x = $x->whereIn('payment_method_id', $payments);
+    }
+    if ($_GET["filterCausals"] != "null")
+    {
+        $causals = explode(",", $_GET["filterCausals"]);
+        //$causals = \App\Models\RecordRow::where('causal_id', $_GET["filterCausals"])->pluck('record_id');
+        $causals = \App\Models\RecordRow::whereIn('causal_id', $causals)->pluck('record_id');
+        $x = $x->whereIn('records.id', $causals);
     }
     if ($_GET["filterFrom"] != '')
     {

Неке датотеке нису приказане због велике количине промена