update perhitungan hapus buku
This commit is contained in:
parent
6baeda70c4
commit
a88f23de68
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Carbon\CarbonInterval;
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@ -56,11 +55,325 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hitungBunga()
|
||||||
|
{
|
||||||
|
$hapusbuku = HapusBuku::where('status', 1)->get();
|
||||||
|
$suku_bunga_extra = 60;
|
||||||
|
$decimal = 2;
|
||||||
|
$now = Carbon::today();
|
||||||
|
$hari_denda = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($hapusbuku as $key => $value) {
|
||||||
|
$nomor_pinjaman = $value->nomor_pinjaman;
|
||||||
|
$tgl_wo = Carbon::parse($value->tanggal_hapus_buku);
|
||||||
|
$hari_wo = $now->diffInDays($tgl_wo);
|
||||||
|
$day_wo = $tgl_wo->day;
|
||||||
|
|
||||||
|
|
||||||
|
$tgl = $tgl_wo;
|
||||||
|
$bunga_ekstra = 0;
|
||||||
|
$bunga_non_ekstra = 0;
|
||||||
|
|
||||||
|
|
||||||
|
while ($tgl <= $now) {
|
||||||
|
$awal = $tgl;
|
||||||
|
$id = $awal->format('Ymd');
|
||||||
|
$awal_ = $awal->format('Y-m-d');
|
||||||
|
|
||||||
|
$hist = InterestHistory::where('nomor_pinjaman', $nomor_pinjaman)
|
||||||
|
->where('periode_bunga', $id)
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$cnt = 0;
|
||||||
|
if ($hist) {
|
||||||
|
$cnt = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$base = $value->baki_debet;
|
||||||
|
$sk_bng = $value->suku_bunga;
|
||||||
|
|
||||||
|
if ($cnt == 1) {
|
||||||
|
$base = $hist->total_kewajiban;
|
||||||
|
$sk_bng = $hist->suku_bunga;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (in_array($awal->format('m'), ['01', '03', '05', '07', '08', '10', '12'])) {
|
||||||
|
$n = 31;
|
||||||
|
} else if (in_array($awal->format('m'), ['04', '06', '09', '11'])) {
|
||||||
|
$n = 30;
|
||||||
|
} else {
|
||||||
|
$n = 28;
|
||||||
|
if ($awal->format('Y') % 4 == 0) {
|
||||||
|
$n = 29;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($day_wo <= 28) {
|
||||||
|
|
||||||
|
$tgl = $awal->addDays($n);
|
||||||
|
} else if ($day_wo == 29) {
|
||||||
|
$tgl = $awal->addMonths(1);
|
||||||
|
if ($tgl->format('dmy') == '2802') {
|
||||||
|
$tgl = $awal->addDays($day_wo);
|
||||||
|
}
|
||||||
|
} else if ($day_wo == 30) {
|
||||||
|
$tgl = $awal->addMonths(1);
|
||||||
|
if ($tgl->format('dmy') == '2802') {
|
||||||
|
$tgl = $awal->addDays($day_wo);
|
||||||
|
} else {
|
||||||
|
if ($tgl->addDay()->format('d') == '01') {
|
||||||
|
$tgl = $awal->subDay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($awal->format('m') == '01') {
|
||||||
|
if ($awal->format('y') % 4 === 0) {
|
||||||
|
$tgl = $awal->addDays($day_wo - 2);
|
||||||
|
} else {
|
||||||
|
$tgl = $awal->addDays($day_wo - 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($awal->format('m') == '02' && $n == '28') {
|
||||||
|
$tgl = $awal->addDays($n + 3);
|
||||||
|
} else if ($awal->format('m') == '02' && $n == '29') {
|
||||||
|
$tgl = $awal->addDays($n + 2);
|
||||||
|
} else if (in_array($awal->format('m'), ['03', '05', '08', '10'])) {
|
||||||
|
$tgl = $awal->addDays($n - 1);
|
||||||
|
} else if (in_array($awal->format('m'), ['04', '06', '09', '11'])) {
|
||||||
|
$tgl = $awal->addDays($n + 1);
|
||||||
|
} else {
|
||||||
|
$tgl = $awal->addMonths(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$akhir = $tgl->subDay();
|
||||||
|
|
||||||
|
$tgl = $akhir;
|
||||||
|
$hari_b = $akhir->diffInDays($awal_) + 1;
|
||||||
|
if ($hari_denda == 0) {
|
||||||
|
$hari_denda = $hari_wo - $hari_b;
|
||||||
|
} else {
|
||||||
|
$hari_denda = $hari_denda - $hari_b;
|
||||||
|
}
|
||||||
|
$hari_d = $hari_denda;// $now->subDay()->diffInDays($akhir);
|
||||||
|
|
||||||
|
if ($akhir->addDay()->format('dmy') == $now->format('dmy')) {
|
||||||
|
$hari_d = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($akhir >= $now) {
|
||||||
|
$hari_d = 0;
|
||||||
|
$akhir = $now;
|
||||||
|
$hari_b = $now->diffInDays($awal_);
|
||||||
|
}
|
||||||
|
|
||||||
|
//bunga amount due
|
||||||
|
//echo $hari_b . 'b ' . $hari_d . 'd ' . $base . 'bs ' . $sk_bng . ' ' . $suku_bunga_extra . '<br>';exit;
|
||||||
|
$temp_non = ($base * ($sk_bng / 100) * $hari_b) / 360;
|
||||||
|
$bunga_non_ekstra += $temp_non;
|
||||||
|
|
||||||
|
//denda
|
||||||
|
$temp = ($temp_non * ($suku_bunga_extra / 100) * $hari_d) / 360;
|
||||||
|
$bunga_ekstra += $temp;
|
||||||
|
|
||||||
|
//bunga berjalan
|
||||||
|
$tagihan_lain = $temp_non;
|
||||||
|
|
||||||
|
|
||||||
|
InterestHistory::updateOrCreate([
|
||||||
|
'nomor_pinjaman' => $nomor_pinjaman,
|
||||||
|
'periode_bunga' => $id,
|
||||||
|
], [
|
||||||
|
'tanggal_awal' => $awal_,
|
||||||
|
'tanggal_akhir' => $akhir,
|
||||||
|
'hari_bunga' => $hari_b,
|
||||||
|
'nilai_bunga' => round($temp_non, $decimal),
|
||||||
|
'hari_denda' => $hari_d,
|
||||||
|
'nilai_denda' => round($temp, $decimal),
|
||||||
|
'total_kewajiban' => $value->baki_debet,
|
||||||
|
'suku_bunga' => $value->suku_bunga,
|
||||||
|
'suku_bunga_denda' => $suku_bunga_extra
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$bunga_intra = ($value->baki_debet * ($value->suku_bunga / 100) * $hari_wo) / 360;
|
||||||
|
$bunga_non_ekstra = $bunga_non_ekstra - $tagihan_lain;
|
||||||
|
|
||||||
|
$bunga_intra = round($bunga_intra, $decimal);
|
||||||
|
$bunga_ekstra = round($bunga_ekstra, $decimal);
|
||||||
|
$bunga_non_ekstra = round($bunga_non_ekstra, $decimal);
|
||||||
|
$tagihan_lain = round($tagihan_lain, $decimal);
|
||||||
|
|
||||||
|
$total_all = $value->total_kewajiban + $bunga_intra + $bunga_ekstra + $value->denda + $value->biaya_lain;
|
||||||
|
|
||||||
|
HapusBuku::where('nomor_pinjaman', $nomor_pinjaman)->update([
|
||||||
|
'lama_hari' => $hari_wo,
|
||||||
|
'bunga_intra' => $bunga_intra,
|
||||||
|
'bunga_ekstra' => $bunga_ekstra,
|
||||||
|
'bunga_non_ekstra' => $bunga_non_ekstra,
|
||||||
|
'tagihan_lain' => $tagihan_lain,
|
||||||
|
'total_all_kewajiban' => $total_all
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(UpdateHapusBukuRequest $request, $id)
|
||||||
|
{
|
||||||
|
$validated = $request->validated();
|
||||||
|
|
||||||
|
if ($validated) {
|
||||||
|
try {
|
||||||
|
DB::transaction(function () use ($validated, $id) {
|
||||||
|
// Prepare the data for creating a new user
|
||||||
|
$data = [
|
||||||
|
'nomor_pinjaman' => $validated['nomor_pinjaman'],
|
||||||
|
'kode_jenis_pinjaman' => $validated['kode_jenis_pinjaman'],
|
||||||
|
'kode_debitur' => $validated['kode_debitur'],
|
||||||
|
'nama_debitur' => $validated['nama_debitur'],
|
||||||
|
'alamat_debitur' => $validated['alamat_debitur'],
|
||||||
|
'npwp_debitur' => $validated['npwp_debitur'],
|
||||||
|
'kode_cabang' => $validated['kode_cabang'],
|
||||||
|
'kode_mata_uang' => $validated['kode_mata_uang'],
|
||||||
|
'tanggal_hapus_buku' => $validated['tanggal_hapus_buku'],
|
||||||
|
'nomor_fasilitas' => $validated['nomor_fasilitas'],
|
||||||
|
'kode_jenis_fasilitas' => $validated['kode_jenis_fasilitas'],
|
||||||
|
'nilai_plafond_awal' => $validated['nilai_plafond_awal'],
|
||||||
|
'suku_bunga' => $validated['suku_bunga'],
|
||||||
|
'baki_debet' => $validated['baki_debet'],
|
||||||
|
'jumlah_bunga' => $validated['jumlah_bunga'],
|
||||||
|
'jumlah_kewajiban_lain' => $validated['jumlah_kewajiban_lain'],
|
||||||
|
'total_kewajiban' => $validated['total_kewajiban'],
|
||||||
|
'bunga_intra' => $validated['bunga_intra'],
|
||||||
|
'bunga_ekstra' => $validated['bunga_ekstra'],
|
||||||
|
'bunga_non_ekstra' => $validated['bunga_non_ekstra'],
|
||||||
|
'denda' => $validated['denda'],
|
||||||
|
'tagihan_lain' => $validated['tagihan_lain'],
|
||||||
|
'biaya_lain' => $validated['biaya_lain'],
|
||||||
|
'total_all_kewajiban' => $validated['total_all_kewajiban'],
|
||||||
|
'memo_persetujuan' => $validated['memo_persetujuan'],
|
||||||
|
'lama_hari' => $validated['lama_hari'],
|
||||||
|
'proses_hukum' => $validated['proses_hukum'],
|
||||||
|
'komitmen_debitur' => $validated['komitmen_debitur'],
|
||||||
|
'keterangan' => $validated['keterangan'],
|
||||||
|
'status' => $validated['status']
|
||||||
|
];
|
||||||
|
|
||||||
|
// Emit a success event with a message
|
||||||
|
$hapus_buku = HapusBuku::find($id);
|
||||||
|
|
||||||
|
$data['updated_by'] = auth()->user()->id;
|
||||||
|
$data['updated_at'] = now();
|
||||||
|
|
||||||
|
$approval = [
|
||||||
|
'method' => 'update',
|
||||||
|
'menu' => 'Hapus Buku',
|
||||||
|
'old_request' => json_encode($hapus_buku),
|
||||||
|
'new_request' => json_encode($data),
|
||||||
|
'description' => 'Update Hapus Buku',
|
||||||
|
'status' => '0',
|
||||||
|
'ref' => $validated['nomor_pinjaman']
|
||||||
|
];
|
||||||
|
|
||||||
|
$is_approval = Approval::where('menu', 'Hapus Buku')
|
||||||
|
->where('ref', $validated['nomor_pinjaman'])
|
||||||
|
->where('status', '0')
|
||||||
|
->where('method', 'update')
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($is_approval) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Data Sedang Menunggu Approval']);
|
||||||
|
} else {
|
||||||
|
Approval::create($approval);
|
||||||
|
echo json_encode([
|
||||||
|
'status' => 'success',
|
||||||
|
'message' => 'Data Berhasil Di Update, Menunggu Approval'
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a listing of the SubrogasiJamkrindos.
|
||||||
|
*
|
||||||
|
* @param \Modules\Writeoff\DataTables\HapusBukuDataTable $dataTable
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function create(HapusBukuDataTable $dataTable, Request $request)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('pencatatan.read')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
$branch = Branch::all();
|
||||||
|
$loan_type = LoanType::all();
|
||||||
|
$facility_type = FacilityType::all();
|
||||||
|
$currency = Currency::all();
|
||||||
|
|
||||||
|
$totalbayar = 0;
|
||||||
|
|
||||||
|
if ($request->id) {
|
||||||
|
$hapusbuku = HapusBuku::find($request->id);
|
||||||
|
|
||||||
|
$totalbayar = DetailPembayaran::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)
|
||||||
|
->where('status', 1)
|
||||||
|
->sum('nominal');
|
||||||
|
|
||||||
|
$rekening = Rekening::with('loan_type', 'debitur', 'branch', 'currency')
|
||||||
|
->where('nomor_rekening', $hapusbuku->nomor_pinjaman)/*->whereHas('loan_type', function ($query) {
|
||||||
|
$query->whereBetween('kode', [3000, 3999]);
|
||||||
|
})*/
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$jaminan = DetailJaminan::with('guaranteeType')
|
||||||
|
->where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)
|
||||||
|
->get();
|
||||||
|
$bayar = DetailPembayaran::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)->get();
|
||||||
|
$penagihan = DetailPenagihan::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)->get();
|
||||||
|
|
||||||
|
return view('writeoff::pencatatan.hapus_buku.add', compact('branch', 'loan_type', 'facility_type', 'currency', 'rekening', 'totalbayar', 'hapusbuku', 'jaminan', 'bayar', 'penagihan'));
|
||||||
|
} else {
|
||||||
|
$rekening = Rekening::with('loan_type', 'debitur', 'branch', 'currency')
|
||||||
|
->where('nomor_rekening', $request->rekening)
|
||||||
|
->whereDoesntHave('hapusBuku')
|
||||||
|
->whereHas('loan_type', function ($query) {
|
||||||
|
$query->whereBetween('kode', [3000, 3999]);
|
||||||
|
})
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
return view('writeoff::pencatatan.hapus_buku.add', compact('branch', 'loan_type', 'facility_type', 'currency', 'rekening', 'totalbayar'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function edit($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
return redirect()->route('pencatatan.hapus_buku.create', ['id' => $id]);
|
return redirect()->route('pencatatan.hapus_buku.create', ['id' => $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
public function store(StoreHapusBukuRequest $request)
|
public function store(StoreHapusBukuRequest $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -141,293 +454,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the SubrogasiJamkrindos.
|
|
||||||
*
|
|
||||||
* @param \Modules\Writeoff\DataTables\HapusBukuDataTable $dataTable
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function create(HapusBukuDataTable $dataTable, Request $request)
|
|
||||||
{
|
|
||||||
if (is_null($this->user) || !$this->user->can('pencatatan.read')) {
|
|
||||||
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
|
|
||||||
}
|
|
||||||
|
|
||||||
$branch = Branch::all();
|
|
||||||
$loan_type = LoanType::all();
|
|
||||||
$facility_type = FacilityType::all();
|
|
||||||
$currency = Currency::all();
|
|
||||||
|
|
||||||
$totalbayar = 0;
|
|
||||||
|
|
||||||
if ($request->id) {
|
|
||||||
$hapusbuku = HapusBuku::find($request->id);
|
|
||||||
|
|
||||||
$totalbayar = DetailPembayaran::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)
|
|
||||||
->where('status', 1)
|
|
||||||
->sum('nominal');
|
|
||||||
|
|
||||||
$rekening = Rekening::with('loan_type', 'debitur', 'branch', 'currency')
|
|
||||||
->where('nomor_rekening', $hapusbuku->nomor_pinjaman)
|
|
||||||
->whereHas('loan_type', function ($query) {
|
|
||||||
$query->whereBetween('kode', [3000, 3999]);
|
|
||||||
})
|
|
||||||
->get()
|
|
||||||
->first();
|
|
||||||
|
|
||||||
$jaminan = DetailJaminan::with('guaranteeType')
|
|
||||||
->where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)
|
|
||||||
->get();
|
|
||||||
$bayar = DetailPembayaran::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)->get();
|
|
||||||
$penagihan = DetailPenagihan::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman)->get();
|
|
||||||
|
|
||||||
return view('writeoff::pencatatan.hapus_buku.add', compact('branch', 'loan_type', 'facility_type', 'currency', 'rekening', 'totalbayar', 'hapusbuku', 'jaminan', 'bayar', 'penagihan'));
|
|
||||||
} else {
|
|
||||||
$rekening = Rekening::with('loan_type', 'debitur', 'branch', 'currency')
|
|
||||||
->where('nomor_rekening', $request->rekening)
|
|
||||||
->whereDoesntHave('hapusBuku')
|
|
||||||
->whereHas('loan_type', function ($query) {
|
|
||||||
$query->whereBetween('kode', [3000, 3999]);
|
|
||||||
})
|
|
||||||
->get()
|
|
||||||
->first();
|
|
||||||
return view('writeoff::pencatatan.hapus_buku.add', compact('branch', 'loan_type', 'facility_type', 'currency', 'rekening', 'totalbayar'));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function hitungBunga()
|
|
||||||
{
|
|
||||||
$hapusbuku = HapusBuku::where('status', 1)->get();
|
|
||||||
$suku_bunga_extra = 35;
|
|
||||||
$decimal = 2;
|
|
||||||
$now = Carbon::today();
|
|
||||||
|
|
||||||
foreach ($hapusbuku as $key => $value) {
|
|
||||||
$nomor_pinjaman = $value->nomor_pinjaman;
|
|
||||||
$tgl_wo = Carbon::parse($value->tanggal_hapus_buku);
|
|
||||||
$hari_wo = $now->diffInDays($tgl_wo);
|
|
||||||
$day_wo = $tgl_wo->day;
|
|
||||||
|
|
||||||
|
|
||||||
$tgl = $tgl_wo;
|
|
||||||
$bunga_ekstra = 0;
|
|
||||||
$bunga_non_ekstra = 0;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
while ($tgl <= $now) {
|
|
||||||
$awal = $tgl;
|
|
||||||
echo '1. '.$awal;
|
|
||||||
$id = $awal->format('Ymd');
|
|
||||||
|
|
||||||
$hist = InterestHistory::where('nomor_pinjaman', $nomor_pinjaman)
|
|
||||||
->where('periode_bunga', $id)
|
|
||||||
->get()
|
|
||||||
->first();
|
|
||||||
|
|
||||||
$cnt = 0;
|
|
||||||
if ($hist) {
|
|
||||||
$cnt = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$base = $value->baki_debet;
|
|
||||||
$sk_bng = $value->suku_bunga;
|
|
||||||
|
|
||||||
if($cnt == 1) {
|
|
||||||
$base = $hist->total_kewajiban;
|
|
||||||
$sk_bng = $hist->suku_bunga;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (in_array($awal->format('m'), ['01', '03', '05', '07', '08', '10', '12'])) {
|
|
||||||
$n = 31;
|
|
||||||
} else if (in_array($awal->format('m'), ['04', '06', '09', '11'])) {
|
|
||||||
$n = 30;
|
|
||||||
} else {
|
|
||||||
$n = 28;
|
|
||||||
if ($awal->format('Y') % 4 == 0) {
|
|
||||||
$n = 29;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($day_wo <= 28) {
|
|
||||||
$tgl_ = $tgl->addDays($n);
|
|
||||||
} else if ($day_wo == 29) {
|
|
||||||
$tgl_ = $tgl->addMonths(1);
|
|
||||||
if ($tgl->format('dmy') == '2802') {
|
|
||||||
$tgl_ = $tgl->addDays($day_wo);
|
|
||||||
}
|
|
||||||
} else if ($day_wo == 30) {
|
|
||||||
$tgl_ = $tgl->addMonths(1);
|
|
||||||
if ($tgl->format('dmy') == '2802') {
|
|
||||||
$tgl_ = $tgl->addDays($day_wo);
|
|
||||||
} else {
|
|
||||||
if ($tgl->addDay()->format('d') == '01') {
|
|
||||||
$tgl_ = $tgl_->subDay();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/* if($tgl->addMonths(1)->format('d') == '02') {
|
|
||||||
$tgl_ = $tgl->addMonths(1);
|
|
||||||
} else {
|
|
||||||
$tgl_ = $tgl->addMonths(1);
|
|
||||||
if ($tgl->addDay()->format('d') == '01') {
|
|
||||||
$tgl_ = $tgl_->subDay();
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
$tgl_ = $tgl->addMonths(1);
|
|
||||||
echo ' 2. '.$awal;exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$akhir = $tgl_->subDay();
|
|
||||||
//echo $akhir;
|
|
||||||
|
|
||||||
echo $akhir->diffInDays($awal);exit;
|
|
||||||
$hari_b = $akhir->diffInDays($awal) + 1;
|
|
||||||
$hari_d = $now->subDay()->diffInDays($akhir);
|
|
||||||
|
|
||||||
if ($akhir->addDay()->format('dmy') == $now->format('dmy')) {
|
|
||||||
$hari_d = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//bunga amount due
|
|
||||||
//echo $hari_b . 'b ' . $hari_d . 'd ' . $base . 'bs ' . $sk_bng . ' ' . $suku_bunga_extra . '<br>';exit;
|
|
||||||
$temp_non = ($base * ($sk_bng / 100) * $hari_b) / 360;
|
|
||||||
$bunga_non_ekstra += $temp_non;
|
|
||||||
|
|
||||||
//denda
|
|
||||||
$temp = ($temp_non * ($suku_bunga_extra / 100) * $hari_d) / 360;
|
|
||||||
$bunga_ekstra += $temp;
|
|
||||||
|
|
||||||
//bunga berjalan
|
|
||||||
$tagihan_lain = $temp_non;
|
|
||||||
|
|
||||||
|
|
||||||
InterestHistory::updateOrCreate([
|
|
||||||
'nomor_pinjaman' => $nomor_pinjaman,
|
|
||||||
'periode_bunga' => $id,
|
|
||||||
], [
|
|
||||||
'tanggal_awal' => $awal,
|
|
||||||
'tanggal_akhir' => $akhir,
|
|
||||||
'hari_bunga' => $hari_b,
|
|
||||||
'nilai_bunga' => round($temp_non, $decimal),
|
|
||||||
'hari_denda' => $hari_d,
|
|
||||||
'nilai_denda' => round($temp, $decimal),
|
|
||||||
'total_kewajiban' => $value->baki_debet,
|
|
||||||
'suku_bunga' => $value->suku_bunga,
|
|
||||||
'suku_bunga_denda' => $suku_bunga_extra
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$bunga_intra = ($value->baki_debet * ($value->suku_bunga / 100) * $hari_wo) / 360;
|
|
||||||
$bunga_non_ekstra = $bunga_non_ekstra - $tagihan_lain;
|
|
||||||
|
|
||||||
$bunga_intra = round($bunga_intra, $decimal);
|
|
||||||
$bunga_ekstra = round($bunga_ekstra, $decimal);
|
|
||||||
$bunga_non_ekstra = round($bunga_non_ekstra, $decimal);
|
|
||||||
$tagihan_lain = round($tagihan_lain, $decimal);
|
|
||||||
|
|
||||||
$total_all = $value->total_kewajiban + $bunga_intra + $bunga_ekstra + $value->denda + $value->biaya_lain;
|
|
||||||
|
|
||||||
HapusBuku::where('nomor_pinjaman', $nomor_pinjaman)->update([
|
|
||||||
'bunga_intra' => $bunga_intra,
|
|
||||||
'bunga_ekstra' => $bunga_ekstra,
|
|
||||||
'bunga_non_ekstra' => $bunga_non_ekstra,
|
|
||||||
'tagihan_lain' => $tagihan_lain,
|
|
||||||
'total_all_kewajiban' => $total_all
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* */
|
|
||||||
|
|
||||||
public function update(UpdateHapusBukuRequest $request, $id)
|
|
||||||
{
|
|
||||||
$validated = $request->validated();
|
|
||||||
|
|
||||||
if ($validated) {
|
|
||||||
try {
|
|
||||||
DB::transaction(function () use ($validated, $id) {
|
|
||||||
// Prepare the data for creating a new user
|
|
||||||
$data = [
|
|
||||||
'nomor_pinjaman' => $validated['nomor_pinjaman'],
|
|
||||||
'kode_jenis_pinjaman' => $validated['kode_jenis_pinjaman'],
|
|
||||||
'kode_debitur' => $validated['kode_debitur'],
|
|
||||||
'nama_debitur' => $validated['nama_debitur'],
|
|
||||||
'alamat_debitur' => $validated['alamat_debitur'],
|
|
||||||
'npwp_debitur' => $validated['npwp_debitur'],
|
|
||||||
'kode_cabang' => $validated['kode_cabang'],
|
|
||||||
'kode_mata_uang' => $validated['kode_mata_uang'],
|
|
||||||
'tanggal_hapus_buku' => $validated['tanggal_hapus_buku'],
|
|
||||||
'nomor_fasilitas' => $validated['nomor_fasilitas'],
|
|
||||||
'kode_jenis_fasilitas' => $validated['kode_jenis_fasilitas'],
|
|
||||||
'nilai_plafond_awal' => $validated['nilai_plafond_awal'],
|
|
||||||
'suku_bunga' => $validated['suku_bunga'],
|
|
||||||
'baki_debet' => $validated['baki_debet'],
|
|
||||||
'jumlah_bunga' => $validated['jumlah_bunga'],
|
|
||||||
'jumlah_kewajiban_lain' => $validated['jumlah_kewajiban_lain'],
|
|
||||||
'total_kewajiban' => $validated['total_kewajiban'],
|
|
||||||
'bunga_intra' => $validated['bunga_intra'],
|
|
||||||
'bunga_ekstra' => $validated['bunga_ekstra'],
|
|
||||||
'bunga_non_ekstra' => $validated['bunga_non_ekstra'],
|
|
||||||
'denda' => $validated['denda'],
|
|
||||||
'tagihan_lain' => $validated['tagihan_lain'],
|
|
||||||
'biaya_lain' => $validated['biaya_lain'],
|
|
||||||
'total_all_kewajiban' => $validated['total_all_kewajiban'],
|
|
||||||
'memo_persetujuan' => $validated['memo_persetujuan'],
|
|
||||||
'lama_hari' => $validated['lama_hari'],
|
|
||||||
'proses_hukum' => $validated['proses_hukum'],
|
|
||||||
'komitmen_debitur' => $validated['komitmen_debitur'],
|
|
||||||
'keterangan' => $validated['keterangan'],
|
|
||||||
'status' => $validated['status']
|
|
||||||
];
|
|
||||||
|
|
||||||
// Emit a success event with a message
|
|
||||||
$hapus_buku = HapusBuku::find($id);
|
|
||||||
|
|
||||||
$data['updated_by'] = auth()->user()->id;
|
|
||||||
$data['updated_at'] = now();
|
|
||||||
|
|
||||||
$approval = [
|
|
||||||
'method' => 'update',
|
|
||||||
'menu' => 'Hapus Buku',
|
|
||||||
'old_request' => json_encode($hapus_buku),
|
|
||||||
'new_request' => json_encode($data),
|
|
||||||
'description' => 'Update Hapus Buku',
|
|
||||||
'status' => '0',
|
|
||||||
'ref' => $validated['nomor_pinjaman']
|
|
||||||
];
|
|
||||||
|
|
||||||
$is_approval = Approval::where('menu', 'Hapus Buku')
|
|
||||||
->where('ref', $validated['nomor_pinjaman'])
|
|
||||||
->where('status', '0')
|
|
||||||
->where('method', 'update')
|
|
||||||
->get()
|
|
||||||
->first();
|
|
||||||
|
|
||||||
if ($is_approval) {
|
|
||||||
echo json_encode(['status' => 'error', 'message' => 'Data Sedang Menunggu Approval']);
|
|
||||||
} else {
|
|
||||||
Approval::create($approval);
|
|
||||||
echo json_encode(['status' => 'success',
|
|
||||||
'message' => 'Data Berhasil Di Update, Menunggu Approval'
|
|
||||||
]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
} catch (Exception $e) {
|
|
||||||
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user