瀏覽代碼

assicurazione nell'accordion

FabioFratini 11 月之前
父節點
當前提交
d0dfca4bb4

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

@@ -82,7 +82,7 @@ trait HasPolizza{
 
         $this->dispatchBrowserEvent('hide-polizza-modal');
         $this->emit('polizza-saved', $polizza->id, $this->getPolizza($polizza->id));
-
+        session()->flash('success','Polizza salvata con successo');
     }
 
 
@@ -129,7 +129,6 @@ trait HasPolizza{
     public function addAnagraficaPolizza(){
         $this->resetAnagrafica();
         $this->currentAnagrafica = 99;
-        $this->modalType = 'polizza';
         $this->emit('load-anagrafica-modal');
     }
 

+ 4 - 2
app/Http/Livewire/Traits/HasVeicoli.php

@@ -450,8 +450,10 @@ trait HasVeicoli{
         }
         $this->emit('load-select-modal');
 
-        if ($this->data_polizze > 0)
-        $this->emit('add-default-value', $this->data_polizze, $this->getPolizza($this->data_polizze), 'data_polizze');
+        if ($this->data_polizze > 0) {
+            $this->emit('add-default-value', $this->data_polizze, $this->getPolizza($this->data_polizze), 'data_polizze');
+            $this->editPolizzaData($this->data_polizze);
+        }
 
         if ($this->data_proprietari > 0)
         $this->emit('add-default-value', $this->data_proprietari, $this->getAnagrafica($this->data_proprietari), 'data_proprietari');

+ 1 - 1
resources/views/components/report/veicoli/accordion/accertamenti-conducente-accordion.blade.php

@@ -1,4 +1,4 @@
-<div class="card collapsed-card">
+<div class="card card-primary collapsed-card">
     <div class="card-header">
         <h3 class="card-title">Accertamenti conducente</h3>
         <div class="card-tools">

+ 1 - 1
resources/views/components/report/veicoli/accordion/accertamenti-passeggeri-accordion.blade.php

@@ -1,4 +1,4 @@
-<div class="card collapsed-card">
+<div class="card card-primary collapsed-card">
     <div class="card-header">
         <h3 class="card-title">Accertamenti passeggeri</h3>
         <div class="card-tools">

+ 1 - 1
resources/views/components/report/veicoli/accordion/osservazioni-veicolo-accordion.blade.php

@@ -1,4 +1,4 @@
-<div class="card collapsed-card">
+<div class="card card-primary collapsed-card">
     <div class="card-header">
         <h3 class="card-title">Osservazioni sul veicolo</h3>
         <div class="card-tools">

+ 1 - 1
resources/views/components/report/veicoli/accordion/provvedimenti-adottati-accordion.blade.php

@@ -1,4 +1,4 @@
-<div class="card collapsed-card">
+<div class="card card-primary collapsed-card">
     <div class="card-header">
         <h3 class="card-title">Provvedimenti adottati</h3>
         <div class="card-tools">

+ 1 - 3
resources/views/components/report/veicoli/accordion/veicolo-accordion.blade.php

@@ -1,4 +1,4 @@
-<div class="card  collapsed-card">
+<div class="card card-primary collapsed-card">
     <div class="card-header">
         <h3 class="card-title">Veicolo</h3>
         <div class="card-tools">
@@ -24,8 +24,6 @@
                     </select>
                 </div>
 
-
-                @include('components.report.veicoli.accordion.veicolo.veicolo-assicurazione')
             </div>
             @include('components.report.veicoli.accordion.veicolo.veicolo-proprietario')
 

+ 91 - 0
resources/views/components/report/veicoli/accordion/veicolo-assicurazione-accordion.blade.php

@@ -0,0 +1,91 @@
+<div class="card  collapsed-card card-primary">
+    <div class="card-header">
+        <h3 class="card-title">Assicurazione</h3>
+        <div class="card-tools">
+            <button type="button" class="btn btn-tool" data-card-widget="collapse"><i
+                    class="fas fa-plus"></i></button>
+        </div>
+    </div>
+    <div class="card-body">
+        <form wire:submit.prevent="savePolizza">
+            <div class="row mb-3">
+                <div class="col-md-4">
+                    <label>Contraente</label>
+                    <div class="row">
+                        <div class="col-sm-9">
+                            <select class="form-control anagrafica_id" wire:model="anagrafica_id" required>
+                                @if ($anagrafica_id)
+                                    <option value="{{ $anagrafica_id }}">
+                                        {{ $this->getAnagrafica($anagrafica_id) }}
+                                    </option>
+                                @endif
+                            </select>
+                        </div>
+                        <div class="col-sm-3">
+                            @if ($anagrafica_id)
+                                <a class="btn btn-primary editAnagrafica"
+                                    wire:click.prevent="editAnagraficaPolizza()" data-target="#anagraficaParte"
+                                    style="background-color: orange;border-color: orange;">
+                                    <i class="fa fa-edit"></i>
+                                </a>
+                                <a class="btn btn-danger" wire:click.prevent="removeAnagraficaPolizza()">
+                                    <i class="fa fa-trash"></i>&nbsp;
+                                </a>
+                            @else
+                                <a class="btn btn-primary" wire:click.prevent="addAnagraficaPolizza()"
+                                    data-target="#anagraficaParte">+&nbsp;
+                                </a>
+                            @endif
+                        </div>
+                    </div>
+                </div>
+                <div class="col-md-4">
+                    <div class="form-group">
+                        <label>Compagnia</label>
+                        <select class="form-control compagnia_id" wire:model="compagnia_id" required>
+                        </select>
+                    </div>
+                </div>
+                <div class="col-md-4">
+                    <div class="form-group">
+                        <label>Agenzia</label>
+                        <select class="form-control agenzia" wire:model="agenzia">
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row">
+                <div class="col-md-4">
+                    <div class="form-group">
+                        <label>Numero Polizza</label>
+                        <input type="text" class="form-control polizza_num"
+                            wire:model.debounce.500ms="polizza_num" required>
+
+                    </div>
+                </div>
+                <div class="col-md-4">
+                    <div class="form-group">
+                        <label>Valida dal</label>
+                        <div class="input-group">
+                            <input type="date" class="form-control valida_dal" wire:model="valida_dal" required>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-md-4">
+                    <div class="form-group">
+                        <label>Valida al</label>
+                        <div class="input-group">
+                            <input type="date" class="form-control valida_al" wire:model="valida_al" required>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="row">
+                <div class="col-md-12 text-right">
+                    <button type="submit" class="btn btn-primary">Salva</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>

+ 0 - 132
resources/views/components/report/veicoli/accordion/veicolo/veicolo-assicurazione.blade.php

@@ -1,132 +0,0 @@
-<div class="column">
-    <label for="data_polizze" class="form-label">Polizza auto</label>
-    <div class="row">
-        <div class="col-sm-6">
-            <select class="form-control data_polizze" style="width:100%">
-                @if ($data_polizze)
-                    <option value="{{ $data_polizze }}">
-                        {{ $this->getPolizza($data_polizze) }}
-                    </option>
-                @endif
-            </select>
-        </div>
-        <div class="col-sm-4">
-            <a class="btn btn-primary data_polizze_add"
-                wire:click.prevent="addPolizza()" data-toggle="modal"
-                data-target="#polizzaParte">
-                +&nbsp;
-            </a>
-            <a class="btn btn-danger data_polizze_remove"
-                wire:click.prevent="removePolizza()">
-                <i class="fa fa-trash"></i>&nbsp;
-            </a>
-        </div>
-    </div>
-</div>
-
-<div class="modal fade" id="polizzaParte" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog"
-    aria-labelledby="polizzaParteLabel" aria-hidden="true">
-    <div class="modal-dialog modal-lg" role="document">
-        <div class="modal-content">
-            <div class="modal-header">
-                <h5 class="modal-title" id="polizzaParteLabel">Gestione Polizza</h5>
-                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">&times;</span>
-                </button>
-            </div>
-            <div class="modal-body">
-                <form wire:submit.prevent="savePolizza">
-                    <div class="row mb-3">
-                        <div class="col-md-12">
-                            <label>Contraente *</label>
-                            <div class="row">
-                                <div class="col-sm-9">
-                                    <select class="form-control anagrafica_id" wire:model="anagrafica_id" required>
-                                        @if ($anagrafica_id)
-                                            <option value="{{ $anagrafica_id }}">
-                                                {{ $this->getAnagrafica($anagrafica_id) }}
-                                            </option>
-                                        @endif
-                                    </select>
-                                    @error('anagrafica_id')
-                                        <span class="text-danger">{{ $message }}</span>
-                                    @enderror
-                                </div>
-                                <div class="col-sm-3">
-                                    @if ($anagrafica_id)
-                                        <a class="btn btn-primary editAnagrafica"
-                                            wire:click.prevent="editAnagraficaPolizza()" data-target="#anagraficaParte"
-                                            style="background-color: orange;border-color: orange;">
-                                            <i class="fa fa-edit"></i>
-                                        </a>
-                                        <a class="btn btn-danger" wire:click.prevent="removeAnagraficaPolizza()">
-                                            <i class="fa fa-trash"></i>&nbsp;
-                                        </a>
-                                    @else
-                                        <a class="btn btn-primary" wire:click.prevent="addAnagraficaPolizza()"
-                                            data-target="#anagraficaParte">+&nbsp;
-                                        </a>
-                                    @endif
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-
-                    <div class="row">
-                        <div class="col-md-6">
-                            <div class="form-group">
-                                <label>Compagnia *</label>
-                                <select class="form-control compagnia_id" wire:model="compagnia_id" required>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="col-md-6">
-                            <div class="form-group">
-                                <label>Agenzia</label>
-                                <select class="form-control agenzia" wire:model="agenzia">
-                                </select>
-                            </div>
-                        </div>
-                    </div>
-
-                    <div class="row">
-                        <div class="col-md-12">
-                            <div class="form-group">
-                                <label>Numero Polizza *</label>
-                                <input type="text" class="form-control polizza_num"
-                                    wire:model.debounce.500ms="polizza_num" required>
-
-                            </div>
-                        </div>
-                    </div>
-
-                    <div class="row">
-                        <div class="col-md-6">
-                            <div class="form-group">
-                                <label>Valida dal *</label>
-                                <div class="input-group">
-                                    <input type="date" class="form-control valida_dal" wire:model="valida_dal" required>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="col-md-6">
-                            <div class="form-group">
-                                <label>Valida al *</label>
-                                <div class="input-group">
-                                    <input type="date" class="form-control valida_al" wire:model="valida_al" required>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-
-
-                    <div class="modal-footer">
-                        <button type="button" class="btn btn-secondary" wire:click="cleanPolizzaData"
-                            onclick="$('#polizzaParte').modal('hide')">Chiudi</button>
-                        <button type="submit" class="btn btn-primary">Salva</button>
-                    </div>
-                </form>
-            </div>
-        </div>
-    </div>
-</div>

+ 2 - 0
resources/views/components/report/veicoli/veicolo-data-parte.blade.php

@@ -12,6 +12,8 @@
 
                         @include('components.report.veicoli.accordion.veicolo-accordion')
 
+                        @include('components.report.veicoli.accordion.veicolo-assicurazione-accordion')
+
                         @include('components.report.veicoli.accordion.osservazioni-veicolo-accordion')
 
                         @include('components.report.veicoli.accordion.accertamenti-conducente-accordion')

+ 138 - 95
resources/views/livewire/report.blade.php

@@ -441,7 +441,7 @@
                 "data_proprietari", "data_coproprietari", "data_conducenti",
                 "data_passeggero_0", "data_passeggero_1", "data_passeggero_2", "data_passeggero_3",
                 "data_infortunato_extra_0", "data_infortunato_extra_1", "data_infortunato_extra_2",
-                "data_infortunato_extra_3"
+                "data_infortunato_extra_3","anagrafica_id"
             ];
 
             function initializeSelect2(element, url = '/anagrafica') {
@@ -524,7 +524,143 @@
                     }
                 });
             });
