ResourceEquipment.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace App\Livewire;
  3. use Illuminate\Support\Facades\Log;
  4. use Illuminate\Support\Facades\DB;
  5. use Livewire\Attributes\Validate;
  6. use Livewire\Component;
  7. use Livewire\Attributes\Layout;
  8. class ResourceEquipment extends Component
  9. {
  10. public $resource;
  11. public $current_resource_equipment = null;
  12. public $resource_equipments = [];
  13. public $equipment_categories = [];
  14. // #[Validate('required')]
  15. public $equipment_category_id = null;
  16. public $name = '';
  17. public $start_date = null;
  18. public $end_date = null;
  19. public $supplier = '';
  20. public $sku = '';
  21. public $description = '';
  22. public $enabled = 1;
  23. public $is_edit = false;
  24. public function resetFields(){
  25. $this->equipment_category_id = null;
  26. $this->name = '';
  27. $this->start_date = null;
  28. $this->end_date = null;
  29. $this->supplier = '';
  30. $this->sku = '';
  31. $this->description = '';
  32. $this->enabled = 1;
  33. }
  34. public function mount()
  35. {
  36. $this->equipment_categories = \App\Models\EquipmentCategory::all();
  37. }
  38. public function render()
  39. {
  40. $this->resource_equipments = $this->resource->equipments ?? [];
  41. return view('livewire.resource_equipment');
  42. }
  43. public function add()
  44. {
  45. $this->resetFields();
  46. $this->is_edit = true;
  47. $this->current_resource_equipment = null;
  48. }
  49. public function edit($id)
  50. {
  51. $this->resetFields();
  52. $this->is_edit = true;
  53. $this->current_resource_equipment = \App\Models\ResourceEquipment::findOrFail($id);
  54. $this->equipment_category_id = $this->current_resource_equipment->equipment_category_id;
  55. $this->name = $this->current_resource_equipment->name;
  56. $this->start_date = $this->current_resource_equipment->start_date;
  57. $this->end_date = $this->current_resource_equipment->end_date;
  58. $this->supplier = $this->current_resource_equipment->supplier;
  59. $this->sku = $this->current_resource_equipment->sku;
  60. $this->description = $this->current_resource_equipment->description;
  61. $this->enabled = $this->current_resource_equipment->enabled == 1;
  62. }
  63. public function save()
  64. {
  65. $this->validate();
  66. try
  67. {
  68. if ($this->current_resource_equipment == null)
  69. {
  70. \App\Models\ResourceEquipment::create([
  71. 'resource_id' => $this->resource->id,
  72. 'equipment_category_id' => $this->equipment_category_id,
  73. 'name' => $this->name,
  74. 'start_date' => $this->start_date,
  75. 'end_date' => $this->end_date,
  76. 'supplier' => $this->supplier,
  77. 'sku' => $this->sku,
  78. 'description' => $this->description,
  79. 'enabled' => $this->enabled
  80. ]);
  81. }
  82. else
  83. {
  84. $this->current_resource_equipment->update([
  85. 'equipment_category_id' => $this->equipment_category_id,
  86. 'name' => $this->name,
  87. 'start_date' => $this->start_date,
  88. 'end_date' => $this->end_date,
  89. 'supplier' => $this->supplier,
  90. 'sku' => $this->sku,
  91. 'description' => $this->description,
  92. 'enabled' => $this->enabled
  93. ]);
  94. }
  95. session()->flash('success','Dati salvati con successo');
  96. $this->resetFields();
  97. $this->is_edit = false;
  98. } catch (\Exception $ex) {
  99. session()->flash('error','Errore (' . $ex->getMessage() . ')');
  100. }
  101. }
  102. public function cancel()
  103. {
  104. $this->resetFields();
  105. $this->is_edit = false;
  106. $this->current_resource_equipment = null;
  107. }
  108. }