Luca Parisio 3 ماه پیش
والد
کامیت
2fed779dbd

BIN
.DS_Store


+ 5 - 1
app/Http/Livewire/Istat.php

@@ -260,6 +260,7 @@ class Istat extends Component
                         Log::error('Error in section 1-10 for item ' . $item->id . ': ' . $e->getMessage());
                         $item_data = str_pad($item_data, 20, ' ');
                     }
+                    
                     //11-20
                     try {
                         $sectionStart = strlen($item_data);
@@ -816,6 +817,9 @@ class Istat extends Component
                         $sectionCounts['Section 21-30'] = $sectionLength;
                     } catch (\Exception $e) {
                         Log::error('Error in section 21-30 for item ' . $item->id . ': ' . $e->getMessage());
+                        $item_data .= str_repeat(' ', 250);
+                        $sectionLength = strlen($item_data) - $sectionStart;
+                        $sectionCounts['Section 21-30'] = $sectionLength;
                     }
 
                     try {
@@ -881,8 +885,8 @@ class Istat extends Component
                         
                         // Coordinate
                         //$item_data .= str_repeat(' ', 100);
-                        $item_data .= str_pad($item->latitude, 50, ' ', STR_PAD_LEFT);
                         $item_data .= str_pad($item->longitude, 50, ' ', STR_PAD_LEFT);                    
+                        $item_data .= str_pad($item->latitude, 50, ' ', STR_PAD_LEFT);
 
                         $item_data .= str_repeat(' ', 8);
 

+ 23 - 6
app/Http/Livewire/Report.php

@@ -315,6 +315,9 @@ class Report extends Component
         'fondo_stradale.required' => 'Il campo fondo stradale è obbligatorio ai fini della validazione del verbale',
         'visibilita.required' => 'Il campo visibilita è obbligatorio ai fini della validazione del verbale',
         'particolarita_strada.required' => 'Il campo particolarità strada è obbligatorio ai fini della validazione del verbale',
+        'anag_firstname.required' => 'Il nome è obbligatorio',
+        'anag_lastname.required' => 'Il cognome è obbligatorio',
+        'anag_rag_soc.required' => 'La ragione sociale è obbligatoria',
     ];
 
     public function resetFields()
@@ -895,7 +898,7 @@ class Report extends Component
         $this->emit('load-check', "");
     }
 
