diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index 6e6f18e..6257226 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -3216,57 +3216,10 @@ class GadaiController extends Controller } foreach($cawangan as $cawangan_mysql){ - $all_gadai = Gadai::on($cawangan_mysql['mysql'])->whereNotIn('sttebus',['L','T'])->get(); - foreach($all_gadai as $gadai){ - if($gadai['t_update'] == null){ - $tarikh_update = Carbon::parse($gadai['t_gadai'].' '. $gadai['masa']); - }else{ - $tarikh_update = Carbon::parse($gadai['t_update'].' 00:00:00' ); - } - $tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00'); - $current = Carbon::now(); - - $tahun_gadai = $tarikh_gadai->year; - $bulan_gadai = $tarikh_gadai->month; - $hari_gadai = $tarikh_gadai->day; - - $tahun_semasa = $current->year; - $bulan_semasa = $current->month; - $hari_semasa = $current->day; - - if($hari_semasa >= $hari_gadai){ - $beza_hari = $hari_semasa - $hari_gadai + 1; - }else if($hari_semasa < $hari_gadai){ - $bulan_semasa = $bulan_semasa - 1; - $beza_hari = ($hari_semasa + 30) - $hari_gadai + 1; - } - - $extensivemonth_gadai = 0; - - if($beza_hari >= 1 && $beza_hari <= 15){ - $extensivemonth_gadai = 0.5; - }else if($beza_hari >= 16){ - $extensivemonth_gadai = 1; - }else{ - $extensivemonth_gadai = 0; - } - - $beza_tahun = $tahun_semasa - $tahun_gadai; - - $beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai; - - $tempoh_gadai = $beza_bulan + $extensivemonth_gadai; - - $upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']); - - Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array( - 'jbg' => $tempoh_gadai, - 'tempoh' => $tempoh_gadai, - 'tunggakan' => $upah_semasa - )); - } + $master = new MasterServices($cawangan_mysql['kodcaw']); + $response = $master->updateJBGSemasa($request); } - return response()->json('successful',200); + return $response; } public function PembiayaanBulanan(Request $request){ diff --git a/app/Services/MasterServices.php b/app/Services/MasterServices.php index 0df8790..91603e8 100644 --- a/app/Services/MasterServices.php +++ b/app/Services/MasterServices.php @@ -75,6 +75,12 @@ class MasterServices return $response; } + public function updateJBGSemasa(HttpRequest $request){ + $onepercent = new OnepercentEngine($this->cawangan); + $response = $onepercent->updateJBGsemasa($request); + return $response; + } + /* End Gadaian */ /* Start Penebusan */ diff --git a/app/Support/Onepercent.php b/app/Support/Onepercent.php index 69a0f32..83c7014 100644 --- a/app/Support/Onepercent.php +++ b/app/Support/Onepercent.php @@ -56,6 +56,12 @@ class OnePercent extends MasterServices return $response; } + public function updateJBGSemasa(HttpRequest $request){ + $gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->updateJBG($request); + return $response; + } + public function getKadarUjrah(HttpRequest $request){ $cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first(); $onePercentServices = new Calculation(); diff --git a/app/Support/Tawarruq.php b/app/Support/Tawarruq.php index aff1913..dc63fda 100644 --- a/app/Support/Tawarruq.php +++ b/app/Support/Tawarruq.php @@ -41,6 +41,12 @@ class Tawarruq extends MasterServices return $response; } + public function updateJBGSemasa(HttpRequest $request){ + $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); + $response = $gadai->updateJBG($request); + return $response; + } + public function getUpahSebenar($norujukan){ $gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info); $response = $gadai->kiraupahTawarruq($norujukan); diff --git a/app/Support/v1/GadaiV1.php b/app/Support/v1/GadaiV1.php index 08c54cb..902b50e 100644 --- a/app/Support/v1/GadaiV1.php +++ b/app/Support/v1/GadaiV1.php @@ -266,6 +266,61 @@ class GadaiV1 return response()->json($update_gadai, 200); } + public function updateJBG(HttpRequest $request){ + $cawangan_mysql = $this->cawangan_info; + $all_gadai = Gadai::on($cawangan_mysql['mysql'])->whereNotIn('sttebus',['L','T'])->get(); + foreach($all_gadai as $gadai){ + if($gadai['t_update'] == null){ + $tarikh_update = Carbon::parse($gadai['t_gadai'].' '. $gadai['masa']); + }else{ + $tarikh_update = Carbon::parse($gadai['t_update'].' 00:00:00' ); + } + $tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00'); + $current = Carbon::now(); + $tahun_gadai = $tarikh_gadai->year; + $bulan_gadai = $tarikh_gadai->month; + $hari_gadai = $tarikh_gadai->day; + $tahun_semasa = $current->year; + $bulan_semasa = $current->month; + $hari_semasa = $current->day; + if($hari_semasa >= $hari_gadai){ + $beza_hari = $hari_semasa - $hari_gadai + 1; + }else if($hari_semasa < $hari_gadai){ + $bulan_semasa = $bulan_semasa - 1; + $beza_hari = ($hari_semasa + 30) - $hari_gadai + 1; + } + $extensivemonth_gadai = 0; + if($beza_hari >= 1 && $beza_hari <= 15){ + $extensivemonth_gadai = 0.5; + }else if($beza_hari >= 16){ + $extensivemonth_gadai = 1; + }else{ + $extensivemonth_gadai = 0; + } + $beza_tahun = $tahun_semasa - $tahun_gadai; + $beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai; + $tempoh_gadai = $beza_bulan + $extensivemonth_gadai; + $upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']); + Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array( + 'jbg' => $tempoh_gadai, + 'tempoh' => $tempoh_gadai, + 'tunggakan' => $upah_semasa + )); + } + return response()->json('successful',200); + } + public function kiraupahTawarruqStokAudit($tempoh,$tempohbayar,$kadarupah,$bakipinjaman){ + $bilang_bln = $tempoh - $tempohbayar; + $upahsemasa_raw = $bilang_bln * (($kadarupah/100 )* $bakipinjaman); + $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; + } + } diff --git a/app/Support/v2/GadaiV2.php b/app/Support/v2/GadaiV2.php index 4e03a5b..b9d71ed 100644 --- a/app/Support/v2/GadaiV2.php +++ b/app/Support/v2/GadaiV2.php @@ -323,6 +323,97 @@ class GadaiV2 return response()->json("success",200); } + public function updateJBG(HttpRequest $request){ + $cawangan_mysql = $this->cawangan_info; + $all_gadai = Gadai::on($cawangan_mysql['mysql'])->whereNotIn('sttebus',['L','T'])->get(); + foreach($all_gadai as $gadai){ + if($gadai['t_update'] == null){ + $tarikh_update = Carbon::parse($gadai['t_gadai'].' '. $gadai['masa']); + }else{ + $tarikh_update = Carbon::parse($gadai['t_update'].' 00:00:00' ); + } + $tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00'); + $current = Carbon::now(); + $tahun_gadai = $tarikh_gadai->year; + $bulan_gadai = $tarikh_gadai->month; + $hari_gadai = $tarikh_gadai->day; + $tahun_semasa = $current->year; + $bulan_semasa = $current->month; + $hari_semasa = $current->day; + if($hari_semasa >= $hari_gadai){ + $beza_hari = $hari_semasa - $hari_gadai + 1; + }else if($hari_semasa < $hari_gadai){ + $bulan_semasa = $bulan_semasa - 1; + $beza_hari = ($hari_semasa + 30) - $hari_gadai + 1; + } + $extensivemonth_gadai = 0; + if($beza_hari >= 1 && $beza_hari <= 15){ + $extensivemonth_gadai = 0.5; + }else if($beza_hari >= 16){ + $extensivemonth_gadai = 1; + }else{ + $extensivemonth_gadai = 0; + } + $beza_tahun = $tahun_semasa - $tahun_gadai; + $beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai; + $tempoh_gadai = $beza_bulan + $extensivemonth_gadai; + + if(isset($gadai['tagbaru'])){ + if($gadai['tagbaru'] == 1){ + $upah_semasa = $this->kiraupahTawarruqStokAuditUjrahOnePercent($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['margin_semasa']); + Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array( + 'jbg' => $tempoh_gadai, + 'tempoh' => $tempoh_gadai, + 'tunggakan' => $upah_semasa['pendapatan'], + 'tunggakanujrah' => $upah_semasa['ujrah'], + 'tunggakanonepercent' => $upah_semasa['keuntungan'], + )); + } + else{ + $upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']); + Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array( + 'jbg' => $tempoh_gadai, + 'tempoh' => $tempoh_gadai, + 'tunggakan' => $upah_semasa, + )); + } + }else{ + $upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']); + Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array( + 'jbg' => $tempoh_gadai, + 'tempoh' => $tempoh_gadai, + 'tunggakan' => $upah_semasa, + )); + } + } + return response()->json('successful',200); +} +public function kiraupahTawarruqStokAudit($tempoh,$tempohbayar,$kadarupah,$bakipinjaman){ + $bilang_bln = $tempoh - $tempohbayar; + $upahsemasa_raw = $bilang_bln * (($kadarupah/100 )* $bakipinjaman); + $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; +} +public function kiraupahTawarruqStokAuditUjrahOnePercent($tempoh,$tempohbayar,$kadarupah,$bakipinjaman,$nilaimarhun,$margin_semasa){ + $onepercentservices = new Calculation(); + $upah = $onepercentservices->kiraanKeuntunganRebet($bakipinjaman,$nilaimarhun,$kadarupah,$margin_semasa); + $bilang_bln = $tempoh - $tempohbayar; + $keuntungan_semasa = $bilang_bln * $upah['onepercent']; + $ujrah_semasa = $bilang_bln * $upah['ujrah']; + $pendapatan = $keuntungan_semasa + $ujrah_semasa; + $arraypendapatan = [ + 'keuntungan' => $keuntungan_semasa, + 'ujrah' => $ujrah_semasa, + 'pendapatan' => $pendapatan, + ]; + return $arraypendapatan; +} + } diff --git a/database/migrations/2023_12_12_115215_add_tunggakan_to_gadai_table.php b/database/migrations/2023_12_12_115215_add_tunggakan_to_gadai_table.php new file mode 100644 index 0000000..3ec05bf --- /dev/null +++ b/database/migrations/2023_12_12_115215_add_tunggakan_to_gadai_table.php @@ -0,0 +1,69 @@ +getPdo(); + return true; + } catch(\Exception $e){ + return false; + } + }); + return $db_connection; + } + + public function up() + { + $db_connection = $this->getActiveDB(); + + foreach($db_connection as $dbase){ + Schema::connection($dbase)->table('gadai', function (Blueprint $table) { + $table->decimal('tunggakanujrah', 9, 2); + $table->decimal('tunggakanonepercent', 9, 2); + }); + } + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $db_connection = $this->getActiveDB(); + + foreach($db_connection as $dbase){ + if (Schema::connection('mysql7')->hasColumn('tunggakanujrah','tunggakanonepercent')){ + Schema::connection($dbase)->table('gadai', function (Blueprint $table) { + $table->dropColumn(['tunggakanujrah','tunggakanonepercent']); + }); + } + } + } +} \ No newline at end of file