Luca Parisio 1 éve
szülő
commit
671fe224c9

+ 20 - 1
app/Http/Livewire/Member.php

@@ -57,7 +57,7 @@ class Member extends Component
 
     public $isSaving = false;
 
-    public $father_name, $mother_name, $father_email, $mother_email, $father_phone, $mother_phone, $father_fiscal_code, $mother_fiscal_code, $father_doc_number, $father_doc_type, $mother_doc_number, $mother_doc_type;
+    public $importoBorsellino, $father_name, $mother_name, $father_email, $mother_email, $father_phone, $mother_phone, $father_fiscal_code, $mother_fiscal_code, $father_doc_number, $father_doc_type, $mother_doc_number, $mother_doc_type;
 
     public $document_type, $document_number, $document_from, $document_expire_date, $document_files, $document_files_old;
 
@@ -157,6 +157,7 @@ class Member extends Component
 
         $this->birth_date = null;
         $this->birth_place = '';
+        $this->importoBorsellino = 0;
         $this->father_name = '';
         $this->mother_name = '';
         $this->father_email = '';
@@ -1946,6 +1947,24 @@ class Member extends Component
 
     }
 
+    public function updateBorsellino($member_id, $s)
+    {
+        if ($this->importoBorsellino > 0)
+        {
+            $imp = $this->importoBorsellino;
+            if ($s == "-")
+                $imp = $imp * -1;
+            $money = new \App\Models\Money();
+            $money->member_id = $member_id;
+            $money->record_id = null;
+            $money->amount = $imp;
+            $money->date = date("Y-m-d");
+            $money->note = 'Forzato ' . $imp;
+            $money->save();
+        }
+        $this->emit('saved');
+    }
+
     public function getMonth($m)
     {
         $ret = '';

+ 6 - 0
app/Http/Livewire/Setting.php

@@ -9,6 +9,12 @@ class Setting extends Component
 
     public $type = 'anagrafica';
 
+    public function mount()
+    {
+        if (isset($_GET["type"]))
+            $this->type = $_GET["type"];
+    }
+
     public function render()
     {
         return view('livewire.settings');

+ 16 - 14
resources/views/layouts/app.blade.php

@@ -277,7 +277,7 @@
                                     </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-md-inline">Entrate/Gestionale</span>
+                                            <span class="ms-3 d-md-inline">Gestionale</span>
                                         </a>
                                     </li>
                                     <li class="nav-item" style="{{Request::is('records') ? 'background-color: #c5d9e6;' : ''}}">
@@ -298,27 +298,29 @@
                         <div id="collapseThree" class="accordion-collapse collapse {{Request::is('course_list') || Request::is('course_member') ? 'show' : ''}}" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
                             <div class="accordion-body">
                                 <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-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-md-inline">Iscritti corsi</span>
+                                            <span class="ms-3 d-md-inline">Iscritti</span>
+                                        </a>
+                                    </li>
+                                    <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-md-inline">Pagamenti</span>
                                         </a>
                                     </li>
                                 </ul>
                             </div>
                         </div>
                     </div>
-                    <div class="accordion-item" style="{{Request::is('reminders') ? 'background-color: #c5d9e6;' : ''}}">
-                        <h2 class="accordion-header linkMenu">
-                            <a class="accordion-button collapsed" href="/reminders">
-                                Scadenze
-                            </a>
-                        </h2>
-                    </div>
+                    @if(false)
+                        <div class="accordion-item" style="{{Request::is('reminders') ? 'background-color: #c5d9e6;' : ''}}">
+                            <h2 class="accordion-header linkMenu">
+                                <a class="accordion-button collapsed" href="/reminders">
+                                    Scadenze
+                                </a>
+                            </h2>
+                        </div>
+                    @endif
                     <div class="accordion-item " style="{{Request::is('settings') || Request::is('categories') || Request::is('disciplines') || Request::is('cards') || Request::is('course_subscriptions') || Request::is('courses') || Request::is('course_durations') || Request::is('course_frequencies') || Request::is('course_levels') || Request::is('course_types') || Request::is('banks') || Request::is('causals') || Request::is('vats') || Request::is('payment_methods') ? 'background-color: #c5d9e6;' : ''}}">
                         <h2 class="accordion-header linkMenu">
                             <a class="accordion-button collapsed" href="/settings">

+ 2 - 0
resources/views/livewire/bank.blade.php

@@ -4,6 +4,8 @@
         <!--<button id="open-filter" onclick="pcsh1()"></button>
         <button id="close-filter" onclick="pcsh2()"></button>-->
 
+        <a class="btn--ui lightGrey" href="/settings?type=contabilita">Indietro</a><br>
+
         <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>

+ 2 - 0
resources/views/livewire/card.blade.php

@@ -19,6 +19,8 @@
 
     @if(!$add && !$update)
 
+    <a class="btn--ui lightGrey" href="/settings?type=anagrafica">Indietro</a><br>
+
         <!--<button id="open-filter" onclick="pcsh1()"></button>
         <button id="close-filter" onclick="pcsh2()"></button>-->
 

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

@@ -12,6 +12,7 @@
                     <a href="#" wire:click="add()" style="color:white">AGGIUNGI</a>
                 </div>
             </div>
+            <a class="btn--ui lightGrey" href="/settings?type=anagrafica">Indietro</a><br>
         @endif
 
     </header>

+ 3 - 0
resources/views/livewire/causal.blade.php

@@ -12,6 +12,7 @@
                     <a href="#" wire:click="add()" style="color:white">AGGIUNGI</a>
                 </div>
             </div>
+            <a class="btn--ui lightGrey" href="/settings?type=contabilita">Indietro</a><br>
         @endif
 
     </header>
@@ -19,6 +20,8 @@
 
     @if(!$add && !$update)
 
+
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/course.blade.php

@@ -20,6 +20,8 @@
     @if(!$add && !$update)
 
 
+<a class="btn--ui lightGrey" href="/settings?type=corsi">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/course_duration.blade.php

@@ -15,6 +15,8 @@
 
         </header>
 
+        <a class="btn--ui lightGrey" href="/settings?type=corsi">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/course_frequency.blade.php

@@ -15,6 +15,8 @@
 
         </header>
 
+        <a class="btn--ui lightGrey" href="/settings?type=corsi">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/course_level.blade.php

@@ -15,6 +15,8 @@
 
         </header>
 
+        <a class="btn--ui lightGrey" href="/settings?type=corsi">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/course_subscription.blade.php

@@ -15,6 +15,8 @@
 
         </header>
 
+        <a class="btn--ui lightGrey" href="/settings?type=corsi">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/course_type.blade.php

@@ -15,6 +15,8 @@
 
         </header>
 
+        <a class="btn--ui lightGrey" href="/settings?type=corsi">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 2 - 0
resources/views/livewire/discipline.blade.php

@@ -15,6 +15,8 @@
 
         </header>
 
+        <a class="btn--ui lightGrey" href="/settings?type=anagrafica">Indietro</a><br>
+
         <section id="resume-table">
             <div class="compare--chart_wrapper d-none"></div>
 

+ 33 - 1
resources/views/livewire/member.blade.php

@@ -26,6 +26,10 @@
                                     <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>
+                            <div class="credito d-flex align-items-center justify-content-between">
+                                <br><br><button type="button" class="btn--ui white small" data-bs-toggle="modal" data-bs-target="#userModal">Modifica</button>
                             </div>
                         </article>
 
@@ -192,6 +196,30 @@
             </div>
         </div>
 
+            <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">Modifica borsellino</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">Importo</label>
+                                <input class="form-control " type="text" id="importoBorsellino" wire:model="importoBorsellino">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="modal-footer">
+                        <button type="button" class="btn--ui lightGrey" data-bs-dismiss="modal">Annulla</button>
+                        <button type="button" class="btn--ui btn-primary" wire:click.prevent="updateBorsellino({{$currentMember->id}}, '-')">Decrementa</button>
+                        <button type="button" class="btn--ui btn-primary" wire:click.prevent="updateBorsellino({{$currentMember->id}}, '+')">Aumenta</button>
+                    </div>
+                    </div>
+                </div>
+            </div>
+
         @else
 
 
@@ -1899,7 +1927,7 @@
         });
 
         Livewire.on('hide-search', () => {
-            pcsh2();
+            //pcsh2();
         });
 
         Livewire.on('setIds', (nation_id_x, birth_nation_id_x) => {
@@ -2429,6 +2457,10 @@
 
         };
 
+        window.livewire.on('saved', () => {
+            $('#userModal').modal('hide');
+        });
+
         Livewire.on('goToAnchor', () =>
         {
             window.location.href = "#top";

+ 2 - 0
resources/views/livewire/payment_method.blade.php

@@ -16,6 +16,8 @@
 
     </header>
 
+    <a class="btn--ui lightGrey" href="/settings?type=contabilita">Indietro</a><br>
+
     @if(!$add && !$update)
 
         <section id="resume-table">

+ 178 - 27
resources/views/livewire/receipt.blade.php

@@ -29,10 +29,10 @@
                         <b>Periodo</b>
                     </div>
                     <div class="col-12 mb-2">
-                        <input id="dateFrom" type="date" class="form-control filterFrom" wire:model="filterFrom" >
+                        <input id="dateFrom" type="date" class="form-control filterFrom">
                     </div>
                     <div class="col-12">
-                        <input id="dateTo" type="date" class="form-control filterTo" wire:model="filterTo" >
+                        <input id="dateTo" type="date" class="form-control filterTo" >
                     </div>
                     <div class="col-6 mt-2">
                         <button class="btn--ui" onclick="setToday('{{date("Y-m-d")}}')">OGGI</button>
@@ -48,7 +48,7 @@
                         <b>Stato</b>
                     </div>
                     <div class="col-12">
-                        <select class="form-select" wire:model="filterStatus" onchange="destroyDataTable()">
+                        <select class="form-select filterStatus">
                             <option value="">--Seleziona--
                             <option value="1">Attiva
                             <option value="99">Annullata
@@ -59,8 +59,8 @@
         </div>
         <div class="row g-3">
             <div class="col-md-12" style="text-align:right">
-                <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>
+                <button class="btn--ui_outline light" onclick="reset()">CANCELLA</button>
+                <button class="btn--ui" onclick="loadDataTable()">FILTRA</button>
             </div>
         </div>
         <hr size="1">
@@ -83,27 +83,28 @@
                 </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="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
-
+                @if(false)
+                    @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="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
+                @endif
             </tbody>
         </table>
 
@@ -111,9 +112,87 @@
 
 </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>
@@ -128,6 +207,13 @@
             loadDataTable();
         } );
 
+        $('.filterStatus').select2();
+
+        Livewire.on('load-data-table', () => {
+            $('.filterStatus').select2();
+            loadDataTable();
+        });
+
         Livewire.on('load-data-table', () => {
             setTimeout(function() {loadDataTable()}, 100);
         });
@@ -164,12 +250,78 @@
             });
         }
 
