Resource.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace App\Livewire;
  3. use Livewire\Component;
  4. use Livewire\Attributes\Validate;
  5. class Resource extends Component
  6. {
  7. public $resources;
  8. #[Validate('required')]
  9. public $first_name = '';
  10. public $last_name = '';
  11. public $birth_day = null;
  12. public $birth_place_id = null;
  13. public $fiscal_code = '';
  14. public $phone = '';
  15. public $email = '';
  16. public $address = '';
  17. public $zip = '';
  18. public $city_id = null;
  19. public $country_id = null;
  20. public $domicile = '';
  21. public $enabled = true;
  22. public $current_resource = null;
  23. public $is_edit = false;
  24. public function resetFields()
  25. {
  26. $this->first_name = '';
  27. $this->last_name = '';
  28. $this->birth_day = null;
  29. $this->birth_place_id = null;
  30. $this->fiscal_code = '';
  31. $this->phone = '';
  32. $this->email = '';
  33. $this->address = '';
  34. $this->zip = '';
  35. $this->city_id = null;
  36. $this->country_id = null;
  37. $this->domicile = '';
  38. $this->enabled = true;
  39. }
  40. public function render()
  41. {
  42. // Get Resource
  43. $this->resources = \App\Models\Resource::all();
  44. return view('livewire.resource');
  45. }
  46. public function add()
  47. {
  48. $this->resetFields();
  49. $this->is_edit = true;
  50. $this->current_resource = null;
  51. }
  52. public function edit($id)
  53. {
  54. $this->resetFields();
  55. $this->is_edit = true;
  56. $this->current_resource = \App\Models\Recource::findOrFail($id);
  57. $this->first_name = $this->current_resource->first_name;
  58. $this->last_name = $this->current_resource->last_name;
  59. $this->birth_day = $this->current_resource->birth_day;
  60. $this->birth_place_id = $this->current_resource->birth_place_id;
  61. $this->fiscal_code = $this->current_resource->fiscal_code;
  62. $this->phone = $this->current_resource->phone;
  63. $this->email = $this->current_resource->email;
  64. $this->address = $this->current_resource->address;
  65. $this->zip = $this->current_resource->zip;
  66. $this->city_id = $this->current_resource->city_id;
  67. $this->country_id = $this->current_resource->country_id;
  68. $this->domicile = $this->current_resource->domicile;
  69. $this->enabled = $this->current_resource->enabled;
  70. }
  71. public function save()
  72. {
  73. $this->validate();
  74. try {
  75. if ($this->current_customer == null)
  76. {
  77. \App\Models\Resource::create([
  78. 'first_name' => $this->first_name,
  79. 'last_name' => $this->last_name,
  80. 'birth_day' => $this->birth_day,
  81. 'birth_place_id' => $this->birth_place_id,
  82. 'fiscal_code' => $this->fiscal_code,
  83. 'phone' => $this->phone,
  84. 'email' => $this->email,
  85. 'address' => $this->address,
  86. 'zip' => $this->zip,
  87. 'city_id' => $this->city_id,
  88. 'country_id' => $this->country_id,
  89. 'domicile' => $this->domicile,
  90. 'enabled' => $this->enabled
  91. ]);
  92. }
  93. else
  94. {
  95. $this->current_resource->update([
  96. 'first_name' => $this->first_name,
  97. 'last_name' => $this->last_name,
  98. 'birth_day' => $this->birth_day,
  99. 'birth_place_id' => $this->birth_place_id,
  100. 'fiscal_code' => $this->fiscal_code,
  101. 'phone' => $this->phone,
  102. 'email' => $this->email,
  103. 'address' => $this->address,
  104. 'zip' => $this->zip,
  105. 'city_id' => $this->city_id,
  106. 'country_id' => $this->country_id,
  107. 'domicile' => $this->domicile,
  108. 'enabled' => $this->enabled,
  109. ]);
  110. }
  111. session()->flash('success','Dato aggiornato');
  112. $this->resetFields();
  113. $this->is_edit = false;
  114. } catch (\Exception $ex) {
  115. session()->flash('error','Errore (' . $ex->getMessage() . ')');
  116. }
  117. }
  118. public function cancel()
  119. {
  120. $this->resetFields();
  121. $this->is_edit = false;
  122. $this->current_company = null;
  123. }
  124. }