-    public function update($validate = false)
+    public function update($validate = false, $print=false)
     {
         if ($validate) {
             $rulesValidate = [
@@ -1207,8 +1210,13 @@ class Report extends Component
             }
 
             session()->flash('success', 'Record aggiornato');
-            $this->resetFields();
-            $this->update = false;
+
+            if (!$print)
+            {
+                $this->update = false;
+                $this->resetFields();
+            }
+
         } catch (\Exception $ex) {
             Log::info('Error during report ' . $this->dataId . ' update:' . $ex->getMessage());
             session()->flash('error', 'Errore (' . $ex->getMessage() . ')');
@@ -1491,7 +1499,7 @@ class Report extends Component
         return true;
     }
 
-    public function print($id)
+    public function print($id, $type='verbale')
     {
         Log::info("Starting PDF generation for report ID: $id");
 
@@ -1602,8 +1610,17 @@ class Report extends Component
         Log::info("Total pages (main + attachments): {$totalPages}");
 
         $data['total_pages'] = $totalPages;
-        $pdf = Pdf::loadView('pdf.verbale', array('data' => $data));
-        $pdfName = "verbale_" . $record->protocollo_num . '_' . $record->protocollo_anno . ".pdf";
+
+        if ($type == 'verbale')
+        {
+            $pdf = Pdf::loadView('pdf.verbale', array('data' => $data));
+            $pdfName = "verbale_" . $record->protocollo_num . '_' . $record->protocollo_anno . ".pdf";
+        }
+        else
+        {
+            $pdf = Pdf::loadView('pdf.parti_coinvolte', array('data' => $data));
+            $pdfName = "parti_coinvolte_" . $record->protocollo_num . '_' . $record->protocollo_anno . ".pdf";
+        }
 
         if ($hasPdfAttachments) {
             try {

+ 17 - 0
app/Http/Livewire/Traits/HasAnagrafica.php

@@ -119,6 +119,23 @@ trait HasAnagrafica{
 
     public function anagraficaSave()
     {
+        
+        $rules = [];
+        if ($this->anag_type == 0)
+        {
+            $rules = [
+                'anag_firstname' => 'required',
+                'anag_lastname' => 'required',
+            ];
+        }
+        else
+        {
+            $rules = [
+                'anag_rag_soc' => 'required'
+            ];
+        }
+
+        $this->validate($rules);
 
         if ($this->currentAnagrafica > 0){
             \App\Models\Anagrafica::whereId($this->currentAnagrafica)->update([

+ 1 - 1
app/Http/Livewire/Traits/HasVeicoli.php

@@ -494,7 +494,7 @@ trait HasVeicoli{
         if ($veicolo > 0)
         {
             $ret = Vehicle::findOrFail($veicolo);
-            return ($ret->marca ? $ret->marca->name : '') . " " . ($ret->modello ? $ret->modello->name : '') . " " . $ret->targa;
+            return $ret->tipo_id == env('VELOCIPEDE', 6) ? 'Velocipede' : ($ret->marca ? $ret->marca->name : '') . " " . ($ret->modello ? $ret->modello->name : '') . " " . $ret->targa;
         }
         return "";
     }

+ 5 - 0
app/Models/Anagrafica.php

@@ -94,6 +94,11 @@ public $timestamps = false;
         return $this->belongsTo(\App\Models\LocationCountry::class, 'anag_foreign_residence_country');
     }
 
+    public function foreign_residence_city_value()
+    {
+        return $this->belongsTo(\App\Models\LocationCountry::class, 'anag_foreign_residence_city');
+    }
+
     public function sede_legale_town_id_value()
     {
         return $this->belongsTo(\App\Models\LocationTown::class, 'sede_legale_town_id');

+ 4 - 4
resources/views/components/report/anagrafica/anagrafica-modal.blade.php

@@ -59,10 +59,10 @@
                             </div>
                             <div class="row mt-3">
                                 <div class="col-md-4">
-                                    <label for="anag_nazionalita" class="form-label">Nazionalità</label>
+                                    <label for="nazionalita" class="form-label">Nazionalità</label>
                                 </div>
                                 <div class="col-md-8">
-                                    <select class="form-control" style="width:100%" wire:model="anag_nazionalita" onchange="toggleNationalityFields()">
+                                    <select class="form-control" style="width:100%" wire:model="nazionalita" onchange="toggleNationalityFields()">
                                         <option value="">
                                         <option value="0">Italiana
                                         <option value="1">Straniera
@@ -357,10 +357,10 @@
                             </div>
                             <div class="row mt-3">
                                 <div class="col-md-4">
-                                    <label for="nazionalita" class="form-label">Paese Sede Legale</label>
+                                    <label for="anag_nazionalita" class="form-label">Paese Sede Legale</label>
                                 </div>
                                 <div class="col-md-8">
-                                    <select class="form-control" style="width:100%" wire:model="nazionalita" onchange="toggleCompanyFields()">
+                                    <select class="form-control" style="width:100%" wire:model="anag_nazionalita" id="anag_nazionalita" onchange="toggleCompanyFields()">
                                         <option value="">
                                         <option value="0">Italia
                                         <option value="1">Estero

+ 3 - 2
resources/views/components/report/modifica/header.blade.php

@@ -10,7 +10,8 @@
             @endif
         </div>
         <div class="col">
-            <a href="{{ route('print.pdf', ['id' => $this->dataId]) }}" target="_blank" class="btn btn-block btn-success float-right">Stampa</a>
+            <button type="submit" class="btn btn-block btn-success float-right" wire:click.prevent="update(false, true)" onclick="printReport({{$this->dataId}})">Stampa</button>            
+            <button type="submit" class="btn btn-block btn-success float-right" wire:click.prevent="update(false, true)" onclick="printPartiCoinvolte({{$this->dataId}})">Parti coinvolte</button>            
         </div>
     </div>
-</div>
+</div>

+ 191 - 138
resources/views/components/verbale/veicolo/conducente.blade.php

@@ -63,167 +63,220 @@
                 </tr>
             </table>
         </td>
-        <td>
-            <table width="100%" class="striped-table">
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">COGNOME:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->lastname ?? '' }}</td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">NOME:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->firstname ?? '' }}</td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">NATO A:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        @if ($datiVeicolo?->conducente?->nazionalita == 0)
-                            {{ $datiVeicolo?->conducente?->birth_town_id_value?->title ?? '' }}
-                        @else
-                            {{ $datiVeicolo?->conducente?->localita_straniera ?? '' }}
-                        @endif
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">NATO IL:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ (!empty($datiVeicolo?->conducente?->birth_date) && Carbon\Carbon::parse($datiVeicolo->conducente->birth_date)->year > 0) ? Carbon\Carbon::parse($datiVeicolo->conducente->birth_date)->format('d/m/Y') : '-' }}
-                    </td>
-                </tr>
+        @if($datiVeicolo?->conducente?->rag_soc != "")
+
+            <td>
+                <table width="100%" class="striped-table">
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">RAGIONE SOCIALE:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->rag_soc ?? '' }}</td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PARTITA IVA:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->vat ?? '' }}</td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PAESE SEDE LEGALE:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->nazionalita == 0 ? 'Italia' : 'Estero' }}</td>
+                    </tr>
+                    @if($datiVeicolo?->conducente?->nazionalita == 0)
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">INDIRIZZO SEDE LEGALE:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->sede_legale_address ?? "" }}</td>
+                        </tr>
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">CAP SEDE LEGALE:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->sede_legale_cap ?? "" }}</td>
+                        </tr>
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PROVINCIA SEDE LEGALE:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->sede_legale_prov_id_value->title ?? "" }}</td>
+                        </tr>
+                    @else
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PAESE STRANIERO SEDE LEGALE:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->foreign_residence_country_value->name ?? "" }}</td>
+                            
+                        </tr> 
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">CITTA' STRANIERA SEDE LEGALE:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->anag_foreign_residence_city ?? "" }}</td>
+                        </tr>    
+                    @endif
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">TELEFONO:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->phone ?? "" }}</td>
+                    </tr>
+                    
+                </table>
+            </td>
+            
+        @else
 
-                @if (!$datiVeicolo?->conducente?->residenza_town_id)
+            <td>
+                <table width="100%" class="striped-table">
+                    
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">COGNOME:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->lastname ?? '' }}</td>
+                    </tr>
                     <tr>
-                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">RESIDENTE A:</td>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">NOME:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente?->firstname ?? '' }}</td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">NATO A:</td>
                         <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                            {{ $datiVeicolo?->conducente?->residenza_town_id_value?->title ?? '' }}
+                            @if ($datiVeicolo?->conducente?->nazionalita == 0)
+                                {{ $datiVeicolo?->conducente?->birth_town_id_value?->title ?? '' }}
+                            @else
+                                {{ $datiVeicolo?->conducente?->localita_straniera ?? '' }}
+                            @endif
                         </td>
                     </tr>
                     <tr>
-                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">RESIDENTE IN:</td>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">NATO IL:</td>
                         <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                            {{ $datiVeicolo?->conducente?->residenza_address ?? '' }}
+                            {{ (!empty($datiVeicolo?->conducente?->birth_date) && Carbon\Carbon::parse($datiVeicolo->conducente->birth_date)->year > 0) ? Carbon\Carbon::parse($datiVeicolo->conducente->birth_date)->format('d/m/Y') : '-' }}
                         </td>
                     </tr>
-                @endif
 
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">TELEFONO:</td>
-                    <td class="veicolo-content-cell">{{ "**********" /*$datiVeicolo?->conducente?->mobile ?? ''*/ }}</td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">INDIRIZZO:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente?->residenza_address ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">COMUNE:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente?->residenza_town_id_value?->title ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PROVINCIA:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente?->residenza_provincia_id_value?->sigla ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">CONDUCENTE INFORTUNATO:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $infortunatoStatus[$datiVeicolo?->infortunato] ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">GENERALIZZATO:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $generalizzatoStatus[$datiVeicolo?->generalizzato] ?? '' }}
-                        @if ($datiVeicolo?->generalizzato == 3)
-                            {{ $datiVeicolo?->generalizzato_altrove ?? '' }}
-                        @endif
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE AL SEGUITO:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->patente_al_seguito == 1 ? 'SI' : ($datiVeicolo?->patente_al_seguito == 2 ? 'NO' : 'NON PREVISTA') }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE CATEGORIA:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente?->documento_patente_cat ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE NUMERO:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente?->documento_numero ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE RILASCIATA DA:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $rilasciataDaMap[$datiVeicolo?->conducente?->documento_rilasciato_da] ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE RILASCIATA IL:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ (!empty($datiVeicolo?->conducente?->documento_rilasciato_il) && Carbon\Carbon::parse($datiVeicolo->conducente->documento_rilasciato_il)->year > 0) ? Carbon\Carbon::parse($datiVeicolo->conducente->documento_rilasciato_il)->format('d/m/Y') : '-' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE SCADENZA IL:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ (!empty($datiVeicolo?->conducente?->documento_scadenza_il) && Carbon\Carbon::parse($datiVeicolo->conducente->documento_scadenza_il)->year > 0) ? Carbon\Carbon::parse($datiVeicolo->conducente->documento_scadenza_il)->format('d/m/Y') : '-' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE PRESCRIZIONI:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $prescrizioniMap[$datiVeicolo?->conducente_patente_prescrizioni] ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">LIMITAZIONI:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente_patente_limitazioni_art_117_1 ?? '' }}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">ALTRE LIMITAZIONI:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                        {{ $datiVeicolo?->conducente_patente_limitazioni_art_117_2 ?? '' }}
-                    </td>
-                </tr>
+                    @if (!$datiVeicolo?->conducente?->residenza_town_id)
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">RESIDENTE A:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                                {{ $datiVeicolo?->conducente?->residenza_town_id_value?->title ?? '' }}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">RESIDENTE IN:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                                {{ $datiVeicolo?->conducente?->residenza_address ?? '' }}
+                            </td>
+                        </tr>
+                    @endif
 
