'required', 'polizza_num' => 'required', 'valida_dal' => 'required', 'valida_al' => 'required', 'anagrafica_id' => 'required' ]; } public function getPolizza($polizza){ if ($polizza > 0) { $ret = Polizza::with('compagnia')->with('anagrafica')->findOrFail($polizza); return $ret->agenzia . " " . ($ret->compagnia ? $ret->compagnia->name : '') . " " . ($ret->anagrafica ? ($ret->anagrafica->lastname . " " . $ret->anagrafica->firstname) : ''); } return ""; } public function addPolizza(){ $this->resetPolizza(); $this->currentPolizza = 99; $this->emit('load-polizza-modal'); } public function removePolizza(){ $this->data_polizze = 0; $this->emit('add-default-value', $this->data_polizze, '', 'data_polizze'); } public function editPolizza(){ $this->currentPolizza = $this->data_polizze; $this->editPolizzaData($this->data_polizze); $this->emit('load-polizza-modal'); } public function savePolizza(){ $this->validate($this->getPolizzaRules()); try { if ($this->currentPolizza) { $polizza = Polizza::find($this->currentPolizza); } else { $polizza = new Polizza(); } $polizza->compagnia_id = $this->compagnia_id; $polizza->agenzia = $this->agenzia; $polizza->polizza_num = $this->polizza_num; $polizza->valida_dal = Carbon::createFromFormat('d/m/Y', $this->valida_dal)->format('Y-m-d'); $polizza->valida_al = Carbon::createFromFormat('d/m/Y', $this->valida_al)->format('Y-m-d'); $polizza->anagrafica_id = $this->anagrafica_id; $polizza->save(); $this->emit('polizzaSaved', [ 'id' => $polizza->id, 'text' => $this->getPolizza($polizza->id) ]); $this->emit('closePolizzaModal'); $this->dispatchBrowserEvent('notify', ['message' => 'Polizza salvata con successo']); } catch (\Exception $e) { $this->dispatchBrowserEvent('notify', [ 'type' => 'error', 'message' => 'Errore durante il salvataggio della polizza: ' . $e->getMessage() ]); } } private function resetPolizza(){ $this->compagnia_id = null; $this->agenzia = null; $this->polizza_num = null; $this->valida_dal = null; $this->valida_al = null; $this->anagrafica_id = null; } public function cleanPolizzaData(){ $this->resetPolizza(); $this->currentPolizza = null; } private function editPolizzaData($id){ if ($id) { $polizza = Polizza::with(['anagrafica', 'compagnia'])->find($id); if ($polizza) { $this->compagnia_id = $polizza->compagnia_id; $this->agenzia = $polizza->agenzia; $this->polizza_num = $polizza->polizza_num; $this->valida_dal = $polizza->valida_dal; $this->valida_al = $polizza->valida_al; $this->anagrafica_id = $polizza->anagrafica_id; $this->emit('updatePolizzaSelects', [ 'anagrafica' => [ 'id' => $polizza->anagrafica_id, 'text' => $this->getAnagrafica($polizza->anagrafica_id) ], 'compagnia' => [ 'id' => $polizza->compagnia_id, 'text' => $polizza->compagnia ? $polizza->compagnia->name : '' ], 'agenzia' => $polizza->agenzia ]); } } } public function addAnagraficaPolizza(){ $this->resetAnagrafica(); $this->currentAnagrafica = 99; $this->modalType = 'polizza'; $this->emit('load-anagrafica-modal'); } public function removeAnagraficaPolizza(){ $this->anagrafica_id = 0; $this->emit('add-default-value', $this->anagrafica_id, '', 'anagrafica_id'); } public function editAnagraficaPolizza(){ $this->currentAnagrafica = $this->anagrafica_id; $this->modalType = 'polizza'; $this->editAnagrafica($this->anagrafica_id); $this->emit('load-anagrafica-modal'); } }