From 6c2a4728c5df4d16b4237d0a87449f0c1b41b4a1 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 16 Nov 2023 09:55:31 +0800 Subject: [PATCH] fix rebet and ujrah untuk tebus and uncomment all audit --- app/Http/Controllers/GadaiController.php | 45 +++--- app/Http/Controllers/TebusController.php | 173 +++++++++++++++++++---- routes/web.php | 4 +- 3 files changed, 170 insertions(+), 52 deletions(-) diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index b017e23..f16f5e8 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -292,22 +292,23 @@ class GadaiController extends Controller 'ujrah' => $ujrah, 'onepercent' => $onepercent, 'margin_semasa' => $margin_pinjam, + 'tagbaru' => 1 )); $new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - // $audit = new Audit(); - // $audit->users = $request->teller; - // $audit->actions = $request->transaction; - // $audit->norujukan = $norujukan; - // $audit->new_data = $new_data; - // if($request->transaction == 'Ubah Gadai'){ - // $audit->old_data = $old_data; - // } - // $audit->kodcaw = $request->kodcaw; - // $audit->created_at = $current; - // $audit->updated_at = $current; - // $audit->save(); + $audit = new Audit(); + $audit->users = $request->teller; + $audit->actions = $request->transaction; + $audit->norujukan = $norujukan; + $audit->new_data = $new_data; + if($request->transaction == 'Ubah Gadai'){ + $audit->old_data = $old_data; + } + $audit->kodcaw = $request->kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); return response()->json($gadai, 200); } @@ -547,16 +548,16 @@ class GadaiController extends Controller $new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - // $audit = new Audit(); - // $audit->users = $request->teller; - // $audit->actions = 'Bayaran Ansuran'; - // $audit->norujukan = $norujukan; - // $audit->new_data = $new_data; - // $audit->old_data = $old_data; - // $audit->kodcaw = $kodcaw; - // $audit->created_at = $current; - // $audit->updated_at = $current; - // $audit->save(); + $audit = new Audit(); + $audit->users = $request->teller; + $audit->actions = 'Bayaran Ansuran'; + $audit->norujukan = $norujukan; + $audit->new_data = $new_data; + $audit->old_data = $old_data; + $audit->kodcaw = $kodcaw; + $audit->created_at = $current; + $audit->updated_at = $current; + $audit->save(); if(!$transaction || !$transaction_upah) { throw new \Exception('One of the database operations failed.'); diff --git a/app/Http/Controllers/TebusController.php b/app/Http/Controllers/TebusController.php index 24f7533..0ae3446 100644 --- a/app/Http/Controllers/TebusController.php +++ b/app/Http/Controllers/TebusController.php @@ -39,6 +39,8 @@ use App\AkruNet; use App\Services\OnePercentServices; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; + use Carbon\Carbon; class TebusController extends Controller @@ -52,7 +54,9 @@ class TebusController extends Controller ->where('norujukan','=',$norujukan) ->first(); - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + $jeniskeuntungan = ($gadai_data['tagbaru'] == 1) ? 'onepercent' : 'asal'; + + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan); $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; @@ -65,7 +69,7 @@ class TebusController extends Controller return response()->json($hargatebus); } - public function hargaTebusTawarruq($kodcaw,$norujukan){ + public function hargaTebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ $cawangan = Cawangan::on('mysql7') ->where('kodcaw','=',$kodcaw) ->first(); @@ -74,7 +78,7 @@ class TebusController extends Controller ->where('norujukan','=',$norujukan) ->first(); - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan); $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; @@ -87,7 +91,7 @@ class TebusController extends Controller return $hargatebus; } - public function kiraupahTawarruq($kodcaw,$norujukan){ + public function kiraupahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ $onepercentservices = new OnePercentServices(); $cawangan = Cawangan::on('mysql7') @@ -105,10 +109,13 @@ class TebusController extends Controller } $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); - // $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); - $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; - + if($jeniskeuntungan == 'onepercent'){ + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); + $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; + }else{ + $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); + } + $upah_semasa_round = number_format($upahsemasa_raw,2); if(strpos($upah_semasa_round,',')){ $upah_semasa_round = str_replace(',','',$upah_semasa_round); @@ -121,7 +128,7 @@ class TebusController extends Controller return $upah_semasa; } - public function kiraUpahRebet($kodcaw,$norujukan){ + public function kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan){ $onepercentservices = new OnePercentServices(); $cawangan = Cawangan::on('mysql7') @@ -140,9 +147,12 @@ class TebusController extends Controller $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); - $upahrebet_raw = $bilang_bln * $upah['keuntungan']; - // $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + if($jeniskeuntungan == 'onepercent'){ + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + $upahrebet_raw = $bilang_bln * $upah['keuntungan']; + }else{ + $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + } $upah_rebet_round = number_format($upahrebet_raw,2); if(strpos($upah_rebet_round,',')){ @@ -192,16 +202,16 @@ class TebusController extends Controller return $keuntungan_rebet_sebenar; } - public function upahTawarruq($kodcaw,$norujukan){ + public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ - $upah_semasa = $this->kiraupahTawarruq($kodcaw,$norujukan); + $upah_semasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$jeniskeuntungan); return response()->json(number_format($upah_semasa,2)); } - public function upahRebetTawarruq($kodcaw,$norujukan){ + public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ - $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan); + $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan); return response()->json(number_format($upah_rebet,2)); } @@ -216,7 +226,7 @@ class TebusController extends Controller ->where('norujukan','=',$norujukan) ->first(); - $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan); + $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); $array_recno_marhun = $request->array_recno; @@ -418,7 +428,7 @@ class TebusController extends Controller return floatval(number_format($rebet,2)); } - function rebetselepastawarruq($kodcaw,$norujukan){ + function rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan){ $cawangan = Cawangan::on('mysql7') ->where('kodcaw','=',$kodcaw) ->first(); @@ -431,7 +441,7 @@ class TebusController extends Controller ->where('norujukan','=',$norujukan) ->sum('keuntungan_rebet'); - $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan); + $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan); $rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet; @@ -452,9 +462,8 @@ class TebusController extends Controller $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - if($request->jenisbayarantebus == "tawarruq") - { - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + if($request->jenisbayarantebus == "tawarruq"){ + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); } else if($request->jenisbayarantebus == "nottawarruq") { @@ -466,16 +475,25 @@ class TebusController extends Controller $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + $ujrah=0;$onepercent=0; if($gadai['hargajualan'] == null){ $harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan); $upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan); $upah_rebet = 0; $upah_rebet_sebenar = 0; }else{ - $harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan); - $upah_tebus = $this->kiraupahTawarruq($kodcaw,$norujukan); + $harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); + $upah_tebus = $this->kiraupahTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); $upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan); $upah_rebet_sebenar = $harga_tebus - $gadai['bakipjm']; + + if($request->jeniskeuntungan == 'onepercent'){ + $array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan); + $array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan); + $margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100; + $ujrah = $array_onepercent['ujrah']; + $onepercent = $array_onepercent['onepercent']; + } } @@ -502,7 +520,9 @@ class TebusController extends Controller 'marhuntebus' => $request->marhun, 'historygadaian' => $norujukan, 'tarikhbyrn' => $current->toDateString(), - 'teller' => $request->teller + 'teller' => $request->teller, + 'ujrah' => $ujrah, + 'onepercent' => $onepercent, ]); $create_inoutmar = InOutMar::on($cawangan['mysql'])->create([ @@ -525,7 +545,14 @@ class TebusController extends Controller 'bayaran_pembiayaan' => $gadai['bakipjm'], 'keuntungan_rebet' => $upah_rebet_sebenar, 'tarikh_bayaran'=> $current, - 'kodcaw'=> $kodcaw + 'kodcaw'=> $kodcaw, + 'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0, + 'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['ujrah'] : 0, + 'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0, + 'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['onepercent'] : 0, + 'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0, + 'tempoh' => $gadai['tempoh'], + 'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']), ]); if($request->jenistebus == 'P'){ @@ -587,7 +614,7 @@ class TebusController extends Controller if($request->jenisbayarantebus == "tawarruq") { - $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan); + $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$request->jeniskeuntungan); } else if($request->jenisbayarantebus == "nottawarruq") { @@ -604,7 +631,7 @@ class TebusController extends Controller 't_update' => $current->toDateString(), )); - $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan); + $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$request->jeniskeuntungan); $create_tebus = Tebus::on($cawangan['mysql'])->create([ 'kodcaw'=> $kodcaw, @@ -2196,4 +2223,94 @@ class TebusController extends Controller return response()->json($total_accrual_net); } + public function kiraupahUjrahOnePercent($kodcaw,$norujukan){ + $onepercentservices = new OnePercentServices(); + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + $array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); + $ujrah = $bilang_bln * $array_upah['ujrah']; + $onepercent = $bilang_bln * $array_upah['onepercent']; + + + $ujrah_semasa_round = number_format($ujrah,2); + if(strpos($ujrah_semasa_round,',')){ + $ujrah_semasa_round = str_replace(',','',$ujrah_semasa_round); + } + $ujrah_semasa = substr($ujrah_semasa_round, 0, -1); + if(strpos($ujrah_semasa,',')){ + $ujrah_semasa = str_replace(',','',$ujrah_semasa); + } + + $onepercent_semasa_round = number_format($onepercent,2); + if(strpos($onepercent_semasa_round,',')){ + $onepercent_semasa_round = str_replace(',','',$onepercent_semasa_round); + } + $onepercent_semasa = substr($onepercent_semasa_round, 0, -1); + if(strpos($onepercent_semasa,',')){ + $onepercent_semasa = str_replace(',','',$onepercent_semasa); + } + + return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa]; + } + + public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){ + $onepercentservices = new OnePercentServices(); + + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + if($gadai_data['tempoh'] >= 12.0){ + $tempoh = 12; + }else{ + $tempoh = $gadai_data['tempoh']; + } + + $bilang_bln = $tempoh - $gadai_data['tempohbayar']; + $array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + $ujrah = $bilang_bln * $array_upah['ujrah']; + $onepercent = $bilang_bln * $array_upah['onepercent']; + + + $ujrah_semasa_round = number_format($ujrah,2); + if(strpos($ujrah_semasa_round,',')){ + $ujrah_semasa_round = str_replace(',','',$ujrah_semasa_round); + } + $ujrah_semasa = substr($ujrah_semasa_round, 0, -1); + if(strpos($ujrah_semasa,',')){ + $ujrah_semasa = str_replace(',','',$ujrah_semasa); + } + + $onepercent_semasa_round = number_format($onepercent,2); + if(strpos($onepercent_semasa_round,',')){ + $onepercent_semasa_round = str_replace(',','',$onepercent_semasa_round); + } + $onepercent_semasa = substr($onepercent_semasa_round, 0, -1); + if(strpos($onepercent_semasa,',')){ + $onepercent_semasa = str_replace(',','',$onepercent_semasa); + } + + return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa]; + } + + + } diff --git a/routes/web.php b/routes/web.php index 7250486..0842c8d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -106,8 +106,8 @@ $router->group(['prefix'=>'api'], function () use ($router){ //Tebus API $router->get('tebustawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusTawarruq']); - $router->get('upahtawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@upahTawarruq']); - $router->get('upahrebettawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@upahRebetTawarruq']); + $router->get('upahtawarruq/{kodcaw}/{norujukan}/{jeniskeuntungan}',['uses'=>'TebusController@upahTawarruq']); + $router->get('upahrebettawarruq/{kodcaw}/{norujukan}/{jeniskeuntungan}',['uses'=>'TebusController@upahRebetTawarruq']); $router->get('tebusseparuhtawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusSeparuhTawarruq']); $router->get('tebusseparuhbukantawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusSeparuhNotTawarruq']); $router->get('tebusbukantawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusNotTawarruq']);