From b8ff35e80403e74d53763e33d3cdade291c8eef7 Mon Sep 17 00:00:00 2001 From: Afiq Zakwan Date: Wed, 20 Dec 2023 08:04:51 +0800 Subject: [PATCH] portal --- app/Http/Controllers/MarhunController.php | 16 ++++++++++ .../TransactionOnlineController.php | 22 +++++++------ app/Services/MasterServices.php | 11 +++++-- app/TransactionOnline.php | 2 +- ...ran_column_in_transaction_online_table.php | 32 +++++++++++++++++++ routes/web.php | 1 + 6 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 database/migrations/2023_12_20_055044_add_jenisbayaran_column_in_transaction_online_table.php diff --git a/app/Http/Controllers/MarhunController.php b/app/Http/Controllers/MarhunController.php index 3d1fa5d..c091440 100644 --- a/app/Http/Controllers/MarhunController.php +++ b/app/Http/Controllers/MarhunController.php @@ -213,4 +213,20 @@ class MarhunController extends Controller return response()->json($marhun); } + + public function getNilaiMarhunLatest(Request $request){ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); + + $marhuns = Marhun::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->get(); + + $totalnilaimarhun = 0; + + foreach($marhuns as $index=>$marhun){ + $harga = HargaEmas::on('mysql7')->where('karat',$marhun->karat)->first(); + $nilai_marhun = $marhun->berat * $harga->harga; + $totalnilaimarhun = $totalnilaimarhun + $nilai_marhun; + } + + return response()->json($totalnilaimarhun); + } } diff --git a/app/Http/Controllers/TransactionOnlineController.php b/app/Http/Controllers/TransactionOnlineController.php index ce85014..19c0bfe 100644 --- a/app/Http/Controllers/TransactionOnlineController.php +++ b/app/Http/Controllers/TransactionOnlineController.php @@ -53,7 +53,8 @@ class TransactionOnlineController extends Controller 'tarikh' => $current->toDateString(), 'masa' => $current->toTimeString(), 'customer_name' => $request->customer_name, - 'tempohbayar'=>$sag['tempoh'] + 'tempohbayar'=>$sag['tempoh'], + 'jenisbayaran' => $request->jenisbayaran ? $request->jenisbayaran : 'A' ]); return response()->json($transaction,201); @@ -77,12 +78,14 @@ class TransactionOnlineController extends Controller ->where('kodcaw','=',$transaction['kodcaw']) ->first(); $gadai_data = Gadai::on($cawangan['mysql'])->where([['norujukan',$transaction['norujukan']],['nokp',$transaction['nokp']]])->first(); - - if($gadai_data['hargajualan'] > 0){ - $this->updateGadaiMarhunKaunter($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at'],$transaction['tempohbayar']); - }else{ - $this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']); + if($transaction->jenisbayaran == 'A'){ + if($gadai_data['hargajualan'] > 0){ + $this->updateGadaiMarhunKaunter($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at'],$transaction['tempohbayar']); + }else{ + $this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']); + } } + GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $transaction['kodcaw'], @@ -174,15 +177,14 @@ class TransactionOnlineController extends Controller $onepercent = new OnePercentServices(); $old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); - + $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['margin_semasa']); if($gadai['tagbaru'] == 1){ - $upahsemasa = $keuntungan; + $upah_semasa = $keuntungan; } - $baki_hargajualan = $gadai['bakihargajualan'] - $bayaran; $baki_bayaran = $bayaran - $upahsemasa; @@ -318,7 +320,7 @@ class TransactionOnlineController extends Controller $current = Carbon::now(); $current = new Carbon(); - $boolmasa = false; + $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()]]) diff --git a/app/Services/MasterServices.php b/app/Services/MasterServices.php index 91603e8..808a36a 100644 --- a/app/Services/MasterServices.php +++ b/app/Services/MasterServices.php @@ -50,8 +50,15 @@ class MasterServices return $response; } - public function kiraUpahTawarruq($kodcaw,$norujukan){ - $response = $this->engine->getUpahSebenar($norujukan); + public function kiraUpahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){ + if($jeniskeuntungan == 'onepercent'){ + $onepercent = new OnePercentEngine($this->cawangan); + $response = $onepercent->getUpahSebenar($norujukan); + + }else{ + $tawarruq = new TawarruqEngine($this->cawangan); + $response = $tawarruq->getUpahSebenar($norujukan); + } return $response; } diff --git a/app/TransactionOnline.php b/app/TransactionOnline.php index 2479f12..22831c6 100644 --- a/app/TransactionOnline.php +++ b/app/TransactionOnline.php @@ -15,7 +15,7 @@ class TransactionOnline extends Model * @var array */ protected $fillable = [ - 'nokp','reference_no','nosiri','total_payment','tarikh','masa','status','billplz_id','kodcaw','norujukan','paid_at','customer_name','update_status','update_serahan','tempohbayar','tagportal' + 'nokp','reference_no','nosiri','total_payment','tarikh','masa','status','billplz_id','kodcaw','norujukan','paid_at','customer_name','update_status','update_serahan','tempohbayar','tagportal','jenisbayaran' ]; /** diff --git a/database/migrations/2023_12_20_055044_add_jenisbayaran_column_in_transaction_online_table.php b/database/migrations/2023_12_20_055044_add_jenisbayaran_column_in_transaction_online_table.php new file mode 100644 index 0000000..00d7304 --- /dev/null +++ b/database/migrations/2023_12_20_055044_add_jenisbayaran_column_in_transaction_online_table.php @@ -0,0 +1,32 @@ +table('transaction_online', function (Blueprint $table) { + $table->string('jenisbayaran')->default('A'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::connection('mysql7')->table('transaction_online', function (Blueprint $table) { + $table->dropColumn(['jenisbayaran']); + }); + } +} diff --git a/routes/web.php b/routes/web.php index 81a80ef..c449fee 100644 --- a/routes/web.php +++ b/routes/web.php @@ -162,6 +162,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('marhun/laporan/{kodcaw}/{tarikh}',['uses'=>'MarhunController@getLaporanMarhunHarian']); $router->get('marhunterkumpul/laporan/{kodcaw}/{tarikh}',['uses'=>'MarhunController@getLaporanMarhunTerkumpul']); $router->get('marhun/mutu/sag',['uses'=>'MarhunController@getMutuMarhun']); + $router->get('marhun/nilai/terkini',['uses'=>'MarhunController@getNilaiMarhunLatest']); $router->get('jemas',['uses'=>'MarhunController@getAllJemas']);