+        function reset()
+        {
+            $('.filterStatus').val(null).trigger("change");
+            $('.filterFrom').val('');
+            $('.filterTo').val('');
+            destroyDataTable();
+            loadDataTable();
+        }
+
         function loadDataTable(){
+
+            if ( $.fn.DataTable.isDataTable('#tablesaw-350') ) {
+                $('#tablesaw-350').DataTable().destroy();
+            }
+
+            var filterStatus = $('.filterStatus').val();
+            var filterFrom = $('.filterFrom').val();
+            var filterTo = $('.filterTo').val();
+
             $('#tablesaw-350').DataTable({
                 fixedHeader: true,
+                serverSide: true,
+                ajax: {
+                    url : '/get_receipts?filterStatus=' + filterStatus + '&filterFrom=' + filterFrom + '&filterTo=' + filterTo,
+                    dataSrc: function (json){
+                        if(json.totals){
+                            totals = json.totals;
+                        }
+                        return json.data;
+                    }
+                },
                 thead: {
                 'th': {'background-color': 'blue'}
                 },
+                columns: [
+                    {
+                        data: 'year'
+                    },
+                    {
+                        data: 'number'
+                    },
+                    {
+                        data: 'last_name'
+                    },
+                    {
+                        data: 'first_name'
+                    },
+                    {
+                        data: "status",
+                        render: function (data){
+                            // Split class and text
+                            var ret = '<span class="tablesaw-cell-content"><span class="badge tessera-badge ' + (data == 1 ? 'active' : 'suspended') + '">' + (data == 1 ? 'Attiva' : 'Annullata') + '</span></span>';
+                            return ret;
+                        }
+                    },
+                    {
+                        data: 'date'
+                    },
+                    {
+                        data: 'totals'
+                    },
+                    {
+                        data: "action",
+                        render: function (data){
+                            // Split class and text
+                            var ret = '<button type="button" class="btn u" onclick="document.location.href=' + "'" + '/in?id=' + data + "'" + '" 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>';
+                            ret += '<a target="_blank" class="btn  u" href="/receipt/' + data + '" 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>';
+                            ret += '<a target="_blank" class="btn u" onclick="sendMail(' + data + ')"><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>';
+                            return ret;
+                        }
+                    }
+                ],
                 layout: {
                     topStart : null,
                     topEnd : null,
@@ -213,7 +365,6 @@
                     },
                     top1C :'search',
                 },
-                order: [[0, 'desc'], [1, 'desc']],
                 pagingType: 'numbers',
                 "language": {
                     "url": "/assets/js/Italian.json"

+ 3 - 3
resources/views/livewire/records_in.blade.php

@@ -48,10 +48,10 @@
                                     <b>Periodo</b>
                                 </div>
                                 <div class="col-12 mb-2">
-                                    <input id="dateFrom" type="date" class="form-control filterFrom"  >
+                                    <input id="dateFrom" type="date" class="form-control filterFrom" value="{{date("Y-m-d")}}" >
                                 </div>
                                 <div class="col-12">
-                                    <input id="dateTo" type="date" class="form-control filterTo" >
+                                    <input id="dateTo" type="date" class="form-control filterTo"  value="{{date("Y-m-d")}}">
                                 </div>
                                 <div class="col-6 mt-2">
                                     <button class="btn--ui" onclick="setToday('{{date("Y-m-d")}}')">OGGI</button>
@@ -932,7 +932,7 @@
         });
 
         Livewire.on('hide-search', () => {
-            pcsh2();
+            //pcsh2();
         });
 
         $('.filterPaymentMethod').select2();

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

@@ -544,9 +544,9 @@
                     }
                 });
             $('.supplierClass').select2({
-                    matcher: function(params, data) {
+                    /*matcher: function(params, data) {
                         return matchStart(params, data);
-                    }
+                    }*/
                 });
             $('.paymentClass').select2({
                     matcher: function(params, data) {
@@ -574,9 +574,9 @@
                 });
             });
             $('.supplierClass').select2({
-                    matcher: function(params, data) {
+                    /*matcher: function(params, data) {
                         return matchStart(params, data);
-                    }
+                    }*/
                 });
             $('.supplierClass').on('change', function (e) {
                 var data = $('.supplierClass').select2("val");
@@ -611,7 +611,7 @@
         });
 
         Livewire.on('hide-search', () => {
-            pcsh2();
+            //pcsh2();
         });
 
         $('.filterSupplier').select2();

+ 2 - 0
resources/views/livewire/vat.blade.php

@@ -1,6 +1,8 @@
 <div class="col card--ui" id="card--dashboard">
     @if(!$add && !$update)
 
+    <a class="btn--ui lightGrey" href="/settings?type=contabilita">Indietro</a><br>
+
         <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>

+ 72 - 2
routes/web.php

@@ -517,7 +517,7 @@ Route::get('/get_record_out', function(){
     }
 
     $total = 0;
-    foreach($x->get() as $r)
+    /*foreach($x->get() as $r)
     {
         foreach($r->rows as $rr)
         {
@@ -525,7 +525,7 @@ Route::get('/get_record_out', function(){
             if ($rr->vat_id > 0)
                 $total += getVatValue($rr->amount, $rr->vat_id);
         }
-    }
+    }*/
 
     $x = $x->get();
 
@@ -1034,6 +1034,76 @@ Route::get('/get_course_members', function(){
 
 });
 
+Route::get('/get_receipts', function(){
+
+
+    $x = \App\Models\Receipt::select('receipts.*', 'members.first_name', 'members.last_name')->leftJoin('members', 'receipts.member_id', '=', 'members.id');
+    if (isset($_GET["search"]["value"]))
+    {
+        $v = str_replace("'", "''", stripcslashes($_GET["search"]["value"]));
+        $member_ids = \App\Models\Member::where(function ($query) use ($v) {
+            $query->where('first_name', 'like', '%' . $v . '%')
+                    ->orWhere('last_name', 'like', '%' . $v . '%');
+        })->pluck('id');
+        $x = $x->whereIn('member_id', $member_ids);
+    }
+    if ($_GET["filterStatus"] != '')
+        $x = $x->where('receipts.status', $_GET["filterStatus"]);
+    if ($_GET["filterFrom"] != "")
+        $x = $x->where('date', '>=', $_GET["filterFrom"]);
+    if ($_GET["filterTo"] != "")
+        $x = $x->where('date', '<=', $_GET["filterTo"]);
+
+    $count = $x->count();
+
+    if (isset($_GET["order"]))
+    {
+        $column = '';
+        if ($_GET["order"][0]["column"] == 0)
+            $column = 'year';
+        if ($_GET["order"][0]["column"] == 1)
+            $column = 'number';
+        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 = 'status';
+        if ($_GET["order"][0]["column"] == 5)
+            $column = 'date';
+        if ($column != '')
+            $x = $x->orderBy($column, $_GET["order"][0]["dir"])->orderBy('id', 'DESC');
+        else
+            $x = $x->orderBy('id', 'DESC');
+    }
+    else
+        $x = $x->orderBy('id', 'DESC');
+
+    if (isset($_GET["start"]))
+        $x = $x->offset($_GET["start"])->limit($_GET["length"])->get();
+    else
+        $x = $x->get();
+    $datas = [];
+    foreach($x as $idx => $r)
+    {
+
+        $datas[] = array(
+            'year' => $r->year,
+            'number' => $r->number,
+            'last_name' => $r->member->last_name,
+            'first_name' => $r->member->first_name,
+            'status' => $r->status,
+            'date' => date("d/m/Y", strtotime($r->date)),
+            'totals' => formatPrice($r->rows->sum('amount')),
+            'action' => $r->id
+        );
+
+    }
+
+    return json_encode(array("data" => $datas, "recordsTotal" => $count, "recordsFiltered" => $count));
+
+});
+
 function getColor($months, $m)
 {
     $class = "grey";