Просмотр исходного кода

entrate/uscite - aggiunte colonne destinazione/origine

ferrari 1 месяц назад
Родитель
Сommit
ff008bfd15

+ 10 - 0
app/Models/Record.php

@@ -44,6 +44,16 @@ class Record extends Model
         return $this->belongsTo(PaymentMethod::class);
     }
 
+    public function origin()
+    {
+        return $this->belongsTo(\App\Models\Bank::class, 'origin_id');
+    }
+
+    public function destination()
+    {
+        return $this->belongsTo(\App\Models\Bank::class, 'destination_id');
+    }
+
     public function rows()
     {
         return $this->hasMany(RecordRow::class);

+ 64 - 1
resources/views/livewire/records_in.blade.php

@@ -100,6 +100,20 @@
                         </div>
                     </div>
                 </div>
+                <div class="col-md-2">
+                    <div class="row">
+                        <div class="col-md-12" style="margin-bottom:10px;">
+                            <b>Destinazioni</b>
+                        </div>
+                        <div class="col-12">
+                            <select name="search_destination_id" class="form-select filterDestinations" multiple="multiple">
+                                @foreach($banks as $bank)
+                                    <option value="{{$bank["id"]}}">{!!$bank["name"]!!}
+                                @endforeach
+                            </select>
+                        </div>
+                    </div>
+                </div>
                 <div class="col-md-2">
                     <div class="row">
                         <div class="col-md-12" style="margin-bottom:10px;">
@@ -138,6 +152,7 @@
                         <th scope="col">Commerciale</th>
                         <th scope="col">Causale</th>
                         <th scope="col">Pagamento</th>
+                        <th scope="col">Destinazione</th>
 
                         <th scope="col">Stato</th>
                         <th scope="col">...</th>
@@ -957,6 +972,17 @@
                 }, 100);
             });
 
+            $(document).on("keypress", $('.filterDestinations'), function (e) {
+
+                setTimeout(() => {
+                    $(".select2-results__option").each(function(){
+                        var txt = $(this).html();
+                        var count = (txt.match(/-/g) || []).length;
+                        $(this).addClass('paddingLeftSelect' + count);
+                    });
+                }, 100);
+            });
+
         });
 
         Livewire.on('load-select', () => {
@@ -1014,6 +1040,11 @@
                 //var data = $('.filterCausals').select2("val");
                 //@this.set('filterCausals', data);
             });
+            $('.filterDestinations').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
+            $('.filterDestinations').on('change', function (e) {
+                //var data = $('.filterDestinations').select2("val");
+                //@this.set('filterDestinations', data);
+            });
 
 
 
@@ -1033,6 +1064,11 @@
             //var data = $('.filterCausals').select2("val");
             //@this.set('filterCausals', data);
         });
+        $('.filterDestinations').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
+        $('.filterDestinations').on('change', function (e) {
+            //var data = $('.filterDestinations').select2("val");
+            //@this.set('filterDestinations', data);
+        });
 
         window.livewire.on('saved', () => {
             $('#userModal').modal('hide');
@@ -1105,6 +1141,12 @@
                 $('.filterCausals').val(filterCausals);
                 $('.filterCausals').trigger('change');
             }
+            var filterDestinations = localStorage.getItem("filterDestinations");
+            if (filterDestinations)
+            {
+                $('.filterDestinations').val(filterDestinations);
+                $('.filterDestinations').trigger('change');
+            }
             var filterFrom = localStorage.getItem("filterFrom");
             if (filterFrom)
             {
@@ -1152,6 +1194,12 @@
                 $('.filterCausals').val(filterCausals);
                 $('.filterCausals').trigger('change');
             }
+            var filterDestinations = localStorage.getItem("filterDestinationsRecordIn");
+            if (filterDestinations && filterDestinations != "null" && filterDestinations != "undefined")
+            {
+                $('.filterDestinations').val(filterDestinations);
+                $('.filterDestinations').trigger('change');
+            }
             var filterFrom = localStorage.getItem("filterFromRecordIn");
             if (filterFrom && filterFrom != "null" && filterFrom != "undefined")
             {
@@ -1189,6 +1237,16 @@
                     });
                 }, 100);
             });