-                @if ($datiVeicolo?->conducente_patente_abilitazione)
                     <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">LIMITAZIONI:</td>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">ABILITAZIONE:</td>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">TELEFONO:</td>
+                        <td class="veicolo-content-cell">{{ "**********" /*$datiVeicolo?->conducente?->mobile ?? ''*/ }}</td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">INDIRIZZO:</td>
                         <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                            {{ $abilitazioneMap[$datiVeicolo?->conducente_patente_abilitazione] ?? '' }}
+                            {{ $datiVeicolo?->conducente?->residenza_address ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">COMUNE:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $datiVeicolo?->conducente?->residenza_town_id_value?->title ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PROVINCIA:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $datiVeicolo?->conducente?->residenza_provincia_id_value?->sigla ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">CONDUCENTE INFORTUNATO:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $infortunatoStatus[$datiVeicolo?->infortunato] ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">GENERALIZZATO:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $generalizzatoStatus[$datiVeicolo?->generalizzato] ?? '' }}
+                            @if ($datiVeicolo?->generalizzato == 3)
+                                {{ $datiVeicolo?->generalizzato_altrove ?? '' }}
+                            @endif
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE AL SEGUITO:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $datiVeicolo?->patente_al_seguito == 1 ? 'SI' : ($datiVeicolo?->patente_al_seguito == 2 ? 'NO' : 'NON PREVISTA') }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE CATEGORIA:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $datiVeicolo?->conducente?->documento_patente_cat ?? '' }}
                         </td>
                     </tr>
                     <tr>
