Writeoff/Livewire/HapusBuku/HapusBukuModal.php

201 lines
8.1 KiB
PHP

<?php
namespace Modules\Writeoff\Livewire\HapusBuku;
use Illuminate\Support\Facades\DB;
use Livewire\Component;
use Modules\Writeoff\Entities\Branch;
use Modules\Writeoff\Entities\Debitur;
use Modules\Writeoff\Entities\FacilityType;
use Modules\Writeoff\Entities\HapusBuku;
use Modules\Writeoff\Entities\LoanType;
use Modules\Writeoff\Http\Requests\HapusBuku\StoreHapusBukuRequest;
use Modules\Writeoff\Http\Requests\HapusBuku\UpdateHapusBukuRequest;
class HapusBukuModal extends Component
{
public $id;
public $nomor_pinjaman;
public $kode_jenis_pinjaman;
public $kode_debitur;
public $nama_debitur;
public $alamat_debitur;
public $npwp_debitur;
public $kode_cabang;
public $kode_mata_uang;
public $tanggal_hapus_buku;
public $nomor_fasilitas;
public $kode_jenis_fasilitas;
public $nilai_plafond_awal;
public $suku_bunga;
public $baki_debet;
public $jumlah_bunga;
public $jumlah_kewajiban_lain;
public $total_kewajiban;
public $total_bunga_extra;
public $bunga_ekstra;
public $bunga_non_ekstra;
public $denda;
public $tagihan_lain;
public $biaya_lain;
public $total_all_kewajiban;
public $memo_persetujuan;
public $lama_hari;
public $proses_hukum;
public $komitmen_debitur;
public $keterangan;
public $status;
public $edit_mode = false;
protected $listeners = [
'delete' => 'delete',
'update' => 'update',
];
public function render()
{
$branch = Branch::all();
$loan_type = LoanType::all();
$facility_type = FacilityType::all();
return view('writeoff::livewire.hapus-buku.hapus-buku-modal', compact('branch', 'loan_type', 'facility_type'));
}
public function submit()
{
$this->validate();
// Validate the form input data
DB::transaction(function () {
// Prepare the data for creating a new user
$data = [
'nomor_pinjaman' => $this->nomor_pinjaman,
'kode_jenis_pinjaman' => $this->kode_jenis_pinjaman,
'kode_debitur' => $this->kode_debitur,
'nama_debitur' => $this->nama_debitur,
'alamat_debitur' => $this->alamat_debitur,
'npwp_debitur' => $this->npwp_debitur,
'kode_cabang' => $this->kode_cabang,
'kode_mata_uang' => $this->kode_mata_uang,
'tanggal_hapus_buku' => $this->tanggal_hapus_buku,
'nomor_fasilitas' => $this->nomor_fasilitas,
'kode_jenis_fasilitas' => $this->kode_jenis_fasilitas,
'nilai_plafond_awal' => $this->nilai_plafond_awal,
'suku_bunga' => $this->suku_bunga,
'baki_debet' => $this->baki_debet,
'jumlah_bunga' => $this->jumlah_bunga,
'jumlah_kewajiban_lain' => $this->jumlah_kewajiban_lain,
'total_kewajiban' => $this->total_kewajiban,
'total_bunga_extra' => $this->total_bunga_extra,
'bunga_ekstra' => $this->bunga_ekstra,
'bunga_non_ekstra' => $this->bunga_non_ekstra,
'denda' => $this->denda,
'tagihan_lain' => $this->tagihan_lain,
'biaya_lain' => $this->biaya_lain,
'total_all_kewajiban' => $this->total_all_kewajiban,
'memo_persetujuan' => $this->memo_persetujuan,
'lama_hari' => $this->lama_hari,
'proses_hukum' => $this->proses_hukum,
'komitmen_debitur' => $this->komitmen_debitur,
'keterangan' => $this->keterangan,
'status' => $this->status
];
if ($this->edit_mode) {
// Emit a success event with a message
$hapus_buku = HapusBuku::find($this->id);
$hapus_buku->update($data);
$this->dispatch('success', __('Hapus Buku updated'));
} else {
// Emit a success event with a message
HapusBuku::create($data);
$this->dispatch('success', __('New Hapus Buku created'));
}
});
// Reset the form fields after successful submission
//$this->reset();
}
public function update($id)
{
$this->edit_mode = true;
$hapus_buku = HapusBuku::find($id);
$this->id = $hapus_buku->id;
$this->nomor_pinjaman = $hapus_buku->nomor_pinjaman;
$this->kode_jenis_pinjaman = $hapus_buku->kode_jenis_pinjaman;
$this->kode_debitur = $hapus_buku->kode_debitur;
$this->nama_debitur = $hapus_buku->nama_debitur;
$this->alamat_debitur = $hapus_buku->alamat_debitur;
$this->npwp_debitur = $hapus_buku->npwp_debitur;
$this->kode_cabang = $hapus_buku->kode_cabang;
$this->kode_mata_uang = $hapus_buku->kode_mata_uang;
$this->tanggal_hapus_buku = $hapus_buku->tanggal_hapus_buku;
$this->nomor_fasilitas = $hapus_buku->nomor_fasilitas;
$this->kode_jenis_fasilitas = $hapus_buku->kode_jenis_fasilitas;
$this->nilai_plafond_awal = $hapus_buku->nilai_plafond_awal;
$this->suku_bunga = $hapus_buku->suku_bunga;
$this->baki_debet = $hapus_buku->baki_debet;
$this->jumlah_bunga = $hapus_buku->jumlah_bunga;
$this->jumlah_kewajiban_lain = $hapus_buku->jumlah_kewajiban_lain;
$this->total_kewajiban = $hapus_buku->total_kewajiban;
$this->total_bunga_extra = $hapus_buku->total_bunga_extra;
$this->bunga_ekstra = $hapus_buku->bunga_ekstra;
$this->bunga_non_ekstra = $hapus_buku->bunga_non_ekstra;
$this->denda = $hapus_buku->denda;
$this->tagihan_lain = $hapus_buku->tagihan_lain;
$this->biaya_lain = $hapus_buku->biaya_lain;
$this->total_all_kewajiban = $hapus_buku->total_all_kewajiban;
$this->memo_persetujuan = $hapus_buku->memo_persetujuan;
$this->lama_hari = $hapus_buku->lama_hari;
$this->proses_hukum = $hapus_buku->proses_hukum;
$this->komitmen_debitur = $hapus_buku->komitmen_debitur;
$this->keterangan = $hapus_buku->keterangan;
$this->status = $hapus_buku->status == 1;
}
public function getDebitur()
{
$debitur = Debitur::where('kode', $this->kode_debitur)->first();
if ($debitur) {
$this->nama_debitur = $debitur->name;
} else {
$this->nama_debitur = '';
$this->addError('nama_debitur', 'Debitur Tidak Ditemukan');
}
}
public function delete($id)
{
HapusBuku::destroy($id);
// Emit a success event with a message
$this->dispatch('success', 'Hapus Buku successfully deleted');
}
public function hydrate()
{
$this->resetErrorBag();
$this->resetValidation();
}
protected function rules()
{
if ($this->edit_mode) {
$request = new UpdateHapusBukuRequest();
} else {
$request = new StoreHapusBukuRequest();
}
return $request->rules();
}
}