+
+            $('.compagnia_id').each(function() {
+                if ($(this).data('select2')) {
+                    $(this).select2('destroy');
+                }
+                    const currentValue = $(this).val();
+                const currentText = $(this).find('option:selected').text();
+
+                $(this).select2({
+                    dropdownParent: document.body,
+                    theme: 'bootstrap4',
+                    ajax: {
+                        url: '/compagnie',
+                        dataType: 'json'
+                    },
+                    width: '100%'
+                }).on('change', function(e) {
+                    @this.set('compagnia_id', $(this).val());
+                });
+
+                if (currentValue && currentText) {
+                    const option = new Option(currentText, currentValue, true, true);
+                    $(this).append(option).trigger('change');
+                }
+            });
+
+            $('.agenzia').each(function() {
+                if ($(this).data('select2')) {
+                    $(this).select2('destroy');
+                }
+                const currentValue = $(this).val();
+                const currentText = $(this).find('option:selected').text();
+
+                $(this).select2({
+                    dropdownParent: document.body,
+                    theme: 'bootstrap4',
+                    ajax: {
+                        url: '/polizze/agenzie',
+                        dataType: 'json'
+                    },
+                    width: '100%'
+                }).on('change', function(e) {
+                    @this.set('agenzia', $(this).val());
+                });
+
+                if (currentValue && currentText) {
+                    const option = new Option(currentText, currentValue, true, true);
+                    $(this).append(option).trigger('change');
+                }
+            });
+
+            $('.valida_dal').on('change', function(e) {
+                @this.set('valida_dal', $(this).val());
+            });
+
+            $('.valida_al').on('change', function(e) {
+                @this.set('valida_al', $(this).val());
+            });
+
+            $('.polizza_num').on('input', function(e) {
+                @this.set('polizza_num', $(this).val());
+            });
+
+
         });