-                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE ABILITAZIONE RILASCIATA DA:</td>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE NUMERO:</td>
                         <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                            {{ $datiVeicolo?->conducente_patente_abilitazione_rilasciata_da == 1 ? 'Comune' : 'Motorizzazione' }}
+                            {{ $datiVeicolo?->conducente?->documento_numero ?? '' }}
                         </td>
                     </tr>
                     <tr>
-                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE ABILITAZIONE RILASCIATA IL:</td>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE RILASCIATA DA:</td>
                         <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
-                            {{ DateHelper::formatDate($datiVeicolo?->conducente_patente_abilitazione_rilasciata_il ?? null) }}
+                            {{ $rilasciataDaMap[$datiVeicolo?->conducente?->documento_rilasciato_da] ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE RILASCIATA IL:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ (!empty($datiVeicolo?->conducente?->documento_rilasciato_il) && Carbon\Carbon::parse($datiVeicolo->conducente->documento_rilasciato_il)->year > 0) ? Carbon\Carbon::parse($datiVeicolo->conducente->documento_rilasciato_il)->format('d/m/Y') : '-' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE SCADENZA IL:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ (!empty($datiVeicolo?->conducente?->documento_scadenza_il) && Carbon\Carbon::parse($datiVeicolo->conducente->documento_scadenza_il)->year > 0) ? Carbon\Carbon::parse($datiVeicolo->conducente->documento_scadenza_il)->format('d/m/Y') : '-' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE PRESCRIZIONI:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $prescrizioniMap[$datiVeicolo?->conducente_patente_prescrizioni] ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">LIMITAZIONI:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $datiVeicolo?->conducente_patente_limitazioni_art_117_1 ?? '' }}
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">ALTRE LIMITAZIONI:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                            {{ $datiVeicolo?->conducente_patente_limitazioni_art_117_2 ?? '' }}
                         </td>
                     </tr>
-                @endif
 
-                <tr>
-                    <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDICENTE:</td>
-                    <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente_sedicente ?? '' }}</td>
-                </tr>
-            </table>
-        </td>
+                    @if ($datiVeicolo?->conducente_patente_abilitazione)
+                        <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">LIMITAZIONI:</td>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">ABILITAZIONE:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                                {{ $abilitazioneMap[$datiVeicolo?->conducente_patente_abilitazione] ?? '' }}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE ABILITAZIONE RILASCIATA DA:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                                {{ $datiVeicolo?->conducente_patente_abilitazione_rilasciata_da == 1 ? 'Comune' : 'Motorizzazione' }}
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">PATENTE ABILITAZIONE RILASCIATA IL:</td>
+                            <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">
+                                {{ DateHelper::formatDate($datiVeicolo?->conducente_patente_abilitazione_rilasciata_il ?? null) }}
+                            </td>
+                        </tr>
+                    @endif
+
+                    <tr>
+                        <td class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDICENTE:</td>
+                        <td class="veicolo-content-cell" style="padding-bottom: 10px !important;">{{ $datiVeicolo?->conducente_sedicente ?? '' }}</td>
+                    </tr>
+                </table>
+            </td>
+            
+        @endif
     </tr>
 </table>

