From e0df380039165c47e667bbc8070c324242e44e8d Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Wed, 30 Nov 2022 22:45:42 +0800 Subject: [PATCH] add daily akru generate --- app/Http/Controllers/LaporanController.php | 74 +++++++++++++++++++++- routes/web.php | 1 + 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 4443771..dd2c21b 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -25,7 +25,7 @@ use Carbon\Carbon; use App\imbangdugalama; use DateTime; -use DB; +use Illuminate\Support\Facades\DB; class LaporanController extends Controller { @@ -1300,4 +1300,76 @@ class LaporanController extends Controller return response($jumlah); } + + public function GenerateDailyAkrual(Request $request){ + + $current = Carbon::now(); + $current = new Carbon(); + $month_generate = $current->format('m'); + $year_generate = $current->format('Y'); + $harini = $current->toDateString(); + + $haripertama = $current->firstOfMonth(); + $haripertama_extension = $haripertama->toDateString(); + + $month_sebelum = $current->subMonth()->format('m'); + + $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get(); + + $tebuscontroller = new TebusController(); + + foreach($cawangan as $index=>$caw){ + DB::connection($caw['mysql'])->beginTransaction(); + + if($year_generate == 2022 && (int)$month_sebelum > 4){ + $audit_backdate = $tebuscontroller->StokAuditGenerateTerakru($month_sebelum,$caw,$year_generate); + } + + $audit_now = Gadai::on($caw['mysql']) + ->where([['tagpalsu','=',0],['t_gadai','<=',$harini],['sttebus','=','']]) + ->orWhere([['tagpalsu','=',0],['t_update','>',$harini],['sttebus','!=',''],['t_gadai','<=',$harini]]); + + $totaltunggakan_now = $audit_now->sum('tunggakan'); + $totaltunggakan_past = $audit_backdate->sum('upahblmbyar'); + + $request_generate = new \Illuminate\Http\Request([ + 'mula' => $haripertama_extension, + 'hingga' => $harini, + 'kodcaw' => $caw['kodcaw'], + ]); + + $keuntungan = $this->SemakanKeuntunganLejer($request->kodcaw,$request_generate); + + $data_keuntungan = $keuntungan->getContent(); + $data = json_decode($data_keuntungan, true); + + $calculation = $totaltunggakan_past - $data['keuntungan_semasa']; + $accrual_net = $totaltunggakan_now - $calculation; + + $available_akru = AkruNet::on($caw['mysql']) + ->where('bulan',(int)$month_generate) + ->first(); + + try{ + if($available_akru){ + if($available_akru['jumlah'] !== $accrual_net){ + AkruNet::on($caw['mysql'])->where('bulan','=',$current->month) + ->update(['jumlah' => $accrual_net]); + } + }else{ + $akrunet = new AkruNet(); + $akrunet->setConnection($caw['mysql']); + $akrunet->tahun = $year_generate; + $akrunet->bulan = $month_generate; + $akrunet->jumlah = $accrual_net; + $akrunet->save(); + } + DB::connection($caw['mysql'])->commit(); + }catch (\Throwable $e){ + return response($e); + } + } + + return response('succesfully generated!'); + } } diff --git a/routes/web.php b/routes/web.php index c392ae7..f083dbd 100644 --- a/routes/web.php +++ b/routes/web.php @@ -739,6 +739,7 @@ $router->group(['prefix'=>'admin'], function () use ($router){ $router->get('laporanllcaw/gadai',['uses'=>'AdminPageController@getLaporanGadaiAllCaw']); $router->get('laporan/akrubulan',['uses'=>'AdminPageController@getLaporanAkruBulan']); + $router->get('laporan/akrual/generatedaily',['uses'=>'LaporanController@GenerateDailyAkrual']); }); $router->group(['prefix'=>'lelong'], function () use ($router){