'delete', 'update' => 'update', ]; public function render() { return view('writeoff::livewire.guarantee-type.guarantee-type-modal'); } public function submit() { $this->validate(); // Validate the form input data DB::transaction(function () { // Prepare the data for creating a new user $data = [ 'kode' => $this->kode, 'name' => $this->name, 'status' => $this->status ? 1 : 0, ]; if ($this->edit_mode) { // Emit a success event with a message $guarante = GuaranteeType::find($this->id); $approval = [ 'method' => 'update', 'menu' => 'Parameter Jenis Jaminan', 'old_request' => json_encode($guarante), 'new_request' => json_encode($data), 'description' => 'Update Parameter Jenis Jaminan', 'status' => '0', 'ref' => $this->kode ]; $is_approval = Approval::where('menu', 'Parameter Jenis Jaminan') ->where('ref', $this->kode) ->where('status', '0') ->where('method', 'update') ->get() ->first(); if ($is_approval) { $this->dispatch('error', 'Data Sedang Menunggu Approval'); } else { Approval::create($approval); $this->dispatch('success', 'Data Berhasil Di Update, Menunggu Approval'); } } else { // Emit a success event with a message $approval = [ 'method' => 'create', 'menu' => 'Parameter Jenis Jaminan', 'new_request' => json_encode($data), 'description' => 'Create Parameter Jenis Jaminan', 'status' => '0', 'ref' => $this->kode ]; $is_approval = Approval::where('menu', 'Parameter Jenis Jaminan') ->where('ref', $this->kode) ->where('status', '0') ->where('method', 'create') ->get() ->first(); if ($is_approval) { $this->dispatch('error', 'Data Sedang Menunggu Approval'); $this->reset(); } else { Approval::create($approval); $this->dispatch('success', 'Data Berhasil Di Input, Menunggu Approval'); } } }); // Reset the form fields after successful submission $this->reset(); } public function update($id) { $this->edit_mode = true; $guarantee_type = GuaranteeType::find($id); $this->id = $guarantee_type->id; $this->kode = $guarantee_type->kode; $this->name = $guarantee_type->name; $this->status = $guarantee_type->status ? true : false; } public function delete($id) { $guarantee = GuaranteeType::find($id); $guarantee->delete_by = auth()->user()->id; $guarantee->deleted_at = now(); $approval = [ 'method' => 'delete', 'menu' => 'Parameter Jenis Jaminan', 'old_request' => json_encode($guarantee), 'description' => 'Delete Parameter Jenis Jaminan', 'status' => '0', 'ref' => $guarantee->kode ]; $is_approval = Approval::where('menu', 'Parameter Jenis Jaminan') ->where('ref', $guarantee->kode) ->where('status', '0') ->where('method', 'delete') ->get() ->first(); if ($is_approval) { $this->dispatch('error', 'Data Sedang Menunggu Approval'); } else { Approval::create($approval); $this->dispatch('success', 'Data Berhasil Di Hapus, Menunggu Approval'); } } public function hydrate() { $this->resetErrorBag(); $this->resetValidation(); } protected function rules() { if ($this->edit_mode) { $request = new UpdateGuaranteeTypeRequest(); } else { $request = new StoreGuaranteeTypeRequest(); } return $request->rules(); } }