+ 26 - 26
resources/views/components/verbale/veicolo/proprietario.blade.php

@@ -54,32 +54,32 @@
                             </td>
                         </tr>
                         @if ($datiVeicolo?->proprietario?->anag_foreign_residence_country)
-                        <tr>
-                            <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - PAESE ESTERO:</td>
-                            <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
-                                {{ $datiVeicolo?->proprietario?->foreign_residence_country_value?->name ?? '' }}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - CITTA ESTERO:</td>
-                            <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
-                                {{ $datiVeicolo?->proprietario?->anag_foreign_residence_city ?? '' }}
-                            </td>
-                        </tr>
-                    @else
-                        <tr>
-                            <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - COMUNE:</td>
-                            <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
-                                {{ $datiVeicolo?->proprietario?->sede_legale_town_id_value?->title ?? '' }}
-                            </td>
-                        </tr>
-                        <tr>
-                            <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - PROVINCIA:</td>
-                            <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
-                                {{ $datiVeicolo?->proprietario?->sede_legale_prov_id_value?->title ?? '' }}
-                            </td>
-                        </tr>
-                    @endif
+                            <tr>
+                                <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - PAESE ESTERO:</td>
+                                <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
+                                    {{ $datiVeicolo?->proprietario?->foreign_residence_country_value?->name ?? '' }}
+                                </td>
+                            </tr>
+                            <tr>
+                                <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - CITTA ESTERO:</td>
+                                <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
+                                    {{ $datiVeicolo?->proprietario?->anag_foreign_residence_city ?? '' }}
+                                </td>
+                            </tr>
+                        @else
+                            <tr>
+                                <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - COMUNE:</td>
+                                <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
+                                    {{ $datiVeicolo?->proprietario?->sede_legale_town_id_value?->title ?? '' }}
+                                </td>
+                            </tr>
+                            <tr>
+                                <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - PROVINCIA:</td>
+                                <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">
+                                    {{ $datiVeicolo?->proprietario?->sede_legale_prov_id_value?->title ?? '' }}
+                                </td>
+                            </tr>
+                        @endif
                         <tr>
                             <td width="25%" class="veicolo-title-cell" style="padding-bottom: 10px !important;">SEDE LEGALE - INDIRIZZO:</td>
                             <td width="75%" class="veicolo-content-cell" colspan="3" style="padding-bottom: 10px !important;">

