From 39a2f9a5ef4d20e88204bf96ed159ab16e329722 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Thu, 13 Nov 2025 23:33:11 +0800 Subject: [PATCH] fix kadar upah return 0 --- app/Services/OnePercentServices.php | 39 ++----------------- app/Support/v2/Calculation.php | 59 +++-------------------------- 2 files changed, 9 insertions(+), 89 deletions(-) diff --git a/app/Services/OnePercentServices.php b/app/Services/OnePercentServices.php index ad5b9ff..6e8e834 100644 --- a/app/Services/OnePercentServices.php +++ b/app/Services/OnePercentServices.php @@ -3,7 +3,6 @@ namespace App\Services; use App\KadarUpah; -use App\Customer; class OnePercentServices { @@ -80,43 +79,13 @@ class OnePercentServices return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; } -public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid, $nokp = null): float -{ - //Semak status pelanggan dalam table customer - if ($nokp) { - $customer = Customer::on('mysql7') - ->select('tag_anggota') - ->where(function($q) use ($nokp) { - $q->where('kpbaru', $nokp) - ->orWhere('kplama', $nokp); - }) - ->first(); + public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{ - // Jika anggota koperasi → kadar tetap - if ($customer && (int)$customer->tag_anggota === 1) { - return 0.16; // kadar ujrah tetap untuk anggota - } + $kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->get()->toArray(); + + return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0; } - //Jika bukan anggota → ambil dari jadual kadar_upah - $kadar = KadarUpah::on('mysql7') - ->select('kadarujrah') - ->where([ - ['min', '<=', $nilaimarhun], - ['max', '>=', $nilaimarhun], - ]) - ->where('group_id', $groupid) - ->first(); - - //Jika jumpa kadar dalam jadual - if ($kadar && isset($kadar->kadarujrah)) { - return (float) $kadar->kadarujrah; - } - - //Default fallback - return 0.0; -} - public function getRoundedMethod(float $number = 0.0) : Float{ $number_string = number_format(floor($number * 100)/100,2); diff --git a/app/Support/v2/Calculation.php b/app/Support/v2/Calculation.php index 18f31a6..178b275 100644 --- a/app/Support/v2/Calculation.php +++ b/app/Support/v2/Calculation.php @@ -3,9 +3,6 @@ namespace App\Support\v2; use App\KadarUpah; -use App\Customer; -use Illuminate\Support\Facades\Log; - use Illuminate\Http\Request; class Calculation @@ -61,6 +58,7 @@ class Calculation public function kiraanKeuntunganRebet(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){ $this->one_percent = $this->getKadarUpah($nilaimarhun); + $onepercent = $this->kiraanOnePercent($pembiayaan); $ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin); @@ -85,60 +83,13 @@ class Calculation return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; } -public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid, $nokp = null): float -{ - // 1️⃣ Semak status pelanggan dalam table customer - if ($nokp) { - $customer = Customer::on('mysql7') - ->select('tag_anggota') - ->where(function($q) use ($nokp) { - $q->where('kpbaru', $nokp) - ->orWhere('kplama', $nokp); - }) - ->first(); + public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{ - // 2️⃣ Jika anggota koperasi → kadar tetap - if ($customer && (int)$customer->tag_anggota === 1) { - Log::info('[DEBUG-UJRAH] Anggota koperasi', [ - 'nokp' => $nokp, - 'kadarujrah' => 0.16, - 'groupid' => $groupid, - 'nilaimarhun' => $nilaimarhun, - ]); - return 0.16; - } + $kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray(); + + return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0; } - // 3️⃣ Jika bukan anggota → ambil dari jadual kadar_upah - $kadar = KadarUpah::on('mysql7') - ->select('kadarujrah') - ->where([ - ['min', '<=', $nilaimarhun], - ['max', '>=', $nilaimarhun], - ]) - ->where('group_id', $groupid) - ->first(); - - if ($kadar && isset($kadar->kadarujrah)) { - Log::info('[DEBUG-UJRAH] Bukan anggota - dari jadual kadar_upah', [ - 'nokp' => $nokp, - 'kadarujrah' => (float)$kadar->kadarujrah, - 'groupid' => $groupid, - 'nilaimarhun' => $nilaimarhun, - ]); - return (float) $kadar->kadarujrah; - } - - // 4️⃣ Default fallback - Log::info('[DEBUG-UJRAH] Tiada kadar ditemui', [ - 'nokp' => $nokp, - 'groupid' => $groupid, - 'nilaimarhun' => $nilaimarhun, - ]); - return 0.0; -} - - public function getKadarUpah(float $nilaimarhun = 0.0){ $kadarupah = KadarUpah::on('mysql7')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->first();