diff --git a/app/Http/Controllers/TransactionOnlineController.php b/app/Http/Controllers/TransactionOnlineController.php index 575ea97..4a33b2c 100644 --- a/app/Http/Controllers/TransactionOnlineController.php +++ b/app/Http/Controllers/TransactionOnlineController.php @@ -20,6 +20,7 @@ use App\Support\v2\GadaiV2 as Version2Gadai; use App\Support\v2\Calculation; use App\Http\Controllers\TebusController as TebusController; +use Illuminate\Support\Facades\Http; class TransactionOnlineController extends Controller { @@ -44,7 +45,7 @@ class TransactionOnlineController extends Controller $cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first(); $sag = Gadai::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->first(); - + $transaction = TransactionOnline::on('mysql7')->create([ 'nokp' => $request->nokp, 'reference_no' => $request->reference_no, @@ -88,7 +89,7 @@ class TransactionOnlineController extends Controller $this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']); } } - + GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $transaction['kodcaw'], @@ -187,7 +188,7 @@ class TransactionOnlineController extends Controller // if($gadai['tagbaru'] == 1){ // $upah_semasa = $keuntungan; // } - + // $baki_hargajualan = $gadai['bakihargajualan'] - $bayaran; // $baki_bayaran = $bayaran - $upahsemasa; @@ -224,7 +225,7 @@ class TransactionOnlineController extends Controller // } // $bilang_bln = $tempoh - $gadai['tempohbayar']; - + // $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ // 'norujukan' => $norujukan, @@ -241,8 +242,8 @@ class TransactionOnlineController extends Controller // 'beza_tempoh' => $bilang_bln, // 'margin_semasa' => $margin_semasa, // ]); - // - + // + // DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$baki_pinjaman,$current,$norujukan,$gadai,$baki_hargajualan,$lelong_tawarruq,$margin_semasa){ @@ -313,13 +314,13 @@ class TransactionOnlineController extends Controller $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); $margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100; - + $baki_hargajualan = $gadai['bakihargajualan'] - $bayaran; $margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100; try { - + DB::connection('mysql7')->transaction(function () use($norujukan,$gadai,$kodcaw,$current,$baki_hargajualan,$cawangan,$old_data,$lelong_tawarruq,$margin_semasa,$bayaran,$tempohbayar) { $transaction = Transaction::on('mysql7')->create([ @@ -339,7 +340,7 @@ class TransactionOnlineController extends Controller $tempoh = $gadai['tempoh']; } $bilang_bln = $tempoh - $gadai['tempohbayar']; - + if($gadai['tagbaru'] == 0){ $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$tempohbayar); $baki_bayaran = $bayaran - $upahsemasa; @@ -361,7 +362,7 @@ class TransactionOnlineController extends Controller 'margin_semasa' => $margin_semasa, ]); } else { - + $onepercent = new OnePercentServices(); $keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa); $ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['percentpinj']); @@ -372,10 +373,12 @@ class TransactionOnlineController extends Controller $upahsemasa = $gadaionepercent->kiraupahOnePercent($norujukan); $upahrebet = $gadaionepercent->kiraUpahRebet($norujukan); $baki_bayaran = $bayaran - $upahsemasa; - + + $ujrah_calculation = $this->getUjrah($kodcaw, $norujukan); + $onepercent = new Calculation(); $ujrah = $onepercent->getRoundedMethod($ujrahasal * $bilang_bln); - $ujrah_rebate = $onepercent->getRoundedMethod($keuntungan['ujrah'] * $bilang_bln); + $ujrah_rebate = $onepercent->getRoundedMethod($ujrah_calculation['ujrah_sebenar'] - $ujrah_calculation['ujrah_rebet']); $keun = $onepercent->getRoundedMethod($onepercentasal * $bilang_bln); $keuntungan_rebate = $onepercent->getRoundedMethod($keuntungan['onepercent'] * $bilang_bln); @@ -393,9 +396,9 @@ class TransactionOnlineController extends Controller 'tempoh' => $gadai['tempoh'], 'beza_tempoh' => $bilang_bln, 'margin_semasa' => $margin_semasa, - ]); + ]); } - + $baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran; DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$baki_pinjaman,$current,$norujukan,$gadai,$baki_hargajualan,$lelong_tawarruq,$margin_semasa){ @@ -428,7 +431,7 @@ class TransactionOnlineController extends Controller if(!$transaction || !$transaction_upah) { throw new \Exception('One of the database operations failed.'); } - + DB::commit(); @@ -485,7 +488,7 @@ class TransactionOnlineController extends Controller $current = new Carbon(); $boolmasa = false; $transaction_online = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','PAID'],['update_status',0],['tarikh',$current->toDateString()]])->first(); - + $transaction_masa = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','NOT PAID'],['tarikh',$current->toDateString()]]) ->orderBy('masa', 'desc')->first(); @@ -495,7 +498,7 @@ class TransactionOnlineController extends Controller $carbonmasaexpired->addMinutes(10); $boolmasa = ($carbonmasaexpired->greaterThanOrEqualTo($current) && $carbonmasa->lessThanOrEqualTo($current)) ? true : false; - } + } if($transaction_online || $boolmasa){ return response()->json(true); @@ -518,7 +521,7 @@ class TransactionOnlineController extends Controller return response()->json($transaction,200); } - + public function CustomerInfo(Request $request){ $cawangan_all = Cawangan::on('mysql7')->get(); @@ -535,7 +538,7 @@ class TransactionOnlineController extends Controller if(sizeof($gadai) != 0){ foreach($gadai as $gad) { - + if($gad['tagbaru'] == 1){ $jenis = 'onepercent'; }else{ @@ -545,7 +548,7 @@ class TransactionOnlineController extends Controller $array_utg = new \Illuminate\Http\Request([ 'jeniskeuntungan' => $jenis ]); - + $result = (new TebusController)->upahTawarruq($gad['kodcaw'],$gad['norujukan'],$array_utg); if($jenis == 'onepercent') { @@ -585,7 +588,7 @@ class TransactionOnlineController extends Controller 'lelong' => $akanlelongarray ),200); } - + public function updateTagPortal(Request $request){ $transaction = TransactionOnline::on('mysql7')->where('billplz_id','=',$request->billplz_id)->update(array( 'tagportal' => 1 @@ -594,4 +597,37 @@ class TransactionOnlineController extends Controller return response()->json($transaction,200); } + public function getUjrah($kodcaw, $norujukan) + { + + try { + $base_url = config('app.url'); + + $gadai = Http::get($base_url . "/api/gadai/norujukan/$kodcaw/$norujukan")->json()[0]; + $jenis_keuntungan = $gadai['tagbaru'] === 1 ? 'onepercent' : 'asal'; + + + $upah_tawarruq = Http::get($base_url . "/api/upahtawarruq/$kodcaw/$norujukan", ['jeniskeuntungan' => $jenis_keuntungan])->json(); + $upah_rebet_tawarruq = Http::get($base_url . "/api/upahrebettawarruq/$kodcaw/$norujukan", ['jeniskeuntungan' => $jenis_keuntungan])->json(); + + if($jenis_keuntungan === 'onepercent'){ + $ujrah_sebenar = (float)$upah_tawarruq['ujrah']; + $ujrah_rebet = $ujrah_sebenar - (float)$upah_rebet_tawarruq['ujrah']; + + return [ + 'ujrah_sebenar' => $ujrah_sebenar, + 'ujrah_rebet' => $ujrah_rebet, + ]; + } + + return [ + 'ujrah_sebenar' => (float)$upah_tawarruq, + 'ujrah_rebet' => (float)$upah_rebet_tawarruq, + ]; + + } catch (\Throwable $th) { + Log::error($th); + } + } + }