+ 18 - 2
resources/views/livewire/report.blade.php

@@ -387,6 +387,12 @@
             toggleNationalityFields();
             toggleResidenceFields();
         }, 200);
+
+        const isPGStraniera = $("#anag_nazionalita").val() === "1";
+        $("#foreignPGResidenceCountry")[isPGStraniera ? 'show' : 'hide']();
+        $("#foreignPGResidenceCity")[isPGStraniera ? 'show' : 'hide']();
+        $("#italianAddressFields")[isPGStraniera ? 'hide' : 'show']();
+
     }
 
     initializeModalState();
@@ -432,7 +438,7 @@
     });
 
     // Gestione per le aziende (persona giuridica)
-    $('select[wire\\:model="nazionalita"]').change(function () {
+    $('select[wire\\:model="anag_nazionalita"]').change(function () {
         const isPGStraniera = $(this).val() === "1";
         $("#foreignPGResidenceCountry")[isPGStraniera ? 'show' : 'hide']();
         $("#foreignPGResidenceCity")[isPGStraniera ? 'show' : 'hide']();
@@ -844,7 +850,17 @@
             @this.set('valida_al', $(this).val());
         });
 
-        
+        function printReport(id) {
+            setTimeout(function() {
+                window.open("/print-pdf/" + id); 
+            }, 500);
+        }        
+
+        function printPartiCoinvolte(id) {
+            setTimeout(function() {
+                window.open("/print-pdf/" + id + "/parti-coinvolte"); 
+            }, 500);
+        }        
 
     </script>
 

+ 148 - 0
resources/views/pdf/parti_coinvolte.blade.php

@@ -0,0 +1,148 @@
+@php
+    use App\Helpers\PoliziaUtils;
+    use App\Helpers\DateHelper;
+
+@endphp
+<!DOCTYPE html>
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style>
+    body {
+        font-family: Helvetica, sans-serif;
+        color: rgb(80, 80, 80);
+        font-size: 13px;
+    }
+
+    *,
+    table,
+    table tr,
+    table tr td {
+        text-transform: uppercase !important;
+    }
+
+    .table-content {
+        border: solid 1px #333;
+        padding: 10px 0;
+        border-collapse: collapse;
+    }
+
+    .tr-title td {
+        font-weight: bold;
+    }
+
+    .veicolo-title-cell {
+        font-weight: bold;
+        border: 0 none !important;
+        padding: 0px;
+    }
+
+    .veicolo-content-cell {
+        border: 0 none !important;
+        padding: 0px;
+    }
+
+    .tr-sub-title {
+        font-size: 0.9em;
+    }
+
+    .bold {
+        font-weight: bold;
+    }
+
+    .no-border {
+        border: 0 none !important;
+    }
+
+    .footer {
+        text-align: center;
+    }
+
+    span.signature {
+        width: 100% !important;
+        height: 1px !important;
+        display: block;
+        border-bottom: 1px solid #333333;
+    }
+
+    .page-break {
+        page-break-after: always;
+    }
+
+    .total-pages:before {
+        content: counter(pages);
+    }
+</style>
+
+<body>
+    <x-verbale.intestazione.index :data="$data" />
+
+    <x-verbale.header.header :data="$data" />
+
+    <p></p>
+    <p align="center">
+        Verbale redatto con sistemi meccanizzati ed archiviato in formato elettronico da personale autorizzato dal
+        comando in intestazione.
+    </p>
+
+    <div class="page-break"></div>
+
+    <x-verbale.veicoli.index :data="$data" />
+    
+    @php
+
+        $vehicles = collect($data['parti_coinvolte'])->filter(function ($item) {
+            return $item->conducente_o_pedone == 2;
+        });
+
+        $pedestrians = collect($data['parti_coinvolte'])->filter(function ($item) {
+            return $item->conducente_o_pedone == 1;
+        });
+
+        $vehicleNumber = 0;
+    @endphp
+
+    @foreach ($vehicles as $parte)
+        @php
+            $datiVeicolo = $data['datiVeicolo'][$parte->progressive];
+            $datiPasseggeri = App\Models\ReportDataPasseggeri::with('passeggero_value')
+                ->where('report_id', $data['record']->id)
+                ->get()
+                ->groupBy('progressive');
+            $datiInfortunati = App\Models\ReportDataInfortunati::with('infortunato_value')
+                ->where('report_id', $data['record']->id)
+                ->get()
+                ->groupBy('progressive');
+
+
+        @endphp
+
+        <div class="page-break"></div>
+
+        <table width="100%">
+            <tr>
+                <td width="100%" valign="top" align="center" style="border:none!important">
+                    <h2>DATI VEICOLO</h2>
+                </td>
+            </tr>
+        </table>
+
+        <x-verbale.veicolo.dettaglio :parte="$parte" :datiVeicolo="$datiVeicolo" :vehicleNumber="$vehicleNumber" />
+        @php $vehicleNumber++; @endphp
+
+        <x-verbale.veicolo.proprietario :datiVeicolo="$datiVeicolo" />
+
+        <x-verbale.veicolo.conducente :datiVeicolo="$datiVeicolo" />
+
+        @if ($datiVeicolo?->polizze > 0)
+            <x-verbale.veicolo.assicurazione :datiVeicolo="$datiVeicolo" />
+        @endif
+
+        <div class="page-break"></div>
+
+    @endforeach
+
+    </table>
+
+</body>
+
+</html>

+ 1 - 1
routes/web.php

@@ -336,7 +336,7 @@ Route::get('/test_targa/{targa}', function ($targa) {
     }
 
 });
-Route::get('/print-pdf/{id}', [Report::class, 'print'])->name('print.pdf');
+Route::get('/print-pdf/{id}/{type?}', [Report::class, 'print'])->name('print.pdf');
 
 Route::get('/countries', function() {
     $search = request()->get('search');