From 07954b9b5e25eef1645052eafccb4eb8b56e2cf3 Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Sun, 2 Mar 2025 09:02:16 +0800 Subject: [PATCH] fix migrations and added function --- app/ApprovalWithdrawal.php | 5 +- app/GlDetail.php | 3 +- .../Controllers/AutoSerahanController.php | 185 ++++++++++-------- ...2_23_154307_create_approval_withdrawal.php | 8 +- 4 files changed, 113 insertions(+), 88 deletions(-) diff --git a/app/ApprovalWithdrawal.php b/app/ApprovalWithdrawal.php index 6820984..b52e845 100644 --- a/app/ApprovalWithdrawal.php +++ b/app/ApprovalWithdrawal.php @@ -22,8 +22,11 @@ class ApprovalWithdrawal extends Model 'approval_status', 'updated_serahan_v2', 'updated_pendahuluan_v3', + 'denopendser_id_v2', + 'gldetail_id_v2', + 'denopendser_id_v3', + 'gldetail_id_v3', 'approval_timestamp', - 'gldetail_id' ]; } diff --git a/app/GlDetail.php b/app/GlDetail.php index f0d03f7..1e26c21 100644 --- a/app/GlDetail.php +++ b/app/GlDetail.php @@ -23,7 +23,8 @@ class GlDetail extends Model 'amaun', 'pendahuluan', 'serahan', - 'teller' + 'teller', + 'date_created' ]; /** diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index a5208a1..f32b5e8 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -12,13 +12,14 @@ use App\Vault; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; class AutoSerahanController extends Controller { public function getAutoSerahan(Request $request){ $query = ApprovalWithdrawal::on('mysql7')->where('approval_status', 'PENDING'); if (isset($request->kodcaw)) $query->where('kodcaw', '=', $request->kodcaw); - $listapproval = $query->get(); + $listapproval = $query->paginate(5); return response()->json($listapproval,200); } @@ -37,56 +38,66 @@ class AutoSerahanController extends Controller 'kodcaw' => $request->kodcaw, 'kodlaluan' => $request->teller, 'amaun' => $request->amaun, - 'bd1' => $request->bd1, - 'bd5' => $request->bd5, - 'bd10' => $request->bd10, - 'bd20' => $request->bd20, - 'bd50' => $request->bd50, - 'bd100' => $request->bd100, - 'txtring1' => $request->txtring1, - 'txtring5' => $request->txtring5, - 'txtring10' => $request->txtring10, - 'txtring20' => $request->txtring20, - 'txtring50' => $request->txtring50, - 'txtring100' => $request->txtring100, - 'txtring1000' => $request->txtring1000, - 'txtsen1' => $request->txtsen1, - 'txtsen5' => $request->txtsen5, - 'txtsen10' => $request->txtsen10, - 'txtsen20' => $request->txtsen20, - 'txtsen50' => $request->txtsen50, + 'bd1' => 0, + 'bd5' => 0, + 'bd10' => 0, + 'bd20' => 0, + 'bd50' => 0, + 'bd100' => 0, + 'txtring1' => isset($request->txtring1) ? $request->txtring1 : 0, + 'txtring5' => isset($request->txtring5) ? $request->txtring5 : 0, + 'txtring10' => isset($request->txtring10) ? $request->txtring10 : 0, + 'txtring20' => isset($request->txtring20) ? $request->txtring20 : 0, + 'txtring50' => isset($request->txtring50) ? $request->txtring50 : 0, + 'txtring100' => isset($request->txtring100) ? $request->txtring100 : 0, + 'txtring1000' => isset($request->txtring1000) ? $request->txtring1000 : 0, + 'txtsen1' => isset($request->txtsen1) ? $request->txtsen1 : 0, + 'txtsen5' => isset($request->txtsen5) ? $request->txtsen5 : 0, + 'txtsen10' => isset($request->txtsen10) ? $request->txtsen10 : 0, + 'txtsen20' => isset($request->txtsen20) ? $request->txtsen20 : 0, + 'txtsen50' => isset($request->txtsen50) ? $request->txtsen50 : 0, 'jenis' =>$request->jenis, - 'recno' =>$request->recno, - 'update' => '0' + 'recno' => 0, + 'update' => 0 ]); - ApprovalWithdrawal::on('mysql7')->create([ - 'kodcaw' => $request->kodcaw, - 'pc_name' => $request->username, - 'operasi_name' => null, - 'amount' => $request->amount, - 'approval_status' => 'PENDING', - 'approval_timestamp' => null, - 'gldetail_id' => 0, - 'denopendser_id' => $deno_pendser->id, - 'updated_serahan_v2' => 0, - 'updated_pendahuluan_v3' => 0, - 'created_at' => $current, - 'updated_at' => $current, - ]); + if($request->version == 'v3'){ + $approval = ApprovalWithdrawal::on('mysql7')->create([ + 'kodcaw' => $request->kodcaw, + 'pc_name' => $request->teller, + 'operasi_name' => null, + 'amount' => $request->amaun, + 'approval_status' => 'PENDING', + 'approval_timestamp' => null, + 'gldetail_id_v3' => 0, + 'gldetail_id_v2' => 0, + 'denopendser_id_v3' => $deno_pendser->id, + 'denopendser_id_v2' => 0, + 'updated_serahan_v2' => 0, + 'updated_pendahuluan_v3' => 0, + 'created_at' => $current, + 'updated_at' => $current, + ]); + DB::connection('mysql7')->commit(); + return response()->json(['status' => 'success','id' => $approval->id]); + }else{ + ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ + 'denopendser_id_v2' => $deno_pendser->id, + ]); + DB::connection('mysql7')->commit(); + return response()->json(['status' => 'success']); + } - DB::connection('mysql7')->commit(); - return response()->json('success'); }catch(\Exception $e){ DB::connection('mysql7')->rollBack(); - return response()->json($e->getMessage()); + return response()->json(['status' => 'failed','message' => $e->getMessage()]); } } - private function autoSerahanEngine($jenis, $request){ + private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id){ $current = Carbon::now(); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); - $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$request->kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); $bakiawal = $vault['bakiawal']; $keluar = $vault['keluar']; @@ -100,70 +111,80 @@ class AutoSerahanController extends Controller DB::connection('mysql7')->beginTransaction(); try{ - $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); + $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); if($jenis == 'pendahuluan'){ - $totalpendahuluan = $request->amaun + $pendahuluan; + $totalpendahuluan = $amaun + $pendahuluan; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; - $denopendser = DenoPendSer::on('mysql7')->where('id',$approval['denopendser_id'])->first(); + $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->first(); - $this->updateDenominasi($request->kodcaw,$denopendser); + $this->updateDenominasi($kodcaw,$denopendser); $gldetail = GlDetail::on($cawangan['mysql'])->create([ - 'kodcaw' => $request->kodcaw, + 'kodcaw' => $kodcaw, 'tarikh' => $current->toDateString(), - 'dtacct' => $request->dtacct, - 'ktacct' => $request->ktacct, - 'descpt' => $request->keterangan, - 'pendahuluan' => $request->amaun, - 'teller' => $request->teller . ' (AUTO V3)', + 'dtacct' => '1000/010', + 'ktacct' => '7000/102', + 'descpt' => 'Auto Pendahuluan Daripada V2', + 'pendahuluan' => $amaun, + 'teller' => $teller . ' (AUTO V2)', 'date_created' => $current ]); + DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->update(array( + 'recno' => $gldetail->id, + 'update' => 1 + )); + Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'pendahuluan' => $totalpendahuluan, 'bakiakhir' => $bakiakhir, 'bakieod' => $bakiakhir )); - ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->update(array( + ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_pendahuluan_v3' => 1, - 'gldetail_id' => $gldetail->id + 'gldetail_id_v3' => $gldetail->id )); }else if($jenis == 'serahan'){ - $totalserahan = $request->amaun + $serahan; + $totalserahan = $amaun + $serahan; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; - $denopendser = DenoPendSer::on('mysql7')->where('id',$approval['denopendser_id'])->first(); + $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->first(); - $this->updateDenominasi($request->kodcaw,$denopendser); + $this->updateDenominasi($kodcaw,$denopendser); $gldetail = GlDetail::on($cawangan['mysql'])->create([ - 'kodcaw' => $request->kodcaw, + 'kodcaw' => $kodcaw, 'tarikh' => $current->toDateString(), - 'dtacct' => $request->dtacct, - 'ktacct' => $request->ktacct, - 'descpt' => $request->keterangan, - 'serahan' => $request->amaun, - 'teller' => $request->teller . ' (AUTO V3)', + 'dtacct' => '1000/010', + 'ktacct' => '1000/020', + 'descpt' => 'Auto Serahan Kepada V3', + 'serahan' => $amaun, + 'teller' => $teller . ' (AUTO V3)', 'date_created' => $current ]); + DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->update(array( + 'recno' => $gldetail->id, + 'update' => 1 + )); + Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'serahan' => $totalserahan, 'bakiakhir' => $bakiakhir, 'bakieod' => $bakiakhir )); - ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->update(array( + ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_serahan_v2' => 1, - 'gldetail_id' => $gldetail->id + 'gldetail_id_v2' => $gldetail->id )); } @@ -193,11 +214,11 @@ class AutoSerahanController extends Controller $approval->approval_timestamp = $current; $approval->save(); - $updated_serahan = $this->autoSerahanEngine('serahan',$request); - $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request); + $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); DB::connection('mysql7')->commit(); - return response()->json('success',200); + return response()->json(['status' => 'success'],200); }else{ $approval->operasi_name = $request->operasi_name; $approval->approval_status = 'REJECTED'; @@ -205,19 +226,19 @@ class AutoSerahanController extends Controller $approval->save(); DB::connection('mysql7')->commit(); - return response()->json('rejected',200); + return response()->json(['status' => 'success'],200); } }catch(\Exception $e){ DB::connection('mysql7')->rollBack(); - return response()->json($e->getMessage()); + return response()->json(['status' => 'error','message' =>$e->getMessage(), 'line' => $e->getLine()]); } } private function updateDenominasi($kodcaw,$denopendser){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - + Log::debug($denopendser); $k1 = $denopendser['k1']; $txtring1 = $denopendser['k1'] * 1; $k5 = $denopendser['k5']; @@ -256,30 +277,28 @@ class AutoSerahanController extends Controller 'b50'=> 0, 'bd100'=> 0, 'b100'=> 0, - 'txtring1'=> $request->txtring1, + 'txtring1'=> $txtring1, 'k1'=> $k1, - 'txtring5'=> $request->txtring5, + 'txtring5'=> $txtring5, 'k5'=> $k5, - 'txtsen1'=> $request->txtsen1, + 'txtsen1'=> $txtsen1, 'k01'=> $k01, - 'txtsen5'=> $request->txtsen5, + 'txtsen5'=> $txtsen5, 'k05'=> $k05, - 'txtsen10'=> $request->txtsen10, + 'txtsen10'=> $txtsen10, 'k010'=> $k010, - 'txtsen20'=> $request->txtsen20, + 'txtsen20'=> $txtsen20, 'k020'=> $k020, - 'txtsen50'=> $request->txtsen50, + 'txtsen50'=> $txtsen50, 'k050'=> $k050, - 'txtring10'=> $request->txtring10, + 'txtring10'=> $txtring10, 'k10'=> $k10, - 'txtring20'=> $request->txtring20, + 'txtring20'=> $txtring20, 'k20'=> $k20, - 'txtring50'=> $request->txtring50, + 'txtring50'=> $txtring50, 'k50'=> $k50, - 'txtring100'=> $request->txtring100, + 'txtring100'=> $txtring100, 'k100'=> $k100, - 'txtring1000'=> $request->txtring1000, - 'k1000'=> $request->k1000, 'jumlahbundle'=> 0, 'txtjumlah'=> $totalkeping, 'jumlahkeping' => $totalkeping diff --git a/database/migrations/2025_02_23_154307_create_approval_withdrawal.php b/database/migrations/2025_02_23_154307_create_approval_withdrawal.php index aa63b02..879f4ab 100644 --- a/database/migrations/2025_02_23_154307_create_approval_withdrawal.php +++ b/database/migrations/2025_02_23_154307_create_approval_withdrawal.php @@ -20,11 +20,13 @@ class CreateApprovalWithdrawal extends Migration $table->string('operasi_name', 100)->nullable(); $table->decimal('amount', 10, 2)->default(0); $table->string('approval_status',20); + $table->timestamp('approval_timestamp')->nullable(); + $table->integer('gldetail_id_v3')->nullable()->default(0); + $table->integer('denopendser_id_v3')->nullable()->default(0); + $table->integer('gldetail_id_v2')->nullable()->default(0); + $table->integer('denopendser_id_v2')->nullable()->default(0); $table->boolean('updated_serahan_v2')->default(false); $table->boolean('updated_pendahuluan_v3')->default(false); - $table->timestamp('approval_timestamp')->nullable(); - $table->integer('gldetail_id'); - $table->integer('denopendser_id'); $table->timestamps(); }); }