Explorar o código

fix assicurazione

FabioFratini hai 11 meses
pai
achega
38bbdb4a7a

+ 4 - 1
app/Http/Livewire/Traits/HasPolizza.php

@@ -120,7 +120,10 @@ trait HasPolizza{
                         'id' => $polizza->compagnia_id,
                         'text' => $polizza->compagnia ? $polizza->compagnia->name : ''
                     ],
-                    'agenzia' => $polizza->agenzia
+                    'agenzia' => $polizza->agenzia,
+                    'polizza_num' => $polizza->polizza_num,
+                    'valida_dal' => $polizza->valida_dal,
+                    'valida_al' => $polizza->valida_al
                 ]);
             }
         }

+ 71 - 58
resources/views/livewire/report.blade.php

@@ -436,7 +436,30 @@
         Livewire.on('load-select-modal', () => {
 
             initializeSelect2Controls();
+            @this.cleanPolizzaData();
+            const initSelect2Field = (selector, url) => {
+                const $field = $(selector);
+                if ($field.data('select2')) {
+                    $field.select2('destroy');
+                }
+                $field.empty().select2({
+                    dropdownParent: document.body,
+                    theme: 'bootstrap4',
+                    ajax: {
+                        url: url,
+                        dataType: 'json'
+                    },
+                    width: '100%'
+                });
+            };
 
+            initSelect2Field('.anagrafica_id', '/anagrafica');
+            initSelect2Field('.compagnia_id', '/compagnie');
+            initSelect2Field('.agenzia', '/polizze/agenzie');
+
+            $('.polizza_num').val('');
+            $('.valida_dal').val('');
+            $('.valida_al').val('');
             const modals = [
                 "data_proprietari", "data_coproprietari", "data_conducenti",
                 "data_passeggero_0", "data_passeggero_1", "data_passeggero_2", "data_passeggero_3",
@@ -591,73 +614,37 @@
         });
 
         Livewire.on('updatePolizzaSelects', data => {
-            // Initialize anagrafica_id select2
-            const $anagrafica = $('.anagrafica_id');
-            if ($anagrafica.data('select2')) {
-                $anagrafica.select2('destroy');
-            }
-            $anagrafica.select2({
-                dropdownParent: document.body,
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/anagrafica',
-                    dataType: 'json'
-                },
-                width: '100%'
-            }).on('change', function(e) {
-                @this.set('anagrafica_id', $(this).val());
-            });
+            console.log('Updating polizza selects with data:', data);
 
-            // Set anagrafica value if exists
             if (data.anagrafica) {
-                const option = new Option(data.anagrafica.text, data.anagrafica.id, true, true);
-                $anagrafica.append(option).trigger('change');
+                const $anagrafica = $('.anagrafica_id');
+                const anagOption = new Option(data.anagrafica.text, data.anagrafica.id, true, true);
+                $anagrafica.append(anagOption).trigger('change');
             }
 
-            // Initialize compagnia_id select2
-            const $compagnia = $('.compagnia_id');
-            if ($compagnia.data('select2')) {
-                $compagnia.select2('destroy');
-            }
-            $compagnia.select2({
-                dropdownParent: document.body,
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/compagnie',
-                    dataType: 'json'
-                },
-                width: '100%'
-            }).on('change', function(e) {
-                @this.set('compagnia_id', $(this).val());
-            });
-
-            // Set compagnia value if exists
             if (data.compagnia) {
-                const option = new Option(data.compagnia.text, data.compagnia.id, true, true);
-                $compagnia.append(option).trigger('change');
+                const $compagnia = $('.compagnia_id');
+                const compOption = new Option(data.compagnia.text, data.compagnia.id, true, true);
+                $compagnia.append(compOption).trigger('change');
             }
 
-            // Initialize agenzia select2
-            const $agenzia = $('.agenzia');
-            if ($agenzia.data('select2')) {
-                $agenzia.select2('destroy');
+            if (data.agenzia) {
+                const $agenzia = $('.agenzia');
+                const agOption = new Option(data.agenzia, data.agenzia, true, true);
+                $agenzia.append(agOption).trigger('change');
             }
-            $agenzia.select2({
-                dropdownParent: document.body,
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/polizze/agenzie',
-                    dataType: 'json'
-                },
-                width: '100%'
-            }).on('change', function(e) {
-                @this.set('agenzia', $(this).val());
-            });
 
-            // Set agenzia value if exists
-            if (data.agenzia) {
-                const option = new Option(data.agenzia, data.agenzia, true, true);
-                $agenzia.append(option).trigger('change');
+            if (data.polizza_num) {
+                $('.polizza_num').val(data.polizza_num);
+                @this.set('polizza_num', data.polizza_num);
+            }
+            if (data.valida_dal) {
+                $('.valida_dal').val(data.valida_dal);
+                @this.set('valida_dal', data.valida_dal);
+            }
+            if (data.valida_al) {
+                $('.valida_al').val(data.valida_al);
+                @this.set('valida_al', data.valida_al);
             }
         });
 
@@ -809,5 +796,31 @@
             });
         }
 
+        $('.anagrafica_id').on('change', function(e) {
+            @this.set('anagrafica_id', $(this).val());
+            updateAnagraficaButtons($(this).val());
+        });
+
+        $('.compagnia_id').on('change', function(e) {
+            @this.set('compagnia_id', $(this).val());
+        });
+
+        $('.agenzia').on('change', function(e) {
+            @this.set('agenzia', $(this).val());
+        });
+
+        // Regular form field handlers
+        $('.polizza_num').on('input', function(e) {
+            @this.set('polizza_num', $(this).val());
+        });
+
+        $('.valida_dal').on('change', function(e) {
+            @this.set('valida_dal', $(this).val());
+        });
+
+        $('.valida_al').on('change', function(e) {
+            @this.set('valida_al', $(this).val());
+        });
+
     </script>
 @endpush