From e6ef3103337a3c6811c1251a5cf9776c98662795 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 23 Nov 2023 16:15:35 +0800 Subject: [PATCH 1/3] make faker for gadai and changes marhun to make the calculation for the gold, update composer remove helpers --- app/Http/Controllers/MarhunController.php | 14 +++- composer.json | 9 +-- database/factories/GadaiFactory.php | 81 +++++++++++++++++++++++ database/factories/MarhunFactory.php | 32 +++++++++ database/seeds/GadaiSeeder.php | 26 ++++++++ tinker/fakerGadai.php | 18 +++++ 6 files changed, 170 insertions(+), 10 deletions(-) create mode 100644 database/factories/GadaiFactory.php create mode 100644 database/factories/MarhunFactory.php create mode 100644 database/seeds/GadaiSeeder.php create mode 100644 tinker/fakerGadai.php diff --git a/app/Http/Controllers/MarhunController.php b/app/Http/Controllers/MarhunController.php index 87c4b82..3d1fa5d 100644 --- a/app/Http/Controllers/MarhunController.php +++ b/app/Http/Controllers/MarhunController.php @@ -63,7 +63,17 @@ class MarhunController extends Controller $harga = HargaEmas::on('mysql7')->where('karat',$request->karat)->first(); - $nilai_marhun = $request->berat_emas * $harga['harga']; + $hargaemas = $harga['harga']; + if(isset($request->jenisAT)){ + if($request->jenisAT == 'hargalama'){ + $hargaemas = $request->harga; + // $nilai_marhun = $request->berat_emas * $request->harga; + }else $hargaemas = $harga['harga']; + // $nilai_marhun = $request->berat_emas * $harga['harga']; + }else $hargaemas = $harga['harga']; + + $nilai_marhun = $request->berat_emas * $hargaemas; + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $marhun = Marhun::on($cawangan['mysql'])->create([ @@ -75,7 +85,7 @@ class MarhunController extends Controller 'nota' => $request->nota, 'karat' => $request->karat, 'berat' => $request->berat_emas, - 'harga' => $harga['harga'], + 'harga' => $hargaemas, 'n_marhun' => $nilai_marhun ]); diff --git a/composer.json b/composer.json index 392ab97..2c8071f 100644 --- a/composer.json +++ b/composer.json @@ -1,11 +1,7 @@ { "name": "laravel/lumen", "description": "The Laravel Lumen Framework.", - "keywords": [ - "framework", - "laravel", - "lumen" - ], + "keywords": ["framework", "laravel", "lumen"], "license": "MIT", "type": "project", "require": { @@ -21,9 +17,6 @@ "phpunit/phpunit": "^8.5" }, "autoload": { - "files": [ - "app/helpers.php" - ], "classmap": [ "database/seeds", "database/factories" diff --git a/database/factories/GadaiFactory.php b/database/factories/GadaiFactory.php new file mode 100644 index 0000000..de17d3b --- /dev/null +++ b/database/factories/GadaiFactory.php @@ -0,0 +1,81 @@ +faker = $faker; + } + + public function create() + { + static $number = 1; + + return [ + 'kodcaw' => 'KB2', + 'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number , + 'nopelanggan' => 'M03-00009968', + 'nokp' => '630411035213', + 't_gadai' => '2023-11-23', + 'masa' => '13:46:57', + 'sirig' => $number++, + 'nilaimarhun' => 3000.09, + 'berat' => 10.17, + 'pinjaman' => 2300, + 'telahbayar' => 0.00, + 'upahtelahbyr' => 0.00, + 'cajtelahbyr' => null, + 'ansuran' => null, + 'ansupah' => null, + 'kadarupah' => null, + 'tempoh' => 0.5, + 't_lelong' => null, + 't_hapus' => null, + 'sttebus' => '', + 'terima' => 1, + 'cetak' => 1, + 'tncek' => null, + 'nocek' => null, + 'bkcode' => null, + 'teller' => 'NORLY BINTI DERAMAN', + 'pelulus' => null, + 'cancelid' => null, + 'canceltime' => null, + 'f_lulus' => null, + 'tag' => null, + 'jbg' => 0.5, + 'bakipjm' => 2300, + 'bakiupah' => 39.1, + 'upahdibayar' => 0.00, + 'marhun' => '1 R/L,', + 'taglel' => null, + 't_update' => '2023-11-23', + 't_matang' => '2024-06-24', + 't_matang1' => '2024-06-24', + 'penilai' => 'MOHD KHALID ABDUL RAHMAN', + 'tagserah' => 1, + 'namapelulus' => '', + 'percentpinj' => 80, + 'namateller' => 'NORLY BINTI DERAMAN', + 'jumtebus' => 0.00, + 'upahnotis' => 0.00, + 'tagpalsu' => 0, + 'historygadaian' => '', + 'tagcetak' => 1, + 'lel1stop' => 0, + 'tebus' => null, + 'bakihargajualan' => 2769.2, + 'hargajualan' => 2769.2, + 'upah12' => 120, + 'tagkomuditi' => 0, + 'tempohbayar' => 0, + 'lelong_tawarruq' => 0, + 'semakbarcode' => 'Lulus' + ]; + } + +} \ No newline at end of file diff --git a/database/factories/MarhunFactory.php b/database/factories/MarhunFactory.php new file mode 100644 index 0000000..ecad2f6 --- /dev/null +++ b/database/factories/MarhunFactory.php @@ -0,0 +1,32 @@ +faker = $faker; + } + + public function create() + { + static $number = 1; + + return [ + 'kodcaw' => 'KB2', + 'marhun' => 'R/L', + 't_gadai' => '2023-11-23', + 'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number , + 'bil' => 1, + 'nota' => $number++, + 'karat' => '24.0K', + 'berat' => 10.17, + 'harga' => 295.11, + 'n_marhun' => 3000.09 + ]; + } + +} \ No newline at end of file diff --git a/database/seeds/GadaiSeeder.php b/database/seeds/GadaiSeeder.php new file mode 100644 index 0000000..d94cbce --- /dev/null +++ b/database/seeds/GadaiSeeder.php @@ -0,0 +1,26 @@ +table('gadai')->insert($gadaiFactory->create()); + DB::connection('mysql')->table('marhun')->insert($gadaiFactory->create()); + } + } +} diff --git a/tinker/fakerGadai.php b/tinker/fakerGadai.php new file mode 100644 index 0000000..4117a5b --- /dev/null +++ b/tinker/fakerGadai.php @@ -0,0 +1,18 @@ +table('gadai')->insert($gadaiFactory->create()); + DB::connection('mysql')->table('marhun')->insert($marhunFactory->create()); + } + + exit(); + +?> \ No newline at end of file From e42025d3672363847f8e7011d1d88ff8b37d1521 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Wed, 29 Nov 2023 14:19:00 +0800 Subject: [PATCH 2/3] fix database faker --- database/factories/GadaiFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/factories/GadaiFactory.php b/database/factories/GadaiFactory.php index de17d3b..c9a3c5c 100644 --- a/database/factories/GadaiFactory.php +++ b/database/factories/GadaiFactory.php @@ -31,7 +31,7 @@ class GadaiFactory 'cajtelahbyr' => null, 'ansuran' => null, 'ansupah' => null, - 'kadarupah' => null, + 'kadarupah' => 1.7, 'tempoh' => 0.5, 't_lelong' => null, 't_hapus' => null, From 096025bcbc95d41435878eadf6abf0b21d6b4a73 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 30 Nov 2023 09:33:12 +0800 Subject: [PATCH 3/3] fix one percent mengikut excel kak aida --- app/Http/Controllers/GadaiController.php | 21 ++--- app/Http/Controllers/TebusController.php | 106 ++++++++++++----------- app/Services/OnePercentServices.php | 14 ++- 3 files changed, 78 insertions(+), 63 deletions(-) diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index e443a22..ce24d26 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -360,12 +360,13 @@ class GadaiController extends Controller // $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); - // $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa)); - if(strpos($upah_semasa,',')){ - $upah_semasa = str_replace(',','',$upah_semasa); - } + $upah_semasa = round($upahsemasa_raw,PHP_ROUND_HALF_UP); + // $upah_semasa_round = number_format($upahsemasa_raw,2); + // $upah_semasa = substr($upah_semasa_round, 0, -1); + // // $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa)); + // if(strpos($upah_semasa,',')){ + // $upah_semasa = str_replace(',','',$upah_semasa); + // } return $upah_semasa; } @@ -387,7 +388,7 @@ class GadaiController extends Controller } $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$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']; @@ -489,7 +490,7 @@ class GadaiController extends Controller $margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100; $keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa); - $ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['percentpinj']); + $ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']); $onepercentasal = $gadai['pinjaman'] * (1/100); @@ -523,8 +524,8 @@ class GadaiController extends Controller 'keuntungan_rebet'=> $upahrebet, 'tarikh_bayaran'=> $current, 'kodcaw'=> $kodcaw, - 'ujrah' => ($ujrahasal*$bilang_bln), - 'ujrah_rebet' => ($keuntungan['ujrah'] * $bilang_bln), + 'ujrah' => ($keuntungan['ujrah'] * $bilang_bln), + 'ujrah_rebet' => ($ujrahasal*$bilang_bln), 'onepercent' => ($onepercentasal * $bilang_bln), 'onepercent_rebet' => ($keuntungan['onepercent'] * $bilang_bln), 'tempoh' => $gadai['tempoh'], diff --git a/app/Http/Controllers/TebusController.php b/app/Http/Controllers/TebusController.php index 0ae3446..e08265d 100644 --- a/app/Http/Controllers/TebusController.php +++ b/app/Http/Controllers/TebusController.php @@ -57,14 +57,14 @@ class TebusController extends Controller $jeniskeuntungan = ($gadai_data['tagbaru'] == 1) ? 'onepercent' : 'asal'; $rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan); - $harga_tebus = $gadai_data['bakihargajualan'] - $rebet; - $hargatebus = bcdiv(round($harga_tebus,2),1,1); - $hargatebus = number_format($hargatebus,2); - if(strpos($hargatebus,',')){ - $hargatebus = str_replace(',','',$hargatebus); - } + $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP); + // $hargatebus = bcdiv(round($harga_tebus,2),1,1); + // $hargatebus = number_format($hargatebus,2); + // if(strpos($hargatebus,',')){ + // $hargatebus = str_replace(',','',$hargatebus); + // } return response()->json($hargatebus); } @@ -115,16 +115,17 @@ class TebusController extends Controller }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); - } - $upah_semasa = substr($upah_semasa_round, 0, -1); - if(strpos($upah_semasa,',')){ - $upah_semasa = str_replace(',','',$upah_semasa); - } + $upah_semasa = round($upahsemasa_raw,PHP_ROUND_HALF_UP); + // $upah_semasa_round = number_format($upahsemasa_raw,2); + // if(strpos($upah_semasa_round,',')){ + // $upah_semasa_round = str_replace(',','',$upah_semasa_round); + // } + // $upah_semasa = substr($upah_semasa_round, 0, -1); + // if(strpos($upah_semasa,',')){ + // $upah_semasa = str_replace(',','',$upah_semasa); + // } + return $upah_semasa; } @@ -148,20 +149,21 @@ class TebusController extends Controller $bilang_bln = $tempoh - $gadai_data['tempohbayar']; if($jeniskeuntungan == 'onepercent'){ - $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + $upah = $onepercentservices->kiraanKeuntunganRebet($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,',')){ - $upah_rebet_round = str_replace(',','',$upah_rebet_round); - } - $upah_rebet = substr($upah_rebet_round, 0, -1); - if(strpos($upah_rebet,',')){ - $upah_rebet = str_replace(',','',$upah_rebet); - } + $upah_rebet = round($upahrebet_raw ,PHP_ROUND_HALF_UP); + // $upah_rebet_round = number_format($upahrebet_raw,2); + // if(strpos($upah_rebet_round,',')){ + // $upah_rebet_round = str_replace(',','',$upah_rebet_round); + // } + // $upah_rebet = substr($upah_rebet_round, 0, -1); + // if(strpos($upah_rebet,',')){ + // $upah_rebet = str_replace(',','',$upah_rebet); + // } return $upah_rebet; } @@ -185,14 +187,15 @@ class TebusController extends Controller $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); - $upah_rebet_round = number_format($upahrebet_raw,2); - if(strpos($upah_rebet_round,',')){ - $upah_rebet_round = str_replace(',','',$upah_rebet_round); - } - $upah_rebet = substr($upah_rebet_round, 0, -1); - if(strpos($upah_rebet,',')){ - $upah_rebet = str_replace(',','',$upah_rebet); - } + $upah_rebet = round($upahrebet_raw,PHP_ROUND_HALF_UP); + // $upah_rebet_round = number_format($upahrebet_raw,2); + // if(strpos($upah_rebet_round,',')){ + // $upah_rebet_round = str_replace(',','',$upah_rebet_round); + // } + // $upah_rebet = substr($upah_rebet_round, 0, -1); + // if(strpos($upah_rebet,',')){ + // $upah_rebet = str_replace(',','',$upah_rebet); + // } $total_untung_rebet = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('keuntungan_rebet'); $total_untung_asal = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('bayaran_keuntungan'); @@ -444,7 +447,7 @@ class TebusController extends Controller $upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan); $rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet; - + // dd($gadai_data['upah12'],$transaction_keuntungan,$upah_rebet,$jeniskeuntungan,$rebet_raw); $rebet_round = bcdiv(round($rebet_raw,2),1,1); $rebet_round = number_format($rebet_round,2); @@ -2285,28 +2288,29 @@ class TebusController extends Controller } $bilang_bln = $tempoh - $gadai_data['tempohbayar']; - $array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); + $array_upah = $onepercentservices->kiraanKeuntunganRebet($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($ujrah,PHP_ROUND_HALF_UP); + // $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); + // } - $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); - } + $onepercent_semasa = round($onepercent,PHP_ROUND_HALF_UP); + // $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/app/Services/OnePercentServices.php b/app/Services/OnePercentServices.php index 6e0099e..b740b82 100644 --- a/app/Services/OnePercentServices.php +++ b/app/Services/OnePercentServices.php @@ -21,7 +21,7 @@ class OnePercentServices $formula_margin = ($this->maks_margin - $margin) / $this->maks_margin; $ujrah_margin = $formula_margin * $kadarujrah; $rebate_ujrah = $nilaimarhun*($ujrah_margin/100); - $ujrah_sebenar = $ujrah - $rebate_ujrah; + $ujrah_sebenar = $ujrah; return $ujrah_sebenar; } @@ -48,10 +48,20 @@ class OnePercentServices $formula_margin = ($this->maks_margin - $margin) / $this->maks_margin; $rebate_ujrah = $formula_margin * $ujrah; $ujrah_sebenar = $ujrah - $rebate_ujrah; - + return $ujrah_sebenar; } + public function kiraanKeuntunganRebet(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){ + + $onepercent = $this->kiraanOnePercent($pembiayaan); + $ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin); + + $keuntungan = $onepercent + $ujrah_sebenar; + + return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar]; + } + public function kiraanKeuntunganSebenar(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){ $onepercent = $this->kiraanOnePercent($pembiayaan);