HasPolizza.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. namespace App\Http\Livewire\Traits;
  3. use App\Models\Polizza;
  4. use Carbon\Carbon;
  5. use App\Models\ReportDataVeicoli;
  6. trait HasPolizza{
  7. public $currentPolizza;
  8. public $data_polizze;
  9. public $compagnia_id;
  10. public $agenzia;
  11. public $polizza_num;
  12. public $valida_dal;
  13. public $valida_al;
  14. public $anagrafica_id;
  15. public $modalType;
  16. public $veicolo_id;
  17. protected function getPolizzaRules(){
  18. return [
  19. 'compagnia_id' => 'required',
  20. 'polizza_num' => 'required',
  21. 'valida_dal' => 'required',
  22. 'valida_al' => 'required',
  23. 'anagrafica_id' => 'required'
  24. ];
  25. }
  26. public function getPolizza($polizza){
  27. if ($polizza > 0) {
  28. $ret = Polizza::with('compagnia')->with('anagrafica')->findOrFail($polizza);
  29. return $ret->agenzia . " " .
  30. ($ret->compagnia ? $ret->compagnia->name : '') . " " .
  31. ($ret->anagrafica ? ($ret->anagrafica->lastname . " " . $ret->anagrafica->firstname) : '');
  32. }
  33. return "";
  34. }
  35. public function addPolizza(){
  36. $this->resetPolizza();
  37. $this->currentPolizza = 99;
  38. $this->emit('load-polizza-modal');
  39. }
  40. public function removePolizza(){
  41. $vehicle = ReportDataVeicoli::find($this->veicolo_id);
  42. if ($vehicle) {
  43. $vehicle->polizze = null;
  44. $vehicle->save();
  45. }
  46. $this->data_polizze = 0;
  47. $this->emit('add-default-value', $this->data_polizze, '', 'data_polizze');
  48. }
  49. public function editPolizza(){
  50. $this->currentPolizza = $this->data_polizze;
  51. $this->editPolizzaData($this->data_polizze);
  52. $this->emit('load-polizza-modal');
  53. }
  54. public function savePolizza()
  55. {
  56. $this->validate($this->getPolizzaRules());
  57. $polizza = Polizza::create([
  58. 'anagrafica_id' => $this->anagrafica_id,
  59. 'compagnia_id' => $this->compagnia_id,
  60. 'agenzia' => $this->agenzia,
  61. 'polizza_num' => $this->polizza_num,
  62. 'valida_dal' => $this->valida_dal,
  63. 'valida_al' => $this->valida_al,
  64. ]);
  65. $this->data_polizze = $polizza->id;
  66. $vehicle = ReportDataVeicoli::find($this->veicolo_id);
  67. if ($vehicle) {
  68. $vehicle->polizze = $this->data_polizze;
  69. $vehicle->save();
  70. }
  71. $this->dispatchBrowserEvent('hide-polizza-modal');
  72. $this->emit('polizza-saved', $polizza->id, $this->getPolizza($polizza->id));
  73. session()->flash('success','Polizza salvata con successo');
  74. }
  75. private function resetPolizza(){
  76. $this->compagnia_id = null;
  77. $this->agenzia = null;
  78. $this->polizza_num = null;
  79. $this->valida_dal = null;
  80. $this->valida_al = null;
  81. $this->anagrafica_id = null;
  82. }
  83. public function cleanPolizzaData(){
  84. $this->resetPolizza();
  85. $this->currentPolizza = null;
  86. }
  87. private function editPolizzaData($id){
  88. if ($id) {
  89. $polizza = Polizza::with(['anagrafica', 'compagnia'])->find($id);
  90. if ($polizza) {
  91. $this->compagnia_id = $polizza->compagnia_id;
  92. $this->agenzia = $polizza->agenzia;
  93. $this->polizza_num = $polizza->polizza_num;
  94. $this->valida_dal = $polizza->valida_dal;
  95. $this->valida_al = $polizza->valida_al;
  96. $this->anagrafica_id = $polizza->anagrafica_id;
  97. $this->emit('updatePolizzaSelects', [
  98. 'anagrafica' => [
  99. 'id' => $polizza->anagrafica_id,
  100. 'text' => $this->getAnagrafica($polizza->anagrafica_id)
  101. ],
  102. 'compagnia' => [
  103. 'id' => $polizza->compagnia_id,
  104. 'text' => $polizza->compagnia ? $polizza->compagnia->name : ''
  105. ],
  106. 'agenzia' => $polizza->agenzia
  107. ]);
  108. }
  109. }
  110. }
  111. public function addAnagraficaPolizza(){
  112. $this->resetAnagrafica();
  113. $this->currentAnagrafica = 99;
  114. $this->emit('load-anagrafica-modal');
  115. }
  116. public function removeAnagraficaPolizza(){
  117. $this->anagrafica_id = 0;
  118. $this->emit('add-default-value', $this->anagrafica_id, '', 'anagrafica_id');
  119. }
  120. public function editAnagraficaPolizza(){
  121. $this->currentAnagrafica = $this->anagrafica_id;
  122. $this->modalType = 'polizza';
  123. $this->editAnagrafica($this->anagrafica_id);
  124. $this->emit('load-anagrafica-modal');
  125. }
  126. }