+
+        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());
+            });
+
+            // 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');
+            }
+
+            // 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');
+            }
+
+            // Initialize agenzia select2
+            const $agenzia = $('.agenzia');
+            if ($agenzia.data('select2')) {
+                $agenzia.select2('destroy');
+            }
+            $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');
+            }
+        });
+
         Livewire.on('load-select-pedone', () => {
 
             var x = $("#generalizzato").val();
@@ -651,96 +787,13 @@
             $("." + cls + "Text").hide();
         });
 
-        Livewire.on('load-polizza-modal', () => {
-            $('.valida_dal').on('change', function (e) {
-                @this.set('valida_dal', $(this).val());
-            });
-
-            $('.valida_al').on('change', function (e) {
-                @this.set('valida_al', $(this).val());
-            });
-
-            $('.polizza_num').on('input', function (e) {
-                @this.set('polizza_num', $(this).val());
-            });
-
-            $('.anagrafica_id').select2({
-                dropdownParent: $('#polizzaParte .modal-content'),
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/anagrafica',
-                    dataType: 'json'
-                },
-                width: '100%'
-            }).on('change', function (e) {
-                @this.set('anagrafica_id', $(this).val());
-            });
-
-            $('.compagnia_id').select2({
-                dropdownParent: $('#polizzaParte .modal-content'),
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/compagnie',
-                    dataType: 'json'
-                },
-                width: '100%'
-            }).on('change', function (e) {
-                @this.set('compagnia_id', $(this).val());
-            });
-
-            $('.agenzia').select2({
-                dropdownParent: $('#polizzaParte .modal-content'),
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/polizze/agenzie',
-                    dataType: 'json'
-                },
-                width: '100%'
-            }).on('change', function (e) {
-                @this.set('agenzia', $(this).val());
-            });
-
-            window.addEventListener('show-polizza-modal', event => {
-                $('#polizzaParte').modal('show');
-            });
-
-            Livewire.on('hide-polizza-modal', () => {
-                $('#polizzaParte').modal('hide');
-                Livewire.emit('load-select');
-            });
-
-            $('#polizzaParte').on('hidden.bs.modal', () => {
-                $('#polizzaParte').modal('hide');
-                setTimeout(() => {
-                    Livewire.emit('load-select-modal');
-                }, 200);
-            });
-
-            Livewire.on('polizza-saved', (polizzaId, polizzaText) => {
-                let $select = $('.data_polizze');
-                $select.append(new Option(polizzaText, polizzaId, true, true)).trigger('change');
-            });
-        });
-
-        Livewire.on('updatePolizzaSelects', data => {
-            if (data.anagrafica) {
-                let option = new Option(data.anagrafica.text, data.anagrafica.id, true, true);
-                $('.anagrafica_id').append(option).trigger('change');
-            }
-
-            if (data.compagnia) {
-                let option = new Option(data.compagnia.text, data.compagnia.id, true, true);
-                $('.compagnia_id').append(option).trigger('change');
-            }
-        });
-
         function initializeSelect2Controls() {
             console.log("initializeSelect2Controls");
             const modals = [
                 "data_proprietari", "data_coproprietari", "data_conducenti",
                 "data_passeggero_0", "data_passeggero_1", "data_passeggero_2", "data_passeggero_3",
                 "data_infortunato_extra_0", "data_infortunato_extra_1", "data_infortunato_extra_2",
-                "data_infortunato_extra_3"
+                "data_infortunato_extra_3","anagrafica_id"
             ];
 
             modals.forEach(value => {
@@ -754,16 +807,6 @@
                     width: '100%'
                 });
             });
-
-            $('.data_polizze').select2({
-                dropdownParent: document.body,
-                theme: 'bootstrap4',
-                ajax: {
-                    url: '/polizze',
-                    dataType: 'json'
-                },
-                width: '100%'
-            });
         }
 
     </script>