+            $(document).on("select2:open",".filterDestinations",function() {
+            //$('.filterDestinations').on('select2:open', function (e) {
+                setTimeout(() => {
+                    $(".select2-results__option").each(function(){
+                        var txt = $(this).html();
+                        var count = (txt.match(/-/g) || []).length;
+                        $(this).addClass('paddingLeftSelect' + count);
+                    });
+                }, 100);
+            });
 
         } );
 
@@ -1233,6 +1291,8 @@
             $('.filterPaymentMethod').trigger('change');
             $('.filterCausals').val('');
             $('.filterCausals').trigger('change');
+            $('.filterDestinations').val('');
+            $('.filterDestinations').trigger('change');
             $('.filterFrom').val('');
             $('.filterTo').val('');
             //localStorage.clear();
@@ -1251,6 +1311,7 @@
             var filterMember = $('.filterMember').val();
             var filterPaymentMethod = $('.filterPaymentMethod').val();
             var filterCausals = $('.filterCausals').val();
+            var filterDestinations = $('.filterDestinations').val();
             var filterFrom = $('.filterFrom').val();
             var filterTo = $('.filterTo').val();
 
@@ -1259,6 +1320,7 @@
             localStorage.setItem("filterMemberRecordIn", filterMember);
             localStorage.setItem("filterPaymentMethodRecordIn", filterPaymentMethod);
             localStorage.setItem("filterCausalsRecordIn", filterCausals);
+            localStorage.setItem("filterDestinationsRecordIn", filterDestinations);
             localStorage.setItem("filterFromRecordIn", filterFrom);
             localStorage.setItem("filterToRecordIn", filterTo);
 
@@ -1275,7 +1337,7 @@
                 scrollY: 800,*/
                 serverSide: true,
                 ajax: {
-                    url : '/get_record_in?filterCommercial=' + filterCommercial + "&filterMember=" + filterMember + "&filterPaymentMethod=" + filterPaymentMethod + "&filterCausals=" + filterCausals + "&filterFrom=" + filterFrom + "&filterTo=" + filterTo,
+                    url : '/get_record_in?filterCommercial=' + filterCommercial + "&filterMember=" + filterMember + "&filterPaymentMethod=" + filterPaymentMethod + "&filterDestinations=" + filterDestinations + "&filterCausals=" + filterCausals + "&filterFrom=" + filterFrom + "&filterTo=" + filterTo,
                     dataSrc: function (json){
                         if(json.totals){
                             
@@ -1314,6 +1376,7 @@
                     { data: 'commercial' },
                     { data: 'causals', "orderable": false, },
                     { data: 'payment', "orderable": false, },
+                    { data: 'destination', "orderable": false, },
                     //{ data: 'payment_date', "orderable": false, },
                     { data: 'status', "orderable": false, },
                     {

+ 59 - 1
resources/views/livewire/records_out.blade.php

@@ -95,6 +95,20 @@
                         </div>
                     </div>
                 </div>
+                <div class="col-md-2">
+                    <div class="row">
+                        <div class="col-md-12" style="margin-bottom:10px;">
+                            <b>Origini</b>
+                        </div>
+                        <div class="col-12">
+                            <select name="search_origin_id" class="form-select filterOrigins" multiple="multiple">
+                                @foreach($banks as $bank)
+                                    <option value="{{$bank["id"]}}">{!!$bank["name"]!!}
+                                @endforeach
+                            </select>
+                        </div>
+                    </div>
+                </div>
                 <div class="col-md-2">
                     <div class="row">
                         <div class="col-md-12" style="margin-bottom:10px;">
@@ -131,6 +145,7 @@
                         <th scope="col">Fornitore</th>
                         <th scope="col">Causale</th>
                         <th scope="col">Pagamento</th>
+                        <th scope="col">Origine</th>
                         <th scope="col">...</th>
                     </tr>
                 </thead>
@@ -588,6 +603,17 @@
                 }, 100);
             });
 
