HasAnagrafica.php 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602
  1. <?php
  2. namespace App\Http\Livewire\Traits;
  3. use App\Models\ReportDataPartiCoinvolte;
  4. use App\Models\ReportDataVeicoli;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Facades\DB;
  7. trait HasAnagrafica{
  8. public $currentAnagrafica;
  9. public $anag_firstname;
  10. public $anag_lastname;
  11. public $anag_gender;
  12. public $anag_birth_date;
  13. public $anag_birth_town_id;
  14. public $anag_birth_prov_id;
  15. public $anag_residenza_town_id;
  16. public $anag_residenza_prov_id;
  17. public $anag_residenza_address;
  18. public $anag_residenza_cap;
  19. public $anag_mobile;
  20. public $anag_sedicente;
  21. public $anag_documento_tipo;
  22. public $anag_documento_patente_cat;
  23. public $anag_documento_tipo_altro;
  24. public $anag_documento_numero;
  25. public $anag_documento_rilasciato_da;
  26. public $anag_documento_rilasciato_da_altro;
  27. public $anag_foreign_country;
  28. public $anag_documento_rilasciato_da_di_foreign_localita;
  29. public $anag_documento_rilasciato_da_di_foreign_country;
  30. public $anag_documento_rilasciato_da_prov_id;
  31. public $anag_documento_rilasciato_da_town_id;
  32. public $anag_documento_rilasciato_il;
  33. public $anag_documento_scadenza_il;
  34. public $anag_state;
  35. public $anag_nazionalita;
  36. public $anag_nazione_straniera;
  37. public $anag_localita_straniera;
  38. public $anag_rag_soc;
  39. public $anag_vat;
  40. public $anag_sede_legale_town_id;
  41. public $anag_sede_legale_prov_id;
  42. public $anag_sede_legale_address;
  43. public $anag_sede_legale_cap;
  44. public $anag_phone;
  45. public $anag_foreign_birth_country;
  46. public $anag_foreign_birth_city;
  47. public $anag_foreign_residence_country;
  48. public $anag_foreign_residence_city;
  49. public $anag_residenza_tipo;
  50. public function editAnagrafica($anagrafica)
  51. {
  52. $this->resetAnagrafica();
  53. $anag = \App\Models\Anagrafica::where('id', $anagrafica)->first();
  54. if ($anag != null){
  55. $this->currentAnagrafica = $anagrafica;
  56. $this->anag_type = $anag->type;
  57. $this->anag_firstname = $anag->firstname;
  58. $this->anag_lastname = $anag->lastname;
  59. $this->anag_gender = $anag->gender;
  60. $this->anag_birth_date = $anag->birth_date;
  61. $this->anag_birth_town_id = $anag->birth_town_id;
  62. $this->anag_birth_prov_id = $anag->birth_prov_id;
  63. $this->anag_residenza_town_id = $anag->residenza_town_id;
  64. $this->anag_residenza_prov_id = $anag->residenza_prov_id;
  65. $this->anag_residenza_address = $anag->residenza_address;
  66. $this->anag_residenza_cap = $anag->residenza_cap;
  67. $this->anag_mobile = $anag->mobile;
  68. $this->anag_sedicente = $anag->sedicente;
  69. $this->anag_documento_tipo = $anag->documento_tipo;
  70. $this->anag_documento_patente_cat = $anag->documento_patente_cat;
  71. $this->anag_documento_tipo_altro = $anag->documento_tipo_altro;
  72. $this->anag_documento_numero = $anag->documento_numero;
  73. $this->anag_documento_rilasciato_da = $anag->documento_rilasciato_da;
  74. $this->anag_documento_rilasciato_da_altro = $anag->documento_rilasciato_da_altro;
  75. $this->anag_foreign_country = $anag->foreign_country;
  76. $this->anag_documento_rilasciato_da_di_foreign_localita = $anag->documento_rilasciato_da_di_foreign_localita;
  77. $this->anag_documento_rilasciato_da_di_foreign_country = $anag->documento_rilasciato_da_di_foreign_country;
  78. $this->anag_documento_rilasciato_da_prov_id = $anag->documento_rilasciato_da_prov_id;
  79. $this->anag_documento_rilasciato_da_town_id = $anag->documento_rilasciato_da_town_id;
  80. $this->anag_documento_rilasciato_il = $anag->documento_rilasciato_il;
  81. $this->anag_documento_scadenza_il = $anag->documento_scadenza_il;
  82. $this->anag_state = $anag->state;
  83. $this->anag_nazionalita = $anag->nazionalita;
  84. $this->anag_nazione_straniera = $anag->nazione_straniera;
  85. $this->anag_localita_straniera = $anag->localita_straniera;
  86. $this->anag_rag_soc = $anag->rag_soc;
  87. $this->anag_vat = $anag->vat;
  88. $this->anag_sede_legale_town_id = $anag->sede_legale_town_id;
  89. $this->anag_sede_legale_prov_id = $anag->sede_legale_prov_id;
  90. $this->anag_sede_legale_address = $anag->sede_legale_address;
  91. $this->anag_sede_legale_cap = $anag->sede_legale_cap;
  92. $this->anag_phone = $anag->phone;
  93. $this->anag_foreign_birth_country = $anag->anag_foreign_birth_country;
  94. $this->anag_foreign_birth_city = $anag->anag_foreign_birth_city;
  95. $this->anag_foreign_residence_country = $anag->anag_foreign_residence_country;
  96. $this->anag_foreign_residence_city = $anag->anag_foreign_residence_city;
  97. $this->anag_residenza_tipo = $anag->residenza_tipo;
  98. }
  99. $this->emit('load-anagrafica-modal');
  100. $this->emit('change-visualization', $this->anag_type);
  101. if ($this->anag_birth_town_id > 0)
  102. $this->emit('add-default-value', $this->anag_birth_town_id, $this->getLocalita($this->anag_birth_town_id), 'anag_birth_town_id');
  103. if ($this->anag_residenza_town_id > 0)
  104. $this->emit('add-default-value', $this->anag_residenza_town_id, $this->getLocalita($this->anag_residenza_town_id), 'anag_residenza_town_id');
  105. if ($this->anag_documento_rilasciato_da_di_foreign_localita > 0)
  106. $this->emit('add-default-value', $this->anag_documento_rilasciato_da_di_foreign_localita, $this->getLocalita($this->anag_documento_rilasciato_da_di_foreign_localita), 'anag_documento_rilasciato_da_di_foreign_localita');
  107. if ($this->vei_carta_circolazione_rilasciata_da_di_foreign_localita > 0)
  108. $this->emit('add-default-value', $this->vei_carta_circolazione_rilasciata_da_di_foreign_localita, $this->getLocalita($this->vei_carta_circolazione_rilasciata_da_di_foreign_localita), 'vei_carta_circolazione_rilasciata_da_di_foreign_localita');
  109. if ($this->anag_sede_legale_town_id > 0)
  110. $this->emit('add-default-value', $this->anag_sede_legale_town_id, $this->getLocalita($this->anag_sede_legale_town_id), 'anag_sede_legale_town_id');
  111. }
  112. public function anagraficaSave()
  113. {
  114. if ($this->currentAnagrafica > 0){
  115. \App\Models\Anagrafica::whereId($this->currentAnagrafica)->update([
  116. 'type' => $this->anag_type,
  117. 'firstname' => $this->anag_firstname,
  118. 'lastname' => $this->anag_lastname,
  119. 'gender' => $this->anag_gender,
  120. 'birth_date' => $this->anag_birth_date,
  121. 'birth_town_id' => $this->anag_birth_town_id,
  122. 'birth_prov_id' => $this->anag_birth_prov_id,
  123. 'residenza_town_id' => $this->anag_residenza_town_id,
  124. 'residenza_prov_id' => $this->anag_residenza_prov_id,
  125. 'residenza_address' => $this->anag_residenza_address,
  126. 'residenza_cap' => $this->anag_residenza_cap,
  127. 'mobile' => $this->anag_mobile,
  128. 'sedicente' => $this->anag_sedicente,
  129. 'documento_tipo' => $this->anag_documento_tipo,
  130. 'documento_patente_cat' => $this->anag_documento_patente_cat,
  131. 'documento_tipo_altro' => $this->anag_documento_tipo_altro,
  132. 'documento_numero' => $this->anag_documento_numero,
  133. 'documento_rilasciato_da' => $this->anag_documento_rilasciato_da,
  134. 'documento_rilasciato_da_altro' => $this->anag_documento_rilasciato_da_altro,
  135. 'foreign_country' => $this->anag_foreign_country,
  136. 'documento_rilasciato_da_di_foreign_localita' => $this->anag_documento_rilasciato_da_di_foreign_localita,
  137. 'documento_rilasciato_da_di_foreign_country' => $this->anag_documento_rilasciato_da_di_foreign_country,
  138. 'documento_rilasciato_da_prov_id' => $this->anag_documento_rilasciato_da_prov_id,
  139. 'documento_rilasciato_da_town_id' => $this->anag_documento_rilasciato_da_town_id,
  140. 'documento_rilasciato_il' => $this->anag_documento_rilasciato_il,
  141. 'documento_scadenza_il' => $this->anag_documento_scadenza_il,
  142. 'state' => $this->anag_state,
  143. 'nazionalita' => $this->anag_nazionalita,
  144. 'nazione_straniera' => $this->anag_nazione_straniera,
  145. 'localita_straniera' => $this->anag_localita_straniera,
  146. 'rag_soc' => $this->anag_rag_soc,
  147. 'vat' => $this->anag_vat,
  148. 'sede_legale_town_id' => $this->anag_sede_legale_town_id,
  149. 'sede_legale_prov_id' => $this->anag_sede_legale_prov_id,
  150. 'sede_legale_address' => $this->anag_sede_legale_address,
  151. 'sede_legale_cap' => $this->anag_sede_legale_cap,
  152. 'phone' => $this->anag_phone,
  153. 'anag_foreign_birth_country' => $this->anag_foreign_birth_country,
  154. 'anag_foreign_birth_city' => $this->anag_foreign_birth_city,
  155. 'anag_foreign_residence_country' => $this->anag_foreign_residence_country,
  156. 'anag_foreign_residence_city' => $this->anag_foreign_residence_city,
  157. 'residenza_tipo' => $this->anag_residenza_tipo
  158. ]);
  159. } else {
  160. $anagrafica = \App\Models\Anagrafica::create([
  161. 'type' => $this->anag_type,
  162. 'firstname' => $this->anag_firstname,
  163. 'lastname' => $this->anag_lastname,
  164. 'gender' => $this->anag_gender,
  165. 'birth_date' => $this->anag_birth_date,
  166. 'birth_town_id' => $this->anag_birth_town_id,
  167. 'birth_prov_id' => $this->anag_birth_prov_id,
  168. 'residenza_town_id' => $this->anag_residenza_town_id,
  169. 'residenza_prov_id' => $this->anag_residenza_prov_id,
  170. 'residenza_address' => $this->anag_residenza_address,
  171. 'residenza_cap' => $this->anag_residenza_cap,
  172. 'mobile' => $this->anag_mobile,
  173. 'sedicente' => $this->anag_sedicente,
  174. 'documento_tipo' => $this->anag_documento_tipo,
  175. 'documento_patente_cat' => $this->anag_documento_patente_cat,
  176. 'documento_tipo_altro' => $this->anag_documento_tipo_altro,
  177. 'documento_numero' => $this->anag_documento_numero,
  178. 'documento_rilasciato_da' => $this->anag_documento_rilasciato_da,
  179. 'documento_rilasciato_da_altro' => $this->anag_documento_rilasciato_da_altro,
  180. 'foreign_country' => $this->anag_foreign_country,
  181. 'documento_rilasciato_da_di_foreign_localita' => $this->anag_documento_rilasciato_da_di_foreign_localita,
  182. 'documento_rilasciato_da_di_foreign_country' => $this->anag_documento_rilasciato_da_di_foreign_country,
  183. 'documento_rilasciato_da_prov_id' => $this->anag_documento_rilasciato_da_prov_id,
  184. 'documento_rilasciato_da_town_id' => $this->anag_documento_rilasciato_da_town_id,
  185. 'documento_rilasciato_il' => $this->anag_documento_rilasciato_il,
  186. 'documento_scadenza_il' => $this->anag_documento_scadenza_il,
  187. 'state' => $this->anag_state,
  188. 'nazionalita' => $this->anag_nazionalita,
  189. 'nazione_straniera' => $this->anag_nazione_straniera,
  190. 'localita_straniera' => $this->anag_localita_straniera,
  191. 'rag_soc' => $this->anag_rag_soc,
  192. 'vat' => $this->anag_vat,
  193. 'sede_legale_town_id' => $this->anag_sede_legale_town_id,
  194. 'sede_legale_prov_id' => $this->anag_sede_legale_prov_id,
  195. 'sede_legale_address' => $this->anag_sede_legale_address,
  196. 'sede_legale_cap' => $this->anag_sede_legale_cap,
  197. 'phone' => $this->anag_phone,
  198. 'residenza_tipo' => $this->anag_residenza_tipo
  199. ]);
  200. $set = false;
  201. if ($this->currentTeste > 0){
  202. $set = true;
  203. if ($this->currentTeste == 1)
  204. $this->data_testi_oculari_0 = $anagrafica->id;
  205. if ($this->currentTeste == 2)
  206. $this->data_testi_oculari_1 = $anagrafica->id;
  207. if ($this->currentTeste == 3)
  208. $this->data_testi_oculari_2 = $anagrafica->id;
  209. if ($this->currentTeste == 4)
  210. $this->data_testi_oculari_3 = $anagrafica->id;
  211. }
  212. if ($this->currentProprietario > 0){
  213. $set = true;
  214. $this->data_proprietari = $anagrafica->id;
  215. $this->emit('add-default-value', $this->data_proprietari, $this->getAnagrafica($this->data_proprietari), 'data_proprietari');
  216. }
  217. if ($this->currentCoproprietario > 0){
  218. $set = true;
  219. $this->data_coproprietari = $anagrafica->id;
  220. $this->emit('add-default-value', $this->data_coproprietari, $this->getAnagrafica($this->data_coproprietari), 'data_coproprietari');
  221. }
  222. if ($this->currentPasseggero > 0){
  223. $set = true;
  224. if ($this->currentPasseggero == 1){
  225. $this->data_passeggero_0 = $anagrafica->id;
  226. $this->emit('add-default-value', $this->data_passeggero_0, $this->getAnagrafica($this->data_passeggero_0), 'data_passeggero_0');
  227. }
  228. if ($this->currentPasseggero == 2){
  229. $this->data_passeggero_1 = $anagrafica->id;
  230. $this->emit('add-default-value', $this->data_passeggero_1, $this->getAnagrafica($this->data_passeggero_1), 'data_passeggero_1');
  231. }
  232. if ($this->currentPasseggero == 3){
  233. $this->data_passeggero_2 = $anagrafica->id;
  234. $this->emit('add-default-value', $this->data_passeggero_2, $this->getAnagrafica($this->data_passeggero_2), 'data_passeggero_2');
  235. }
  236. if ($this->currentPasseggero == 4){
  237. $this->data_passeggero_3 = $anagrafica->id;
  238. $this->emit('add-default-value', $this->data_passeggero_3, $this->getAnagrafica($this->data_passeggero_3), 'data_passeggero_3');
  239. }
  240. }
  241. if ($this->currentInfortunato > 0){
  242. $set = true;
  243. if ($this->currentInfortunato == 1){
  244. $this->data_infortunato_extra_0 = $anagrafica->id;
  245. $this->emit('add-default-value', $this->data_infortunato_extra_0, $this->getAnagrafica($this->data_infortunato_extra_0), 'data_infortunato_extra_0');
  246. }
  247. if ($this->currentInfortunato == 2){
  248. $this->data_infortunato_extra_1 = $anagrafica->id;
  249. $this->emit('add-default-value', $this->data_infortunato_extra_1, $this->getAnagrafica($this->data_infortunato_extra_1), 'data_infortunato_extra_1');
  250. }
  251. if ($this->currentInfortunato == 3){
  252. $this->data_infortunato_extra_2 = $anagrafica->id;
  253. $this->emit('add-default-value', $this->data_infortunato_extra_2, $this->getAnagrafica($this->data_infortunato_extra_2), 'data_infortunato_extra_2');
  254. }
  255. if ($this->currentInfortunato == 4){
  256. $this->data_infortunato_extra_3 = $anagrafica->id;
  257. $this->emit('add-default-value', $this->data_infortunato_extra_3, $this->getAnagrafica($this->data_infortunato_extra_3), 'data_infortunato_extra_3');
  258. }
  259. }
  260. if ($this->currentConducente > 0){
  261. $set = true;
  262. $this->data_conducenti = $anagrafica->id;
  263. $this->emit('add-default-value', $this->data_conducenti, $this->getAnagrafica($this->data_conducenti), 'data_conducenti');
  264. }
  265. if ($this->currentProgressive > -1 && !$set){
  266. $this->updateAnagraficaParteCoinvolta($anagrafica->id, $this->currentProgressive);
  267. }
  268. }
  269. $this->resetAnagrafica();
  270. $this->emit('close-modal');
  271. }
  272. public function anagraficaDataParteComuneSave(){
  273. // Start a database transaction to ensure data consistency
  274. DB::beginTransaction();
  275. try {
  276. $veicolo = ReportDataVeicoli::where('progressive', $this->currentProgressive)
  277. ->where('report_id', $this->dataId)
  278. ->first();
  279. if ($veicolo) {
  280. $conducente = $veicolo->conducente;
  281. if ($conducente) {
  282. $conducente_uguale_proprietario = ($this->data_proprietari == $conducente->id);
  283. } else {
  284. $conducente_uguale_proprietario = false;
  285. }
  286. } else {
  287. $conducente_uguale_proprietario = false;
  288. }
  289. // Update ReportDataVeicoli instead of delete/create
  290. $veicolo = ReportDataVeicoli::updateOrCreate(
  291. [
  292. 'progressive' => $this->currentProgressive,
  293. 'report_id' => $this->dataId
  294. ],
  295. [
  296. 'veicolo' => $this->currentVeicolo,
  297. 'chilometri_percorsi' => $this->data_chilometri_percorsi,
  298. 'stato_veicolo' => $this->data_stato_veicolo,
  299. 'polizze' => $this->data_polizze,
  300. 'proprietari' => $this->data_proprietari,
  301. 'conducente_uguale_proprietario'=> $conducente_uguale_proprietario,
  302. 'coproprietari' => $this->data_coproprietari,
  303. 'infortunato' => $this->data_infortunato,
  304. 'infortunato_ospedale' => $this->data_infortunato_ospedale,
  305. 'patente_al_seguito' => $this->data_patente_al_seguito,
  306. 'generalizzato' => $this->data_generalizzato,
  307. 'generalizzato_altrove' => $this->data_generalizzato_altrove,
  308. 'posizione_statica_finale' => $this->data_posizione_statica_finale,
  309. 'danni_visibili_riportati' => $this->data_danni_visibili_riportati,
  310. 'danni_visibili_pre_esistenti' => $this->data_danni_visibili_pre_esistenti,
  311. 'destinazione_veicolo' => $this->data_destinazione_veicolo,
  312. 'destinazione_veicolo_affidato_a' => $this->data_destinazione_veicolo_affidato_a,
  313. 'destinazione_veicolo_sequestro_num_art' => $this->data_destinazione_veicolo_sequestro_num_art,
  314. 'destinazione_veicolo_amministrativo_num' => $this->data_destinazione_veicolo_amministrativo_num,
  315. 'destinazione_veicolo_amministrativo_num_art_violato' => $this->data_destinazione_veicolo_amministrativo_num_art_violato,
  316. 'destinazione_veicolo_amministrativo_cds' => $this->data_destinazione_veicolo_amministrativo_cds,
  317. 'circostanze_presunte_incidente' => $this->data_circostanze_presunte_incidente,
  318. 'stato_pneumatici' => $this->data_stato_pneumatici,
  319. 'marca_pneumatici' => $this->data_marca_pneumatici,
  320. 'misura_pneumatici' => $this->data_misura_pneumatici,
  321. 'dispositivi_ottici' => $this->data_dispositivi_ottici,
  322. 'tergicristalli' => $this->data_tergicristalli,
  323. 'segnale_pericolo' => $this->data_segnale_pericolo,
  324. 'abs' => $this->data_abs,
  325. 'gps' => $this->data_gps,
  326. 'marcia_inserita' => $this->data_marcia_inserita,
  327. 'cristallo' => $this->data_cristallo,
  328. 'cristallo_posizione' => $this->data_cristallo_posizione,
  329. 'specchio_retrovisore' => $this->data_specchio_retrovisore,
  330. 'specchio_lat_dx' => $this->data_specchio_lat_dx,
  331. 'specchio_lat_sx' => $this->data_specchio_lat_sx,
  332. 'attivazione_airbag' => $this->data_attivazione_airbag,
  333. 'airbag_posizione' => $this->data_airbag_posizione,
  334. 'alcool_test' => $this->data_alcool_test,
  335. 'alcool_test_esito' => $this->data_alcool_test_esito,
  336. 'drug_test' => $this->data_drug_test,
  337. 'drug_test_esito' => $this->data_drug_test_esito,
  338. 'sistema_ritenuta_minori' => $this->data_sistema_ritenuta_minori,
  339. 'sistema_ritenuta_minori_omologazione' => $this->data_sistema_ritenuta_minori_omologazione,
  340. 'verbale_violazione_numero_1' => $this->data_verbale_violazione_numero_1,
  341. 'articolo_violato_1' => $this->data_articolo_violato_1,
  342. 'cds_1' => $this->data_cds_1,
  343. 'verbale_violazione_numero_2' => $this->data_verbale_violazione_numero_2,
  344. 'articolo_violato_2' => $this->data_articolo_violato_2,
  345. 'cds_2' => $this->data_cds_2,
  346. 'verbale_violazione_numero_3' => $this->data_verbale_violazione_numero_3,
  347. 'articolo_violato_3' => $this->data_articolo_violato_3,
  348. 'cds_3' => $this->data_cds_3,
  349. 'conducente_patente_numero' => $this->data_conducente_patente_numero,
  350. 'conducente_patente_categoria' => $this->data_conducente_patente_categoria,
  351. 'conducente_patente_rilasciata_da' => $this->data_conducente_patente_rilasciata_da,
  352. 'conducente_patente_rilasciata_da_altro' => $this->data_conducente_patente_rilasciata_da_altro,
  353. 'conducente_patente_rilasciata_il' => $this->data_conducente_patente_rilasciata_il,
  354. 'conducente_patente_scadenza' => $this->data_conducente_patente_scadenza,
  355. 'conducente_patente_prescrizioni' => $this->data_conducente_patente_prescrizioni,
  356. 'conducente_patente_limitazioni_art_117_1' => $this->data_conducente_patente_limitazioni_art_117_1,
  357. 'conducente_patente_limitazioni_art_117_2' => $this->data_conducente_patente_limitazioni_art_117_2,
  358. 'conducente_patente_abilitazione' => $this->data_conducente_patente_abilitazione,
  359. 'conducente_patente_abilitazione_numero' => $this->data_conducente_patente_abilitazione_numero,
  360. 'conducente_patente_abilitazione_rilasciata_da' => $this->data_conducente_patente_abilitazione_rilasciata_da,
  361. 'conducente_patente_abilitazione_rilasciata_il' => $this->data_conducente_patente_abilitazione_rilasciata_il,
  362. 'conducente_documento' => $this->data_conducente_documento,
  363. 'conducente_documento_numero' => $this->data_conducente_documento_numero,
  364. 'conducente_sedicente' => $this->data_conducente_sedicente,
  365. 'tipo_danno' => $this->data_tipo_danno > 0 ? $this->data_tipo_danno : null,
  366. 'entita_danno' => $this->data_entita_danno > 0 ? $this->data_entita_danno : null,
  367. 'effetto_danno' => $this->data_effetto_danno > 0 ? $this->data_effetto_danno : null,
  368. 'parte_macchina' => $this->data_parte_macchina > 0 ? $this->data_parte_macchina : null,
  369. 'tipo_danno_2' => $this->data_tipo_danno_2 > 0 ? $this->data_tipo_danno_2 : null,
  370. 'entita_danno_2' => $this->data_entita_danno_2 > 0 ? $this->data_entita_danno_2 : null,
  371. 'effetto_danno_2' => $this->data_effetto_danno_2 > 0 ? $this->data_effetto_danno_2 : null,
  372. 'parte_macchina_2' => $this->data_parte_macchina_2 > 0 ? $this->data_parte_macchina_2 : null,
  373. 'tipo_danno_3' => $this->data_tipo_danno_3 > 0 ? $this->data_tipo_danno_3 : null,
  374. 'entita_danno_3' => $this->data_entita_danno_3 > 0 ? $this->data_entita_danno_3 : null,
  375. 'effetto_danno_3' => $this->data_effetto_danno_3 > 0 ? $this->data_effetto_danno_3 : null,
  376. 'parte_macchina_3' => $this->data_parte_macchina_3 > 0 ? $this->data_parte_macchina_3 : null,
  377. 'tipo_danno_4' => $this->data_tipo_danno_4 > 0 ? $this->data_tipo_danno_4 : null,
  378. 'entita_danno_4' => $this->data_entita_danno_4 > 0 ? $this->data_entita_danno_4 : null,
  379. 'effetto_danno_4' => $this->data_effetto_danno_4 > 0 ? $this->data_effetto_danno_4 : null,
  380. 'parte_macchina_4' => $this->data_parte_macchina_4 > 0 ? $this->data_parte_macchina_4 : null
  381. ]
  382. );
  383. // Update or create ReportDataCintureSicurezza
  384. \App\Models\ReportDataCintureSicurezza::updateOrCreate(
  385. [
  386. 'progressive' => $this->currentProgressive,
  387. 'report_id' => $this->dataId
  388. ],
  389. [
  390. 'conducente' => $this->data_cinture_conducente,
  391. 'passeggeri_0' => $this->data_cinture_passeggeri_0,
  392. 'passeggeri_1' => $this->data_cinture_passeggeri_1,
  393. 'passeggeri_2' => $this->data_cinture_passeggeri_2,
  394. 'passeggeri_3' => $this->data_cinture_passeggeri_3
  395. ]
  396. );
  397. // Update or create ReportDataUsoDelCasco
  398. \App\Models\ReportDataUsoDelCasco::updateOrCreate(
  399. [
  400. 'progressive' => $this->currentProgressive,
  401. 'report_id' => $this->dataId
  402. ],
  403. [
  404. 'conducente' => $this->data_casco_conducente,
  405. 'passeggeri' => $this->data_casco_passeggero
  406. ]
  407. );
  408. \App\Models\ReportDataUsoDelCascoOmologazione::updateOrCreate(
  409. [
  410. 'progressive' => $this->currentProgressive,
  411. 'report_id' => $this->dataId
  412. ],
  413. [
  414. 'conducente' => $this->data_casco_omologazione_conducente,
  415. 'passeggeri' => $this->data_casco_omologazione_passeggero
  416. ]
  417. );
  418. // Delete existing passenger records first (since there might be multiple)
  419. \App\Models\ReportDataPasseggeri::where('progressive', $this->currentProgressive)
  420. ->where('report_id', $this->dataId)
  421. ->delete();
  422. // Create new passenger records
  423. \App\Models\ReportDataPasseggeri::create([
  424. 'progressive' => $this->currentProgressive,
  425. 'report_id' => $this->dataId,
  426. 'passeggero' => $this->data_passeggero_0,
  427. 'infortunato' => $this->data_infortunato_0,
  428. 'infortunato_ospedale' => $this->data_infortunato_ospedale_0
  429. ]);
  430. \App\Models\ReportDataPasseggeri::create([
  431. 'progressive' => $this->currentProgressive,
  432. 'report_id' => $this->dataId,
  433. 'passeggero' => $this->data_passeggero_1,
  434. 'infortunato' => $this->data_infortunato_1,
  435. 'infortunato_ospedale' => $this->data_infortunato_ospedale_1
  436. ]);
  437. \App\Models\ReportDataPasseggeri::create([
  438. 'progressive' => $this->currentProgressive,
  439. 'report_id' => $this->dataId,
  440. 'passeggero' => $this->data_passeggero_2,
  441. 'infortunato' => $this->data_infortunato_2,
  442. 'infortunato_ospedale' => $this->data_infortunato_ospedale_2
  443. ]);
  444. \App\Models\ReportDataPasseggeri::create([
  445. 'progressive' => $this->currentProgressive,
  446. 'report_id' => $this->dataId,
  447. 'passeggero' => $this->data_passeggero_3,
  448. 'infortunato' => $this->data_infortunato_3,
  449. 'infortunato_ospedale' => $this->data_infortunato_ospedale_3
  450. ]);
  451. // Delete existing injured person records first
  452. \App\Models\ReportDataInfortunati::where('progressive', $this->currentProgressive)
  453. ->where('report_id', $this->dataId)
  454. ->delete();
  455. // Create new injured person records
  456. \App\Models\ReportDataInfortunati::create([
  457. 'progressive' => $this->currentProgressive,
  458. 'report_id' => $this->dataId,
  459. 'infortunato' => $this->data_infortunato_extra_0
  460. ]);
  461. \App\Models\ReportDataInfortunati::create([
  462. 'progressive' => $this->currentProgressive,
  463. 'report_id' => $this->dataId,
  464. 'infortunato' => $this->data_infortunato_extra_1
  465. ]);
  466. \App\Models\ReportDataInfortunati::create([
  467. 'progressive' => $this->currentProgressive,
  468. 'report_id' => $this->dataId,
  469. 'infortunato' => $this->data_infortunato_extra_2
  470. ]);
  471. \App\Models\ReportDataInfortunati::create([
  472. 'progressive' => $this->currentProgressive,
  473. 'report_id' => $this->dataId,
  474. 'infortunato' => $this->data_infortunato_extra_3
  475. ]);
  476. DB::commit();
  477. session()->flash('success', 'Record aggiornato');
  478. } catch (\Exception $ex) {
  479. DB::rollBack();
  480. Log::error('Error in anagraficaDataParteComuneSave: ' . $ex->getMessage());
  481. session()->flash('error', 'Errore in fase di aggiornamento (' . $ex->getMessage() . ')');
  482. }
  483. $this->resetVeicoloData();
  484. $this->emit('close-modal-parte-comune');
  485. }
  486. public function editAnagraficaParte($progressive) {
  487. $parte_comune = ReportDataPartiCoinvolte::where('report_id', $this->dataId)->where('progressive', $progressive)->first();
  488. if ($parte_comune != null)
  489. {
  490. $this->editAnagrafica($parte_comune->anagrafica);
  491. $this->emit('load-anagrafica-modal');
  492. }
  493. }
  494. public function addAnagrafica($progressive) {
  495. $this->resetAnagrafica();
  496. $this->currentProgressive = $progressive;
  497. $this->emit('load-anagrafica-modal');
  498. }
  499. public function getAnagrafica($anagrafica){
  500. if ($anagrafica > 0)
  501. {
  502. $ret = \App\Models\Anagrafica::findOrFail($anagrafica);
  503. if($ret->type == 0)
  504. return $ret->lastname . " " . $ret->firstname;
  505. else
  506. return $ret->rag_soc;
  507. }
  508. return "";
  509. }
  510. public function resetAnagrafica(){
  511. $this->loadAnagrafica = '';
  512. $this->currentAnagrafica = 0;
  513. $this->currentPasseggero = 0;
  514. $this->currentInfortunato = 0;
  515. $this->currentProprietario = 0;
  516. $this->currentCoproprietario = 0;
  517. $this->currentConducente = 0;
  518. $this->currentTeste = 0;
  519. $this->anag_type = 0;
  520. $this->anag_firstname = '';
  521. $this->anag_lastname = '';
  522. $this->anag_gender = '';
  523. $this->anag_birth_date = null;
  524. $this->anag_birth_town_id = null;
  525. $this->anag_birth_prov_id = null;
  526. $this->anag_residenza_town_id = null;
  527. $this->anag_residenza_prov_id = null;
  528. $this->anag_residenza_address = '';
  529. $this->anag_residenza_cap = '';
  530. $this->anag_mobile = '';
  531. $this->anag_sedicente;
  532. $this->anag_documento_tipo = '';
  533. $this->anag_documento_patente_cat = '';
  534. $this->anag_documento_tipo_altro = '';
  535. $this->anag_documento_numero = '';
  536. $this->anag_documento_rilasciato_da = '';
  537. $this->anag_documento_rilasciato_da_altro = '';
  538. $this->anag_foreign_country = null;
  539. $this->anag_documento_rilasciato_da_di_foreign_localita = null;
  540. $this->anag_documento_rilasciato_da_di_foreign_country = null;
  541. $this->anag_documento_rilasciato_da_prov_id = null;
  542. $this->anag_documento_rilasciato_da_town_id = null;
  543. $this->anag_documento_rilasciato_il = '';
  544. $this->anag_documento_scadenza_il = '';
  545. $this->anag_state = '';
  546. $this->anag_nazionalita = '';
  547. $this->anag_nazione_straniera = '';
  548. $this->anag_localita_straniera = '';
  549. $this->anag_rag_soc = '';
  550. $this->anag_vat = '';
  551. $this->anag_sede_legale_town_id = null;
  552. $this->anag_sede_legale_prov_id = null;
  553. $this->anag_sede_legale_address = '';
  554. $this->anag_sede_legale_cap = '';
  555. $this->anag_phone = '';
  556. $this->anag_residenza_tipo = '';
  557. }
  558. }