Compare commits

5 Commits

Author SHA1 Message Date
nurafrinaalimi16 6961697298 include lahad datu on report stok audit 2026-06-14 15:36:33 +08:00
nurafrinaalimi16 482fbbd17e fix bilangan pelanggan baru on report terkumpul 2026-06-14 15:36:33 +08:00
nurafrinaalimi16 cd83999045 disable logs kadar anggota 2026-06-14 15:36:33 +08:00
nurafrinaalimi16 e8da816f35 put excpetion if kadar upah = 0 2026-06-14 15:36:33 +08:00
nurafrinaalimi16 39a2f9a5ef fix kadar upah return 0 2026-06-14 15:36:33 +08:00
6 changed files with 31 additions and 101 deletions
+2 -1
View File
@@ -846,7 +846,8 @@ $date = new Carbon($request->tarikh);
$bilangan_gadai = $gadai->count(); $bilangan_gadai = $gadai->count();
$bilangan_tebus = $tebus->count(); $bilangan_tebus = $tebus->count();
// $bilangan_ansuran = $ansuran->count(); // $bilangan_ansuran = $ansuran->count();
$bilangan_customer_baru = Customer::on($cawangan['mysql'])->where([['tarikhdaftar','>=',$request->mula],['tarikhdaftar','<=',$request->akhir]])->count(); //$bilangan_customer_baru = Customer::on($cawangan['mysql'])->where([['tarikhdaftar','>=',$request->mula],['tarikhdaftar','<=',$request->akhir]])->count();
$bilangan_customer_baru = Customer::on('mysql7')->where([['tarikhdaftar','>=',$request->mula],['tarikhdaftar','<=',$request->akhir]])->count();
//f //f
$data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','>=',$request->mula],['t_jual','<=',$request->akhir]])->get(); $data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','>=',$request->mula],['t_jual','<=',$request->akhir]])->get();
+4 -35
View File
@@ -3,7 +3,6 @@
namespace App\Services; namespace App\Services;
use App\KadarUpah; use App\KadarUpah;
use App\Customer;
class OnePercentServices class OnePercentServices
{ {
@@ -80,43 +79,13 @@ class OnePercentServices
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
} }
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid, $nokp = null): float public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : 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();
// Jika anggota koperasi → kadar tetap $kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->get()->toArray();
if ($customer && (int)$customer->tag_anggota === 1) {
return 0.16; // kadar ujrah tetap untuk anggota 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{ public function getRoundedMethod(float $number = 0.0) : Float{
$number_string = number_format(floor($number * 100)/100,2); $number_string = number_format(floor($number * 100)/100,2);
+5 -5
View File
@@ -65,11 +65,11 @@ class OnePercent extends MasterServices
public function getKadarUjrah(HttpRequest $request) public function getKadarUjrah(HttpRequest $request)
{ {
Log::info('[DEBUG-CONTROLLER] Data request', [ // Log::info('[DEBUG-CONTROLLER] Data request', [
'nokp' => $request->nokp, // 'nokp' => $request->nokp,
'kodcaw' => $request->kodcaw, // 'kodcaw' => $request->kodcaw,
'nilaimarhun' => $request->nilaimarhun // 'nilaimarhun' => $request->nilaimarhun
]); // ]);
$cawangan = Cawangan::on('mysql7')->where('kodcaw', $request->kodcaw)->first(); $cawangan = Cawangan::on('mysql7')->where('kodcaw', $request->kodcaw)->first();
$onePercentServices = new Calculation(); $onePercentServices = new Calculation();
+5 -54
View File
@@ -3,9 +3,6 @@
namespace App\Support\v2; namespace App\Support\v2;
use App\KadarUpah; use App\KadarUpah;
use App\Customer;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class Calculation 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){ 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); $this->one_percent = $this->getKadarUpah($nilaimarhun);
$onepercent = $this->kiraanOnePercent($pembiayaan); $onepercent = $this->kiraanOnePercent($pembiayaan);
$ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin); $ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin);
@@ -85,60 +83,13 @@ class Calculation
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
} }
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid, $nokp = null): float public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : 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();
// 2️⃣ Jika anggota koperasi → kadar tetap $kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray();
if ($customer && (int)$customer->tag_anggota === 1) {
Log::info('[DEBUG-UJRAH] Anggota koperasi', [ return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0;
'nokp' => $nokp,
'kadarujrah' => 0.16,
'groupid' => $groupid,
'nilaimarhun' => $nilaimarhun,
]);
return 0.16;
}
} }
// 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){ public function getKadarUpah(float $nilaimarhun = 0.0){
$kadarupah = KadarUpah::on('mysql7')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->first(); $kadarupah = KadarUpah::on('mysql7')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->first();
+14 -3
View File
@@ -59,7 +59,7 @@ class GadaiV2
} }
private function getKadarUpahAnggota($nokp,$total_nilai_marhun = 0,$groupid = 2) : Float{ private function getKadarUpahAnggota($nokp,$total_nilai_marhun = 0,$groupid = 2) : Float{
Log::info('DEBUG NOKP:' . $nokp); //Log::info('DEBUG NOKP:' . $nokp);
if($nokp){ if($nokp){
$customer = Customer::on('mysql7') $customer = Customer::on('mysql7')
->select('tag_anggota') ->select('tag_anggota')
@@ -108,8 +108,19 @@ class GadaiV2
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun'); $total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun');
$total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat'); $total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat');
//query kadar upah baru $kadar_raw = $this->getKadarUpahAnggota($request->nokp, $total_nilai_marhun, $cawangan['group_id']);
$kadar_raw = $this->getKadarUpahAnggota($request->nokp,$total_nilai_marhun,$cawangan['group_id']);
if (empty($kadar_raw) || $kadar_raw == 0) {
Log::error('[BLOCKED] Kadar upah kosong / 0', [
'nokp' => $request->nokp,
'total_nilai_marhun' => $total_nilai_marhun,
'group_id' => $cawangan['group_id'],
]);
throw new \Exception("Kadar upah kosong / 0, transaksi dibatalkan!");
}
// query kadar upah lama // query kadar upah lama
// $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first(); // $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first();
+1 -3
View File
@@ -1,7 +1,5 @@
<?php <?php
return [ return [
'excluded_cawangan' => [ 'excluded_cawangan' => []
'lahad datu',
]
]; ];