+            $(document).on("keypress", $('.filterOrigins'), function (e) {
+
+                setTimeout(() => {
+                    $(".select2-results__option").each(function(){
+                        var txt = $(this).html();
+                        var count = (txt.match(/-/g) || []).length;
+                        $(this).addClass('paddingLeftSelect' + count);
+                    });
+                }, 100);
+            });
+
         });
 
         Livewire.on('load-select', () => {
@@ -636,6 +662,11 @@
                 //var data = $('.filterCausals').select2("val");
                 //@this.set('filterCausals', data);
             });
+            $('.filterOrigins').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
+            $('.filterOrigins').on('change', function (e) {
+                //var data = $('.filterOrigins').select2("val");
+                //@this.set('filterOrigins', data);
+            });
 
         });
 
@@ -658,6 +689,11 @@
             //var data = $('.filterCausals').select2("val");
             //@this.set('filterCausals', data);
         });
+        $('.filterOrigins').select2({"language": {"noResults": function(){return "Nessun risultato";}}});
+        $('.filterOrigins').on('change', function (e) {
+            //var data = $('.filterOrigins').select2("val");
+            //@this.set('filterOrigins', data);
+        });
 
         function onlyNumberAmount(input) {
             let v = input.value.replace(/\D+/g, '');
@@ -701,6 +737,13 @@
                 $('.filterCausals').val(filterCausals);
                 $('.filterCausals').trigger('change');
             }
+            var filterOrigins = localStorage.getItem("filterOriginsRecordOut");
+            if (filterOrigins && filterOrigins != "null" && filterOrigins != "undefined")
+            {
+                console.log("3");
+                $('.filterOrigins').val(filterOrigins);
+                $('.filterOrigins').trigger('change');
+            }
             var filterFrom = localStorage.getItem("filterFromRecordOut");
             if (filterFrom && filterFrom != "" && filterFrom != "undefined")
             {
@@ -740,6 +783,16 @@
                     });
                 }, 100);
             });
+            $(document).on("select2:open",".filterOrigins",function() {
+            //$('.filterOrigins').on('select2:open', function (e) {
+                setTimeout(() => {
+                    $(".select2-results__option").each(function(){
+                        var txt = $(this).html();
+                        var count = (txt.match(/-/g) || []).length;
+                        $(this).addClass('paddingLeftSelect' + count);
+                    });
+                }, 100);
+            });
 
         } );
 
@@ -778,6 +831,8 @@
             $('.filterPaymentMethod').trigger('change');
             $('.filterCausals').val('');
             $('.filterCausals').trigger('change');
+            $('.filterOrigins').val('');
+            $('.filterOrigins').trigger('change');
             $('.filterFrom').val('');
             $('.filterTo').val('');
             localStorage.clear();
@@ -793,19 +848,21 @@
             var filterSupplier = $('.filterSupplier').val();
             var filterPaymentMethod = $('.filterPaymentMethod').val();
             var filterCausals = $('.filterCausals').val();
+            var filterOrigins = $('.filterOrigins').val();
             var filterFrom = $('.filterFrom').val();
             var filterTo = $('.filterTo').val();
 
             localStorage.setItem("filterSupplierRecordOut", filterSupplier);
             localStorage.setItem("filterPaymentMethodRecordOut", filterPaymentMethod);
             localStorage.setItem("filterCausalsRecordOut", filterCausals);
