From 2363c2947dc7324703ca222a21574534156dd6ef Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Wed, 2 Sep 2026 16:41:49 +0800 Subject: [PATCH] fix diskaun promosi on tebus --- app/Http/Controllers/LelongController.php | 4 +- app/Support/v2/Penebusan.php | 59 +++++++++++++++-------- 2 files changed, 40 insertions(+), 23 deletions(-) diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index 2fadd77..f64a19f 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -605,9 +605,9 @@ class LelongController extends Controller if($cawangan['tagarrahnbid'] == 1){ if(env('APP_ENV') != 'production'){ - $link = 'https://adminbid-kopkb.erahn.com.my/api/portalApi'; + $link = 'https://adminbid-annur.erahn.com.my/api/portalApi'; }else{ - $link = 'https://adminbid-kopkb.erahn.com.my/api/portalApi'; + $link = 'https://adminbid-annur.erahn.com.my/api/portalApi'; } $lelong = Http::withOptions(['verify' => true])->get($link,[ diff --git a/app/Support/v2/Penebusan.php b/app/Support/v2/Penebusan.php index e2c2c24..78ca79d 100644 --- a/app/Support/v2/Penebusan.php +++ b/app/Support/v2/Penebusan.php @@ -496,7 +496,7 @@ class Penebusan return response()->json('duplicate'); } - $ujrah=0;$onepercent=0;$rounded=0; + $ujrah=0;$onepercent=0;$rounded=0;$upah_rebet_sebenar=0; if($gadai['hargajualan'] == null){ $harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan); $upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); @@ -506,7 +506,6 @@ class Penebusan $harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); $upah_tebus = $this->kiraupahTawarruq($norujukan); $upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan); - $upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm']; if($request->jeniskeuntungan == 'onepercent'){ $array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan); @@ -518,10 +517,14 @@ class Penebusan $ujrah = $array_onepercent['ujrah']; $onepercent = $array_onepercent['onepercent']; } + + // FIX: tolak diskaun DAHULU sebelum kira upah_rebet_sebenar + $harga_tebus['harga'] -= $diskaun; + + $upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm']; } - // Tolak diskaun dari harga tebus - $harga_tebus['harga'] -= $diskaun; + $bayaran_keuntungan_bersih = max(0, $upah_rebet_sebenar); $create_tebus = Tebus::on($cawangan['mysql'])->create([ 'kodcaw'=> $kodcaw, @@ -566,21 +569,31 @@ class Penebusan 'namateller' => $request->teller ]); - $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ - 'norujukan' => $norujukan, - 'bayaran_keuntungan' => $upah_tebus, - 'bayaran_pembiayaan' => $gadai['bakipjm'], - 'keuntungan_rebet' => $upah_rebet_sebenar, - 'tarikh_bayaran'=> $current, - 'kodcaw'=> $kodcaw, - 'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0, - 'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $ujrah_rebet : 0, - 'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0, - 'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $onepercent_rebet : 0, - 'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0, - 'tempoh' => $gadai['tempoh'], - 'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']), - ]); + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $bayaran_keuntungan_bersih, + 'bayaran_pembiayaan' => $gadai['bakipjm'], + 'keuntungan_rebet' => $upah_rebet_sebenar, + 'tarikh_bayaran' => $current, + 'kodcaw' => $kodcaw, + 'ujrah' => ($request->jeniskeuntungan == 'onepercent') + ? $array_onepercent['ujrah'] + : 0, + 'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') + ? $ujrah_rebet + : 0, + 'onepercent' => ($request->jeniskeuntungan == 'onepercent') + ? $array_onepercent['onepercent'] + : 0, + 'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') + ? $onepercent_rebet + : 0, + 'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') + ? $margin_semasa + : 0, + 'tempoh' => $gadai['tempoh'], + 'beza_tempoh' => $gadai['tempoh'] - $gadai['tempohbayar'], +]); if($request->jenistebus == 'P'){ $baki_hargajualan = $gadai['bakihargajualan'] - $request->bakiupah; @@ -690,6 +703,8 @@ class Penebusan } } + $bayaran_keuntungan_bersih = max(0, $upah_rebet_sebenar); + $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( 'sttebus' => "T", 't_update' => $current->toDateString(), @@ -743,7 +758,7 @@ class Penebusan $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ 'norujukan' => $norujukan, - 'bayaran_keuntungan' => $upah_tebus, + 'bayaran_keuntungan' => $bayaran_keuntungan_bersih, 'bayaran_pembiayaan' => $bayaran_pembiayaan, 'keuntungan_rebet' => $upah_rebet_sebenar, 'tarikh_bayaran'=> $current, @@ -1140,10 +1155,12 @@ class Penebusan $upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm']; + $bayaran_keuntungan_bersih = max(0, $upah_rebet_sebenar); + try{ TransaksiKeuntungan::on('mysql7')->create([ 'norujukan' => $norujukan, - 'bayaran_keuntungan' => $upah_tebus, + 'bayaran_keuntungan' => $bayaran_keuntungan_bersih, 'bayaran_pembiayaan' => $bayaran_pembiayaan, 'keuntungan_rebet' => $upah_rebet_sebenar, 'tarikh_bayaran'=> $current,