From e44bdca389503877bc5eb266b86a9aa8994b1ddd Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 9 Nov 2023 01:31:59 +0800 Subject: [PATCH] update when storing gadai data for one percent --- app/Http/Controllers/GadaiController.php | 111 +++++++++++++----- app/Services/OnePercentServices.php | 9 +- ...0612_add_onepercent_to_kadarupah_table.php | 33 ++++++ routes/web.php | 6 + 4 files changed, 129 insertions(+), 30 deletions(-) create mode 100644 database/migrations/2023_11_08_150612_add_onepercent_to_kadarupah_table.php diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index 3503945..8c26e0b 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -32,8 +32,9 @@ use App\InOutMar; use Illuminate\Http\Request; +use App\Services\OnePercentServices; -use DB; +use Illuminate\Support\Facades\DB; use Carbon\Carbon; @@ -132,17 +133,27 @@ class GadaiController extends Controller $current = new Carbon(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - $gadai = Gadai::on($cawangan['mysql'])->create([ - 'kodcaw'=>$kodcaw, - 'norujukan' => $request->norujukan, - 'nopelanggan' => $request->nopelanggan, - 'nokp' => $request->nokp, - 'sirig' => $request->sirig, - 't_gadai' => $current->toDateString(), - 'sttebus' => '', - 'masa' =>$current->toTimeString() - ]); - return response()->json($gadai, 201); + + try{ + DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) { + $gadai = Gadai::on($cawangan['mysql'])->create([ + 'kodcaw'=>$kodcaw, + 'norujukan' => $request->norujukan, + 'nopelanggan' => $request->nopelanggan, + 'nokp' => $request->nokp, + 'sirig' => $request->sirig, + 't_gadai' => $current->toDateString(), + 'sttebus' => '', + 'masa' =>$current->toTimeString() + ]); + return response()->json($gadai, 201); + }); + + + }catch(\Exception $e){ + + echo "Gadaian Gagal: " . $e->getMessage(); + } } public function createold($kodcaw,Request $request){ @@ -235,9 +246,17 @@ class GadaiController extends Controller $total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat'); $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first(); - $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100); + + $onepercentservices = new OnePercentServices(); + $keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjam); + // $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100); + // $upah6 = $upah1 * 6; + // $upah12 = $upah1 * 12; + $upah1 = $keuntungan['keuntungan']; $upah6 = $upah1 * 6; $upah12 = $upah1 * 12; + $ujrah = $keuntungan['ujrah']; + $onepercent = $keuntungan['onepercent']; $hargajualan = $request->pinjaman + $upah12; @@ -247,7 +266,7 @@ class GadaiController extends Controller 'nilaimarhun' => $total_nilai_marhun, 'berat'=> $total_berat, 'pinjaman' => $request->pinjaman, - 'kadarupah' => $kadar_raw['kadarupdah'], + 'kadarupah' => $kadar_raw['kadarujrah'], 'marhun' => $request->marhun, 'percentpinj' => $margin_pinjam, 'teller' => $request->teller, @@ -267,23 +286,27 @@ class GadaiController extends Controller 'tagkomuditi' => 0, 'upahdibayar' => 0.00, 'tempohbayar' => 0.00, - 'lelong_tawarruq' => 1 + 'lelong_tawarruq' => 1, + 'kadarujrah' => $kadar_raw['kadarujrah'], + 'ujrah' => $ujrah, + 'onepercent' => $onepercent, + 'margin_semasa' => $margin_pinjam, )); $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); } @@ -313,6 +336,9 @@ class GadaiController extends Controller } public function kiraupahTawarruq($kodcaw,$norujukan){ + + $onepercentservices = new OnePercentServices(); + $cawangan = Cawangan::on('mysql7') ->where('kodcaw','=',$kodcaw) ->first(); @@ -328,7 +354,9 @@ class GadaiController extends Controller } $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + // $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); + $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; $upah_semasa_round = number_format($upahsemasa_raw,2); $upah_semasa = substr($upah_semasa_round, 0, -1); @@ -340,6 +368,8 @@ class GadaiController extends Controller } public function kiraUpahRebet($kodcaw,$norujukan){ + $onepercentservices = new OnePercentServices(); + $cawangan = Cawangan::on('mysql7') ->where('kodcaw','=',$kodcaw) ->first(); @@ -355,7 +385,10 @@ class GadaiController extends Controller } $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + + // $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + $upahrebet_raw = $bilang_bln * $upah['keuntungan']; $upah_rebet_round = number_format($upahrebet_raw,2); $upah_rebet = substr($upah_rebet_round, 0, -1); @@ -3627,4 +3660,24 @@ class GadaiController extends Controller return response()->json('success'); } + + public function getKadarUjrah(Request $request){ + + $onePercentServices = new OnePercentServices(); + + $kadarujrah = $onePercentServices->getKadarUjrah($request->nilaimarhun); + + $test = $this->kiraupahTawarruq('KB2','KB2231109-0001'); + dd($test); + return $kadarujrah; + } + + public function getOnePercent(Request $request){ + + $onePercentServices = new OnePercentServices(); + + $keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$request->margin); + + return $keuntungan; + } } diff --git a/app/Services/OnePercentServices.php b/app/Services/OnePercentServices.php index 271d316..b917724 100644 --- a/app/Services/OnePercentServices.php +++ b/app/Services/OnePercentServices.php @@ -2,7 +2,7 @@ namespace App\Services; - +use App\KadarUpah; class OnePercentServices { @@ -47,4 +47,11 @@ class OnePercentServices return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; } + + public function getKadarUjrah(float $nilaimarhun = 0.0) : Float{ + + $kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->get()->toArray(); + + return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0; + } } diff --git a/database/migrations/2023_11_08_150612_add_onepercent_to_kadarupah_table.php b/database/migrations/2023_11_08_150612_add_onepercent_to_kadarupah_table.php new file mode 100644 index 0000000..e7cb116 --- /dev/null +++ b/database/migrations/2023_11_08_150612_add_onepercent_to_kadarupah_table.php @@ -0,0 +1,33 @@ +table('kadarupah', function (Blueprint $table) { + $table->decimal('kadarujrah', 5, 2); + $table->decimal('kadaronepercent', 5, 2); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::connection('mysql7')->table('kadarupah', function (Blueprint $table) { + $table->dropColumn(['kadarujrah', 'kadaronepercent']); + }); + } +} diff --git a/routes/web.php b/routes/web.php index 2cd035c..7250486 100644 --- a/routes/web.php +++ b/routes/web.php @@ -573,6 +573,12 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('backup/stok/audit',['uses'=>'BackupStokAuditController@backupStokAudit']); $router->get('backup/stok/audit/problem',['uses'=>'BackupStokAuditController@backupStokAuditProblem']); $router->get('stokaudit/backdate',['uses'=>'BackupStokAuditController@LaporanAuditBackdate']); + + + //One Percent + $router->get('kadarujrah',['uses' => 'GadaiController@getKadarUjrah']); + $router->post('onepercent',['uses' => 'GadaiController@getOnePercent']); + }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){