+            localStorage.setItem("filterOriginsRecordOut", filterOrigins);
             localStorage.setItem("filterFromRecordOut", filterFrom);
             localStorage.setItem("filterToRecordOut", filterTo);
 
             $('#tablesaw-350').DataTable({
                 //searching: false,
                 ajax: {
-                    url : "/get_record_out?filterSupplier=" + filterSupplier + "&filterPaymentMethod=" + filterPaymentMethod + "&filterCausals=" + filterCausals + "&filterFrom=" + filterFrom + "&filterTo=" + filterTo,
+                    url : "/get_record_out?filterSupplier=" + filterSupplier + "&filterPaymentMethod=" + filterPaymentMethod + "&filterOrigins=" + filterOrigins + "&filterCausals=" + filterCausals + "&filterFrom=" + filterFrom + "&filterTo=" + filterTo,
                     dataSrc: function (json){
                         if(json.totals){
                             $(".totalDiv").html('Totale&nbsp;:&nbsp;<b>' + json.totals + '</b>');
@@ -840,6 +897,7 @@
                     { data: 'supplier' },
                     { data: 'causals' },
                     { data: 'payment' },
+                    { data: 'origin' },
                     {
                         data: "action",
                         render: function (data){

+ 15 - 6
routes/web.php

@@ -510,12 +510,6 @@ Route::get('/get_record_in', function () {
 
     $datas = [];
 
-    $x = \App\Models\Record::select('records.*', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name'), DB::raw('payment_methods.name as payment'), DB::raw('receipts.created_at as receipt_date')) // , \DB::raw('SUM(records.id) As total'))
-        ->leftJoin('members', 'records.member_id', '=', 'members.id')
-        ->leftJoin('payment_methods', 'records.payment_method_id', '=', 'payment_methods.id')
-        ->leftJoin('receipts', 'records.id', '=', 'receipts.record_id')
-        ->where('records.type', 'IN');
-
     $x = \App\Models\Record::select('records.*', DB::raw('members.first_name as first_name'), DB::raw('members.last_name as last_name'), DB::raw('payment_methods.name as payment'), DB::raw('receipts.created_at as receipt_date')) // , \DB::raw('SUM(records.id) As total'))
         ->leftJoin('members', 'records.member_id', '=', 'members.id')
         ->leftJoin('payment_methods', 'records.payment_method_id', '=', 'payment_methods.id')
@@ -605,6 +599,13 @@ Route::get('/get_record_in', function () {
         $x = $x->whereIn('records.id', $causals);
         $y = $y->whereIn('records.id', $causals);
     }
+    if ($_GET["filterDestinations"] != "null") {
+        $hasFilter = true;
+        $destinations = explode(",", $_GET["filterDestinations"]);
+
+        $x = $x->whereIn('records.destination_id', $destinations);
+        $y = $y->whereIn('records.destination_id', $destinations);
+    }
     if ($_GET["filterFrom"] != '') {
         $hasFilter = true;
         $x = $x->where('records.date', '>=', $_GET["filterFrom"]);
@@ -737,6 +738,7 @@ Route::get('/get_record_in', function () {
             'commercial' => $r->financial_movement ? 'Movimento finanziario' : ($r->commercial ? 'SI' : 'NO'),
             'causals' => $causals,
             'payment' => $r->payment_method->name,
+            'destination' => $r->destination?->name,
             //'payment_date' => date("d/m/Y", strtotime($r->date)),
             'status' => $r->deleted ? 'Annullato' : '',
             'action' => $r->id . "||" . ($r->deleted ? 'x' : '')
@@ -808,6 +810,12 @@ Route::get('/get_record_out', function () {
         $x = $x->whereIn('records.id', $causals);
         $hasFilter = true;
     }
+    if ($_GET["filterOrigins"] != "null") {
+        $hasFilter = true;
+        $origins = explode(",", $_GET["filterOrigins"]);
+
+        $x = $x->whereIn('records.origin_id', $origins);
+    }
     if ($_GET["filterFrom"] != '') {
         $x = $x->where('date', '>=', $_GET["filterFrom"]);
         $hasFilter = true;
@@ -848,6 +856,7 @@ Route::get('/get_record_out', function () {
             'supplier' => $r->supplier->name,
             'causals' => $causals,
             'payment' => $r->payment_method->name,
+            'origin' => $r->origin?->name,
             'action' => $r->id . "|"
         );
     }