| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- namespace App\Http\Livewire\Traits;
- use App\Models\Polizza;
- use Carbon\Carbon;
- use App\Models\ReportDataVeicoli;
- trait HasPolizza{
- public $currentPolizza;
- public $data_polizze;
- public $compagnia_id;
- public $agenzia;
- public $polizza_num;
- public $valida_dal;
- public $valida_al;
- public $anagrafica_id;
- public $modalType;
- public $veicolo_id;
- protected function getPolizzaRules(){
- return [
- 'compagnia_id' => '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(){
- $vehicle = ReportDataVeicoli::find($this->veicolo_id);
- if ($vehicle) {
- $vehicle->polizze = null;
- $vehicle->save();
- }
- $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());
- $polizza = Polizza::create([
- 'anagrafica_id' => $this->anagrafica_id,
- 'compagnia_id' => $this->compagnia_id,
- 'agenzia' => $this->agenzia,
- 'polizza_num' => $this->polizza_num,
- 'valida_dal' => $this->valida_dal,
- 'valida_al' => $this->valida_al,
- ]);
- $this->data_polizze = $polizza->id;
- $vehicle = ReportDataVeicoli::find($this->veicolo_id);
- if ($vehicle) {
- $vehicle->polizze = $this->data_polizze;
- $vehicle->save();
- }
- $this->dispatchBrowserEvent('hide-polizza-modal');
- $this->emit('polizza-saved', $polizza->id, $this->getPolizza($polizza->id));
- }
- 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');
- }
- }
|