From 1a2e67f24c7e85e06fe88eb88eac11cdce2c30d8 Mon Sep 17 00:00:00 2001 From: Zakwan Hamdan Date: Sun, 5 Feb 2023 11:04:45 +0800 Subject: [PATCH] generate stok audit --- .../Controllers/BackupStokAuditController.php | 153 ++++++++++++++++++ routes/web.php | 1 + 2 files changed, 154 insertions(+) diff --git a/app/Http/Controllers/BackupStokAuditController.php b/app/Http/Controllers/BackupStokAuditController.php index f06b218..3b233a4 100644 --- a/app/Http/Controllers/BackupStokAuditController.php +++ b/app/Http/Controllers/BackupStokAuditController.php @@ -172,10 +172,163 @@ class BackupStokAuditController extends Controller return 'success'; } + public function backupStokAuditProblem(Request $request){ + if($request->zone == 'all'){ + $cawangan = Cawangan::on('mysql7')->get(); + }else{ + $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get(); + } + + // $tarikh = Carbon::now(); + // $tarikh = $tarikh->subDay(1); + $tarikh = Carbon::createFromFormat('Y-m-d H', $request->dateProblem)->toDateTimeString(); + $month = $tarikh->month; + $year = $tarikh->year; + + foreach($cawangan as $cawangan_mysql){ + $all_gadai = Gadai::on($cawangan_mysql['mysql']) + ->where([['tagpalsu','=',0],['sttebus','=','']]) + ->orderBy('t_gadai', 'ASC') + ->orderBy('sirig', 'ASC')->get(); + $data = []; + foreach($all_gadai as $gadai){ + $tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00'); + // $current = Carbon::now(); + // $current = $current->subDay(1); + $current = Carbon::createFromFormat('Y-m-d H', $request->dateProblem)->toDateTimeString(); + + $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 + )); + + $data_gadai = [ + 'tahun' => $year, + 'bulan' => $month, + 'norujukan' => $gadai['norujukan'], + 'tempoh' => $tempoh_gadai, + 'nokp' => $gadai['nokp'], + 'berat' => $gadai['berat'], + 'nilaimarhun' => $gadai['nilaimarhun'], + 'pinjaman' => $gadai['pinjaman'], + 'bakipjm' => $gadai['bakipjm'], + 'kadarupah' => $gadai['kadarupah'], + 'tempohblmbyar' => $gadai['tempoh'] - $gadai['tempohbayar'], + 'upahblmbyar' => $upah_semasa, + 'lanjutan' => $gadai['lelong_tawarruq'] + ]; + + array_push($data,$data_gadai); + } + + if($month == 1){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit1::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 2){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit2::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 3){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit3::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 4){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit4::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 5){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit5::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 6){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit6::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 7){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit7::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 8){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit8::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 9){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit9::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 10){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit10::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 11){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit11::on($cawangan_mysql['mysql'])->insert($t); + } + }elseif($month == 12){ + foreach (array_chunk($data,1000) as $t) + { + StokAudit12::on($cawangan_mysql['mysql'])->insert($t); + } + } + } + + return 'success'; + } + public function kiraupahTawarruqStokAudit($tempoh,$tempohbayar,$kadarupah,$bakipinjaman){ $bilang_bln = $tempoh - $tempohbayar; + if($bilang_bln > 12){ + $bilang_bln = 12; + } + $upahsemasa_raw = $bilang_bln * (($kadarupah/100 )* $bakipinjaman); $upah_semasa_round = number_format($upahsemasa_raw,2); diff --git a/routes/web.php b/routes/web.php index 222d3c8..3913fe4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -565,6 +565,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('keluar/lelong/tawarruq',['uses'=>'LelongController@keluarLelongTawarruq']); $router->get('backup/stok/audit',['uses'=>'BackupStokAuditController@backupStokAudit']); + $router->get('backup/stok/audit/problem',['uses'=>'BackupStokAuditController@backupStokAuditProblem']); $router->get('stokaudit/backdate',['uses'=>'BackupStokAuditController@LaporanAuditBackdate']); });