From 20268cd136f99f10d2e6e4369569d743ffc5f27b Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 14 Sep 2026 15:26:35 +0800 Subject: [PATCH] feature/modal-online-pendahuluan --- app/Http/Controllers/VaultController.php | 187 ++++++++++++++--------- routes/web.php | 1 + 2 files changed, 118 insertions(+), 70 deletions(-) diff --git a/app/Http/Controllers/VaultController.php b/app/Http/Controllers/VaultController.php index 03490f9..3aa36db 100644 --- a/app/Http/Controllers/VaultController.php +++ b/app/Http/Controllers/VaultController.php @@ -12,6 +12,7 @@ use App\GlDetail; use App\imbangdugalama; use App\GlCode; use App\Panjar; +use App\ModalOnline; use Illuminate\Http\Request; use Carbon\Carbon; @@ -168,37 +169,64 @@ class VaultController extends Controller return response()->json($updateVault, 200); } - public function updateVaultDeletePendahuluanSerahan($kodcaw, Request $request) - { - $current = Carbon::now(); - $current = new Carbon(); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - $vault=Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); +public function updateVaultDeletePendahuluanSerahan($kodcaw, Request $request) +{ + $current = new Carbon(); - $bakiawal = $vault['bakiawal']; - $keluar = $vault['keluar']; - $masuk = $vault['masuk']; - $bakiakhir = $vault['bakiakhir']; - $bakieod = $vault['bakieod']; - $pendahuluan = $vault['pendahuluan']; - $serahan = $vault['serahan']; - $totpanjaran = $vault['totpanjar']; + $cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first(); - $glpend = GlDetail::on($cawangan['mysql'])->where('tarikh','=', $current->toDateString())->sum('pendahuluan'); - $glser = GlDetail::on($cawangan['mysql'])->where('tarikh','=', $current->toDateString())->where('teller','<>','ONLINE')->sum('serahan'); + if (!$cawangan) { + return response()->json(['message' => 'Cawangan tidak dijumpai'], 404); + } - $bakiakhir = $bakiawal - $keluar + $masuk + $glpend - $glser - $totpanjaran; + $vault = Vault::on($cawangan['mysql']) + ->where('kodcaw', '=', $kodcaw) + ->where('tarikh', '=', $current->toDateString()) + ->first(); - $updateVault=Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( - 'pendahuluan' => $glpend, - 'serahan' => $glser, - 'bakiakhir'=>$bakiakhir, - 'bakieod'=>$bakiakhir - )); + if (!$vault) { + return response()->json(['message' => 'Rekod vault hari ini tidak dijumpai'], 404); + } - return response()->json($updateVault, 200); - } + $bakiawal = $vault['bakiawal']; + $keluar = $vault['keluar']; + $masuk = $vault['masuk']; + $totpanjaran = $vault['totpanjar']; + + // Pendahuluan HQ (dari GL) + $glpend = GlDetail::on($cawangan['mysql']) + ->where('tarikh', '=', $current->toDateString()) + ->sum('pendahuluan'); + + // Serahan (GL, exclude teller ONLINE) + $glser = GlDetail::on($cawangan['mysql']) + ->where('tarikh', '=', $current->toDateString()) + ->where('teller', '<>', 'ONLINE') + ->sum('serahan'); + + // Pendahuluan Online (had yang diluluskan hari ini) + $modalOnlineHad = ModalOnline::on($cawangan['mysql']) + ->where('kodcaw', '=', $kodcaw) + ->where('tarikh', '=', $current->toDateString()) + ->value('had') ?? 0; + + // Gabungan pendahuluan HQ + pendahuluan online + $totalPendahuluan = $glpend + $modalOnlineHad; + + $bakiakhir = $bakiawal - $keluar + $masuk + $totalPendahuluan - $glser - $totpanjaran; + + $updateVault = Vault::on($cawangan['mysql']) + ->where([['tarikh', '=', $current->toDateString()], ['kodcaw', '=', $kodcaw]]) + ->update([ + 'pendahuluan' => $totalPendahuluan, + 'serahan' => $glser, + 'bakiakhir' => $bakiakhir, + 'bakieod' => $bakiakhir, + ]); + + return response()->json($updateVault, 200); +} public function create($kodcaw,Request $request) { @@ -481,25 +509,24 @@ class VaultController extends Controller } public function CalculationPendahuluanSerahan($kodcaw,Request $request) - { - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); +{ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - $serahanpkb = '1000/020'; - $serahanjmc = '1000/026'; - $pendahuluanpkb = '7000/102'; - $pendahuluanjmc = '7000/106'; - $serahankoperasi = '1000/090'; + $serahanpkb = '1000/020'; + $serahanjmc = '1000/026'; + $pendahuluanpkb = '7000/102'; + $pendahuluanjmc = '7000/106'; + $serahankoperasi = '1000/090'; - //Selepas Tawarruq + //Selepas Tawarruq - $serahanpkbTawarruq = GlDetail::on($cawangan['mysql']) - ->where('ktacct','=',$serahanpkb) - ->where('tarikh','<=', $request->tarikh) - ->where('tarikh','>','2021-03-24') - ->sum('serahan'); + $serahanpkbTawarruq = GlDetail::on($cawangan['mysql']) + ->where('ktacct','=',$serahanpkb) + ->where('tarikh','<=', $request->tarikh) + ->where('tarikh','>','2021-03-24') + ->sum('serahan'); - - //Sebelum Tawarruq + //Sebelum Tawarruq if($kodcaw == 'KB2' || $kodcaw == 'WCY' || $kodcaw == '1STOP' || $kodcaw == 'ARM' || $kodcaw == 'APM' || $kodcaw == '010621' || $kodcaw == '010915' || $kodcaw == '020303') { $serahanpkb = GlDetail::on($cawangan['mysql']) @@ -546,47 +573,53 @@ class VaultController extends Controller - //Selepas Tawarruq + //Selepas Tawarruq - $pendahuluanPKBtawarruq = GlDetail::on($cawangan['mysql']) + $pendahuluanPKBtawarruq = GlDetail::on($cawangan['mysql']) ->where('ktacct','=',$pendahuluanpkb) ->where([['tarikh','<=', $request->tarikh],['tarikh','>','2021-03-24']]) ->sum('pendahuluan'); - //Sebelum Tawarruq + //Sebelum Tawarruq - $pendahuluanPKB = GlDetail::on($cawangan['mysql']) - ->where('ktacct','=',$pendahuluanpkb) - ->where([['tarikh','<=', $request->tarikh],['tarikh','>','2013-12-31']]) - ->sum('amaun'); - - $pendahuluanJMC = GlDetail::on($cawangan['mysql']) - ->where('ktacct','=','7000/106') - ->where([['tarikh','<=', $request->tarikh],['tarikh','>','2013-12-31']]) - ->sum('amaun'); - - $pendahuluanpkblama = imbangdugalama::on($cawangan['mysql']) - ->sum('pendahuluan_pkb'); - - $pendahuluanjmclama = imbangdugalama::on($cawangan['mysql']) - ->sum('pendahuluan_jmc'); - - $total = $pendahuluanPKBtawarruq + $pendahuluanjmclama + $pendahuluanpkblama + $pendahuluanPKB + $pendahuluanJMC; - - $pindahkekpkb = GlCode::on($cawangan['mysql']) - ->where('glcode','=',$serahankoperasi) + $pendahuluanPKB = GlDetail::on($cawangan['mysql']) + ->where('ktacct','=',$pendahuluanpkb) + ->where([['tarikh','<=', $request->tarikh],['tarikh','>','2013-12-31']]) ->sum('amaun'); - if($kodcaw == '011229') - $totalserahan -= 0.10; + $pendahuluanJMC = GlDetail::on($cawangan['mysql']) + ->where('ktacct','=','7000/106') + ->where([['tarikh','<=', $request->tarikh],['tarikh','>','2013-12-31']]) + ->sum('amaun'); - if($kodcaw == '011013') - $totalserahan += 641000; + $pendahuluanpkblama = imbangdugalama::on($cawangan['mysql']) + ->sum('pendahuluan_pkb'); - $arraypend = ['pendahuluan' => $total,'serahan' => $totalserahan,'pindahkekpkb' => $pindahkekpkb]; + $pendahuluanjmclama = imbangdugalama::on($cawangan['mysql']) + ->sum('pendahuluan_jmc'); - return response()->json($arraypend); - } + //Pendahuluan Online (had) + $modalOnlineHad = ModalOnline::on($cawangan['mysql']) + ->where('kodcaw','=', $kodcaw) + ->where('tarikh','=', $request->tarikh) + ->value('had') ?? 0; + + $total = $pendahuluanPKBtawarruq + $pendahuluanjmclama + $pendahuluanpkblama + $pendahuluanPKB + $pendahuluanJMC + $modalOnlineHad; + + $pindahkekpkb = GlCode::on($cawangan['mysql']) + ->where('glcode','=',$serahankoperasi) + ->sum('amaun'); + + if($kodcaw == '011229') + $totalserahan -= 0.10; + + if($kodcaw == '011013') + $totalserahan += 641000; + + $arraypend = ['pendahuluan' => $total,'serahan' => $totalserahan,'pindahkekpkb' => $pindahkekpkb]; + + return response()->json($arraypend); +} public function CalculationPendahuluanSerahanLejer($kodcaw,Request $request) @@ -732,5 +765,19 @@ class VaultController extends Controller return response()->json($vault); } +public function CalculationModalOnlineLejer($kodcaw, Request $request) +{ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $tarikh = $request->hingga; + + $modal_online = ModalOnline::on($cawangan['mysql']) + ->where('kodcaw', '=', $kodcaw) + ->where('tarikh', '=', $tarikh) + ->first(); + + return response()->json([ + 'had' => $modal_online ? floatval($modal_online->had) : 0, + ]); +} } diff --git a/routes/web.php b/routes/web.php index a08e973..4c2ff8f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -607,6 +607,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ //Dua-Dua Table $router->get('PendahuluanSerahanLejer/{kodcaw}',['uses'=>'VaultController@CalculationPendahuluanSerahanLejer']); + $router->get('ModalOnlineLejer/{kodcaw}', ['uses' => 'VaultController@CalculationModalOnlineLejer']); $router->get('KeuntunganArRahnLejer/{kodcaw}',['uses'=>'GadaiController@CalculationKeuntunganLejer']); $router->get('RebetCalculationLejer/{kodcaw}',['uses'=>'TebusController@RebetCalculationLejer']); $router->get('cajlelongLejer/{kodcaw}',['uses'=>'LelongController@cajlelongcalculationLejer']); -- 2.52.0