From 73c8220e1a9299b6d1be9a5a4d596db8c7e0a5bf Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Mon, 24 Feb 2025 01:32:05 +0800 Subject: [PATCH 01/33] added autoserahan endpoints --- app/ApprovalWithdrawal.php | 29 +++++ app/Http/Controllers/VaultController.php | 112 ++++++++++++++++++ ...7_28_163407_create_approval_withdrawal.php | 40 +++++++ routes/web.php | 3 + 4 files changed, 184 insertions(+) create mode 100644 app/ApprovalWithdrawal.php create mode 100644 database/migrations/2024_07_28_163407_create_approval_withdrawal.php diff --git a/app/ApprovalWithdrawal.php b/app/ApprovalWithdrawal.php new file mode 100644 index 0000000..6820984 --- /dev/null +++ b/app/ApprovalWithdrawal.php @@ -0,0 +1,29 @@ +json($vault); } + public function autoSerahan($kodcaw,Request $request){ + $current = Carbon::now(); + $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']; + $masuk = $vault['masuk']; + $bakiakhir = $vault['bakiakhir']; + $pendahuluan = $vault['pendahuluan']; + $serahan = $vault['serahan']; + $totpanjaran = $vault['totpanjar']; + + DB::connection($cawangan['mysql'])->beginTransaction(); + DB::connection('mysql7')->beginTransaction(); + + try{ + if($request->jenispendahuluanserahan == 'pendahuluan'){ + + $totalpendahuluan = $request->amaun + $pendahuluan; + + $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; + + Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( + 'pendahuluan' => $totalpendahuluan, + 'bakiakhir' => $bakiakhir, + 'bakieod' => $bakiakhir + )); + + GlDetail::on($cawangan['mysql'])->create([ + 'kodcaw' => $request->kodcaw, + 'tarikh' => $current->toDateString(), + 'dtacct' => $request->dtacct, + 'ktacct' => $request->ktacct, + 'descpt' => $request->keterangan, + 'pendahuluan' => $request->amaun, + 'teller' => $request->teller . ' (AUTO V3)' + ]); + + }else if($request->jenispendahuluanserahan == 'serahan'){ + + $totalserahan = $request->amaun + $serahan; + + $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; + + Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( + 'serahan' => $totalserahan, + 'bakiakhir' => $bakiakhir, + 'bakieod' => $bakiakhir + )); + + GlDetail::on($cawangan['mysql'])->create([ + 'kodcaw' => $request->kodcaw, + 'tarikh' => $current->toDateString(), + 'dtacct' => $request->dtacct, + 'ktacct' => $request->ktacct, + 'descpt' => $request->keterangan, + 'serahan' => $request->amaun, + 'teller' => $request->teller . ' (AUTO V3)' + ]); + + DenoPendSer::on('mysql7')->create([ + 'tarikh' => $current->toDateString(), + 'masa' => $current->toTimeString(), + 'kodcaw' => $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, + 'jenis' =>$request->jenis, + 'recno' =>$request->recno, + 'update' => '0' + ]); + + ApprovalWithdrawal::on('mysql7')->create([ + 'kodcaw' => $request->kodcaw, + 'amaun' => $request->amaun, + 'status' => '1', + 'teller' => $request->teller . ' (AUTO V3)' + ]); + } + + // Commit transactions + DB::connection($cawangan['mysql'])->commit(); + DB::connection('mysql7')->commit(); + + }catch(\Exception $e){ + DB::connection($cawangan['mysql'])->rollBack(); + DB::connection('mysql7')->rollBack(); + return response()->json($e->getMessage()); + } + } + } diff --git a/database/migrations/2024_07_28_163407_create_approval_withdrawal.php b/database/migrations/2024_07_28_163407_create_approval_withdrawal.php new file mode 100644 index 0000000..6a36222 --- /dev/null +++ b/database/migrations/2024_07_28_163407_create_approval_withdrawal.php @@ -0,0 +1,40 @@ +id(); + $table->char('kodcaw', 20); + $table->string('pc_name', 100); + $table->string('operasi_name', 100)->nullable(); + $table->decimal('amount', 10, 2)->default(0); + $table->string('approval_status',20); + $table->boolean('updated_serahan_v2')->default(false); + $table->boolean('updated_pendahuluan_v3')->default(false); + $table->timestamp('approval_timestamp'); + $table->integer('gldetail_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('approval_withdrawal'); + } +} diff --git a/routes/web.php b/routes/web.php index 73c7ac9..1162cb1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -678,6 +678,9 @@ $router->group(['prefix'=>'api'], function () use ($router){ /* Endpoint for Account Statements */ $router->get('record/accountstatement/{kodcaw}',['uses'=>'TunaiController@getAccStatement']); + /* Endpoint for Auto Serahan */ + $router->get('auto/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahan']); + }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From e966d2141737d3610f296efc8fdbc67cb9160158 Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Wed, 26 Feb 2025 01:27:49 +0800 Subject: [PATCH 02/33] added timestmap for gldetail --- app/Console/Commands/CloneDatabase.php | 82 +++++++++++++++++++ app/Http/Controllers/VaultController.php | 62 +++++++++++--- ...103124_add_timestamp_to_gldetail_table.php | 48 +++++++++++ routes/web.php | 1 + 4 files changed, 183 insertions(+), 10 deletions(-) create mode 100644 app/Console/Commands/CloneDatabase.php create mode 100644 database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php diff --git a/app/Console/Commands/CloneDatabase.php b/app/Console/Commands/CloneDatabase.php new file mode 100644 index 0000000..bbff6a2 --- /dev/null +++ b/app/Console/Commands/CloneDatabase.php @@ -0,0 +1,82 @@ +select("SHOW TABLES"); + + $namedatabase = DB::connection('mysql7')->getDatabaseName(); + + if (empty($tables)) { + $this->error("No tables found in database"); + return; + } + + $boolreject = false; + $list_of_rejected = ($boolreject) ? $this->rejected_table() : []; + // Get table names + $tableNames = array_map(fn($table) => is_array($table) ? array_values($table) : $table, $tables); + $tableString = collect($tables)->pluck('Tables_in_' .$namedatabase)->reject(fn($table) => in_array($table, $list_of_rejected))->implode(','); + // Run migration generator + Artisan::call("migrate:generate --path=database/migrations --tables=" .$tableString); + // Artisan::call("migrate:status"); + + $this->info("Migrations generated successfully for database"); + } + + protected function rejected_table() : Array{ + return [ + 'alert','auditbarcode','auditdaftar', + 'auditrekodsemakan','audtrail','bakipelanggan', + 'bandar','batchlel_xtra','bayaranpenebusan','belian', + 'brand','checker','configkaunter','gadaisimulasi','gadaitemp', + 'gadaixtra','hapusgadaionline','hargaemasbeli', + 'hargaemasjual','imbangan','inoutmarxtra', + 'jemas00', 'jemasbeli','jemasxtra', + 'jenisakaun','jualan','jualemas','jumlahtebus', + 'karat','karatbeli','karatjual','karatxtra', + 'ku_nm', 'ku_nmbaru', 'ku_nmxtra', 'kumpulan', + 'kurangxtra', 'lapringkasan', 'laptebus', 'lapterkumpul', + 'lapterkumpulharian','lelkarat','lelmarhun_xtra', 'marhunbeli', + 'marhunjual', 'marhunsimulasi', 'marhunxtra', 'model', + 'outmarhun', 'outmarhunxtra', 'palsu', 'pemeriksaan', + 'pengesahangadai', ' peratusan', 'percentonline', + 'polisxtra','product','ramalan', 'rekodtangguh', 'sahabat', + 'simpanan', 'simulasi_batchlel', 'simulasi_batchlelxtra', + 'simulasi_lelmarhun', 'simulasi_lelong', 'simulasi_lelongxtra', + 'tagpelanggan', 'tangguhlelong', 'taraf', + 'tebus_xtra', 'tebuslelong', 'temp_ic', 'tempimbang', + 'tempnosiri', 'tempnosirixtra', 'temppwd', 'temptarikhaging', + 'tunaigadteb', 'tuntutbakixtra', 'ubs_code', 'ugama', + 'updateserver', 'zparameter', 'zparameterxtra','ZPARAMETER1']; + } +} diff --git a/app/Http/Controllers/VaultController.php b/app/Http/Controllers/VaultController.php index cd33229..98aaae3 100644 --- a/app/Http/Controllers/VaultController.php +++ b/app/Http/Controllers/VaultController.php @@ -719,6 +719,25 @@ class VaultController extends Controller return response()->json($vault); } + public function createAutoSerahan($kodcaw,Request $request){ + $current = Carbon::now(); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + 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' => 0, + 'updated_serahan_v2' => 0, + 'updated_pendahuluan_v3' => 0, + 'created_at' => $current, + 'updated_at' => $current, + ]); + } + public function autoSerahan($kodcaw,Request $request){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); @@ -755,9 +774,14 @@ class VaultController extends Controller 'ktacct' => $request->ktacct, 'descpt' => $request->keterangan, 'pendahuluan' => $request->amaun, - 'teller' => $request->teller . ' (AUTO V3)' + 'teller' => $request->teller . ' (AUTO V3)', + 'date_created' => $current ]); + ApprovalWithdrawal::on('mysql7')->update(array( + 'updated_pendahuluan_v3' => 1, + )); + }else if($request->jenispendahuluanserahan == 'serahan'){ $totalserahan = $request->amaun + $serahan; @@ -770,14 +794,15 @@ class VaultController extends Controller 'bakieod' => $bakiakhir )); - GlDetail::on($cawangan['mysql'])->create([ + $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $request->kodcaw, 'tarikh' => $current->toDateString(), 'dtacct' => $request->dtacct, 'ktacct' => $request->ktacct, 'descpt' => $request->keterangan, 'serahan' => $request->amaun, - 'teller' => $request->teller . ' (AUTO V3)' + 'teller' => $request->teller . ' (AUTO V3)', + 'date_created' => $current ]); DenoPendSer::on('mysql7')->create([ @@ -807,14 +832,13 @@ class VaultController extends Controller 'jenis' =>$request->jenis, 'recno' =>$request->recno, 'update' => '0' - ]); - - ApprovalWithdrawal::on('mysql7')->create([ - 'kodcaw' => $request->kodcaw, - 'amaun' => $request->amaun, - 'status' => '1', - 'teller' => $request->teller . ' (AUTO V3)' ]); + + ApprovalWithdrawal::on('mysql7')->update(array( + 'updated_serahan_v2' => 1, + 'gldetail_id' => $gldetail->id + )); + } // Commit transactions @@ -828,6 +852,24 @@ class VaultController extends Controller } } + public function autoSerahanApproval($kodcaw,Request $request){ + $current = Carbon::now(); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); + + DB::connection($cawangan['mysql'])->beginTransaction(); + DB::connection('mysql7')->beginTransaction(); + + try{ + DB::connection('mysql7')->commit(); + DB::connection($cawangan['mysql'])->commit(); + }catch(\Exception $e){ + DB::connection($cawangan['mysql'])->rollBack(); + DB::connection('mysql7')->rollBack(); + return response()->json($e->getMessage()); + } + } + } diff --git a/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php b/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php new file mode 100644 index 0000000..af62292 --- /dev/null +++ b/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php @@ -0,0 +1,48 @@ +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('gldetail', function (Blueprint $table) use($dbase) { + + $dateCreated = Schema::connection($dbase)->hasColumn('gldetail', 'date_created'); + + + if (!$dateCreated) { + $table->timestamp('date_created'); + } + }); + } + } +} diff --git a/routes/web.php b/routes/web.php index 1162cb1..dda5f28 100644 --- a/routes/web.php +++ b/routes/web.php @@ -680,6 +680,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ /* Endpoint for Auto Serahan */ $router->get('auto/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahan']); + $router->put('auto/approve/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahanApproval']); }); From acfbf11fe94332ef4abc488c14360d4eba2259a8 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 27 Feb 2025 21:08:31 +0800 Subject: [PATCH 03/33] fix added migration --- app/Http/Controllers/VaultController.php | 153 ------------------ ..._23_154307_create_approval_withdrawal.php} | 3 +- routes/web.php | 5 +- 3 files changed, 5 insertions(+), 156 deletions(-) rename database/migrations/{2024_07_28_163407_create_approval_withdrawal.php => 2025_02_23_154307_create_approval_withdrawal.php} (90%) diff --git a/app/Http/Controllers/VaultController.php b/app/Http/Controllers/VaultController.php index 98aaae3..d838ef6 100644 --- a/app/Http/Controllers/VaultController.php +++ b/app/Http/Controllers/VaultController.php @@ -719,157 +719,4 @@ class VaultController extends Controller return response()->json($vault); } - public function createAutoSerahan($kodcaw,Request $request){ - $current = Carbon::now(); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - - 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' => 0, - 'updated_serahan_v2' => 0, - 'updated_pendahuluan_v3' => 0, - 'created_at' => $current, - 'updated_at' => $current, - ]); - } - - public function autoSerahan($kodcaw,Request $request){ - $current = Carbon::now(); - $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']; - $masuk = $vault['masuk']; - $bakiakhir = $vault['bakiakhir']; - $pendahuluan = $vault['pendahuluan']; - $serahan = $vault['serahan']; - $totpanjaran = $vault['totpanjar']; - - DB::connection($cawangan['mysql'])->beginTransaction(); - DB::connection('mysql7')->beginTransaction(); - - try{ - if($request->jenispendahuluanserahan == 'pendahuluan'){ - - $totalpendahuluan = $request->amaun + $pendahuluan; - - $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; - - Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( - 'pendahuluan' => $totalpendahuluan, - 'bakiakhir' => $bakiakhir, - 'bakieod' => $bakiakhir - )); - - GlDetail::on($cawangan['mysql'])->create([ - 'kodcaw' => $request->kodcaw, - 'tarikh' => $current->toDateString(), - 'dtacct' => $request->dtacct, - 'ktacct' => $request->ktacct, - 'descpt' => $request->keterangan, - 'pendahuluan' => $request->amaun, - 'teller' => $request->teller . ' (AUTO V3)', - 'date_created' => $current - ]); - - ApprovalWithdrawal::on('mysql7')->update(array( - 'updated_pendahuluan_v3' => 1, - )); - - }else if($request->jenispendahuluanserahan == 'serahan'){ - - $totalserahan = $request->amaun + $serahan; - - $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; - - Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( - 'serahan' => $totalserahan, - 'bakiakhir' => $bakiakhir, - 'bakieod' => $bakiakhir - )); - - $gldetail = GlDetail::on($cawangan['mysql'])->create([ - 'kodcaw' => $request->kodcaw, - 'tarikh' => $current->toDateString(), - 'dtacct' => $request->dtacct, - 'ktacct' => $request->ktacct, - 'descpt' => $request->keterangan, - 'serahan' => $request->amaun, - 'teller' => $request->teller . ' (AUTO V3)', - 'date_created' => $current - ]); - - DenoPendSer::on('mysql7')->create([ - 'tarikh' => $current->toDateString(), - 'masa' => $current->toTimeString(), - 'kodcaw' => $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, - 'jenis' =>$request->jenis, - 'recno' =>$request->recno, - 'update' => '0' - ]); - - ApprovalWithdrawal::on('mysql7')->update(array( - 'updated_serahan_v2' => 1, - 'gldetail_id' => $gldetail->id - )); - - } - - // Commit transactions - DB::connection($cawangan['mysql'])->commit(); - DB::connection('mysql7')->commit(); - - }catch(\Exception $e){ - DB::connection($cawangan['mysql'])->rollBack(); - DB::connection('mysql7')->rollBack(); - return response()->json($e->getMessage()); - } - } - - public function autoSerahanApproval($kodcaw,Request $request){ - $current = Carbon::now(); - $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); - - DB::connection($cawangan['mysql'])->beginTransaction(); - DB::connection('mysql7')->beginTransaction(); - - try{ - DB::connection('mysql7')->commit(); - DB::connection($cawangan['mysql'])->commit(); - }catch(\Exception $e){ - DB::connection($cawangan['mysql'])->rollBack(); - DB::connection('mysql7')->rollBack(); - return response()->json($e->getMessage()); - } - } - - - } diff --git a/database/migrations/2024_07_28_163407_create_approval_withdrawal.php b/database/migrations/2025_02_23_154307_create_approval_withdrawal.php similarity index 90% rename from database/migrations/2024_07_28_163407_create_approval_withdrawal.php rename to database/migrations/2025_02_23_154307_create_approval_withdrawal.php index 6a36222..aa63b02 100644 --- a/database/migrations/2024_07_28_163407_create_approval_withdrawal.php +++ b/database/migrations/2025_02_23_154307_create_approval_withdrawal.php @@ -22,8 +22,9 @@ class CreateApprovalWithdrawal extends Migration $table->string('approval_status',20); $table->boolean('updated_serahan_v2')->default(false); $table->boolean('updated_pendahuluan_v3')->default(false); - $table->timestamp('approval_timestamp'); + $table->timestamp('approval_timestamp')->nullable(); $table->integer('gldetail_id'); + $table->integer('denopendser_id'); $table->timestamps(); }); } diff --git a/routes/web.php b/routes/web.php index dda5f28..3a59931 100644 --- a/routes/web.php +++ b/routes/web.php @@ -679,8 +679,9 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('record/accountstatement/{kodcaw}',['uses'=>'TunaiController@getAccStatement']); /* Endpoint for Auto Serahan */ - $router->get('auto/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahan']); - $router->put('auto/approve/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahanApproval']); + $router->get('autoserahan/list',['uses'=>'AutoSerahanController@getAutoSerahan']); + $router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']); + $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); }); From aecb147d9cad45c3df6e15c21538552ac5245425 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 27 Feb 2025 21:20:51 +0800 Subject: [PATCH 04/33] added uncommited --- .../Controllers/AutoSerahanController.php | 288 ++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 app/Http/Controllers/AutoSerahanController.php diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php new file mode 100644 index 0000000..a5208a1 --- /dev/null +++ b/app/Http/Controllers/AutoSerahanController.php @@ -0,0 +1,288 @@ +where('approval_status', 'PENDING'); + if (isset($request->kodcaw)) $query->where('kodcaw', '=', $request->kodcaw); + $listapproval = $query->get(); + + return response()->json($listapproval,200); + } + + public function createAutoSerahan(Request $request) + { + $current = Carbon::now(); + + DB::connection('mysql7')->beginTransaction(); + + try{ + + $deno_pendser = DenoPendSer::on('mysql7')->create([ + 'tarikh' => $current->toDateString(), + 'masa' => $current->toTimeString(), + '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, + 'jenis' =>$request->jenis, + 'recno' =>$request->recno, + '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, + ]); + + DB::connection('mysql7')->commit(); + return response()->json('success'); + }catch(\Exception $e){ + DB::connection('mysql7')->rollBack(); + return response()->json($e->getMessage()); + } + } + + private function autoSerahanEngine($jenis, $request){ + $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(); + + $bakiawal = $vault['bakiawal']; + $keluar = $vault['keluar']; + $masuk = $vault['masuk']; + $bakiakhir = $vault['bakiakhir']; + $pendahuluan = $vault['pendahuluan']; + $serahan = $vault['serahan']; + $totpanjaran = $vault['totpanjar']; + + DB::connection($cawangan['mysql'])->beginTransaction(); + DB::connection('mysql7')->beginTransaction(); + + try{ + $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); + + if($jenis == 'pendahuluan'){ + + $totalpendahuluan = $request->amaun + $pendahuluan; + + $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; + + $denopendser = DenoPendSer::on('mysql7')->where('id',$approval['denopendser_id'])->first(); + + $this->updateDenominasi($request->kodcaw,$denopendser); + + $gldetail = GlDetail::on($cawangan['mysql'])->create([ + 'kodcaw' => $request->kodcaw, + 'tarikh' => $current->toDateString(), + 'dtacct' => $request->dtacct, + 'ktacct' => $request->ktacct, + 'descpt' => $request->keterangan, + 'pendahuluan' => $request->amaun, + 'teller' => $request->teller . ' (AUTO V3)', + 'date_created' => $current + ]); + + 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( + 'updated_pendahuluan_v3' => 1, + 'gldetail_id' => $gldetail->id + )); + + }else if($jenis == 'serahan'){ + + $totalserahan = $request->amaun + $serahan; + + $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; + + $denopendser = DenoPendSer::on('mysql7')->where('id',$approval['denopendser_id'])->first(); + + $this->updateDenominasi($request->kodcaw,$denopendser); + + $gldetail = GlDetail::on($cawangan['mysql'])->create([ + 'kodcaw' => $request->kodcaw, + 'tarikh' => $current->toDateString(), + 'dtacct' => $request->dtacct, + 'ktacct' => $request->ktacct, + 'descpt' => $request->keterangan, + 'serahan' => $request->amaun, + 'teller' => $request->teller . ' (AUTO V3)', + 'date_created' => $current + ]); + + 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( + 'updated_serahan_v2' => 1, + 'gldetail_id' => $gldetail->id + )); + + } + + // Commit transactions + DB::connection($cawangan['mysql'])->commit(); + DB::connection('mysql7')->commit(); + + }catch(\Exception $e){ + DB::connection($cawangan['mysql'])->rollBack(); + DB::connection('mysql7')->rollBack(); + throw $e; + } + } + + public function autoSerahanApproval(Request $request){ + $current = Carbon::now(); + + DB::connection('mysql7')->beginTransaction(); + + try{ + $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); + + if($approval->approval_status == 'PENDING' && $request->sendApproval == 'ACCEPTED'){ + $approval->operasi_name = $request->operasi_name; + $approval->approval_status = 'APPROVED'; + $approval->approval_timestamp = $current; + $approval->save(); + + $updated_serahan = $this->autoSerahanEngine('serahan',$request); + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request); + + DB::connection('mysql7')->commit(); + return response()->json('success',200); + }else{ + $approval->operasi_name = $request->operasi_name; + $approval->approval_status = 'REJECTED'; + $approval->approval_timestamp = $current; + $approval->save(); + + DB::connection('mysql7')->commit(); + return response()->json('rejected',200); + } + + }catch(\Exception $e){ + DB::connection('mysql7')->rollBack(); + return response()->json($e->getMessage()); + } + } + + private function updateDenominasi($kodcaw,$denopendser){ + $current = Carbon::now(); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + $k1 = $denopendser['k1']; + $txtring1 = $denopendser['k1'] * 1; + $k5 = $denopendser['k5']; + $txtring5 = $denopendser['k5'] * 5; + $k01 = $denopendser['k01']; + $txtsen1 = $denopendser['k01'] * 0.01; + $k05 = $denopendser['k05']; + $txtsen5 = $denopendser['k05'] * 0.05; + $k010 = $denopendser['k010']; + $txtsen10 = $denopendser['k010'] * 0.10; + $k020 = $denopendser['k020']; + $txtsen20 = $denopendser['k020'] * 0.20; + $k050 = $denopendser['k050']; + $txtsen50 = $denopendser['k050'] * 0.50; + $k10 = $denopendser['k10']; + $txtring10 = $denopendser['k10'] * 10; + $k20 = $denopendser['k20']; + $txtring20 = $denopendser['k20'] * 20; + $k50 = $denopendser['k50']; + $txtring50 = $denopendser['k50'] * 50; + $k100 = $denopendser['k100']; + $txtring100 = $denopendser['k100'] * 100; + + $totalkeping = $k01 + $k05 + $k010 + $k020 + $k050 + $k1 + $k5 + $k10 + $k20 + $k50 + $k100; + + Denominasi::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()]])->update(array( + 'bd1' => 0, + 'b1'=> 0, + 'bd5'=> 0, + 'b5'=> 0, + 'bd10'=> 0, + 'b10'=> 0, + 'bd20'=> 0, + 'b20'=> 0, + 'bd50'=> 0, + 'b50'=> 0, + 'bd100'=> 0, + 'b100'=> 0, + 'txtring1'=> $request->txtring1, + 'k1'=> $k1, + 'txtring5'=> $request->txtring5, + 'k5'=> $k5, + 'txtsen1'=> $request->txtsen1, + 'k01'=> $k01, + 'txtsen5'=> $request->txtsen5, + 'k05'=> $k05, + 'txtsen10'=> $request->txtsen10, + 'k010'=> $k010, + 'txtsen20'=> $request->txtsen20, + 'k020'=> $k020, + 'txtsen50'=> $request->txtsen50, + 'k050'=> $k050, + 'txtring10'=> $request->txtring10, + 'k10'=> $k10, + 'txtring20'=> $request->txtring20, + 'k20'=> $k20, + 'txtring50'=> $request->txtring50, + 'k50'=> $k50, + 'txtring100'=> $request->txtring100, + 'k100'=> $k100, + 'txtring1000'=> $request->txtring1000, + 'k1000'=> $request->k1000, + 'jumlahbundle'=> 0, + 'txtjumlah'=> $totalkeping, + 'jumlahkeping' => $totalkeping + )); + } +} \ No newline at end of file From 07954b9b5e25eef1645052eafccb4eb8b56e2cf3 Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Sun, 2 Mar 2025 09:02:16 +0800 Subject: [PATCH 05/33] 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(); }); } From eef577f78543b0bd272febb0ab75298e95b02cde Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Wed, 5 Mar 2025 12:21:20 +0800 Subject: [PATCH 06/33] added autoserahan split for pendahuluan and serahan --- .../Controllers/AutoSerahanController.php | 19 ++++++++++++++----- routes/web.php | 2 ++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index f32b5e8..fc58b75 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -214,11 +214,8 @@ class AutoSerahanController extends Controller $approval->approval_timestamp = $current; $approval->save(); - $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(['status' => 'success'],200); + return response()->json(['status' => 'success','approve_status' => 'approved'],200); }else{ $approval->operasi_name = $request->operasi_name; $approval->approval_status = 'REJECTED'; @@ -226,7 +223,7 @@ class AutoSerahanController extends Controller $approval->save(); DB::connection('mysql7')->commit(); - return response()->json(['status' => 'success'],200); + return response()->json(['status' => 'success','approve_status' => 'rejected'],200); } }catch(\Exception $e){ @@ -304,4 +301,16 @@ class AutoSerahanController extends Controller 'jumlahkeping' => $totalkeping )); } + + public function pendahuluanAutoSerahan(Request $request){ + + $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + + return response()->json(['status' => 'success'],200); + } + + public function serahanAutoSerahan(Request $request){ + + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + } } \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 3a59931..6aa19cb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -682,6 +682,8 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('autoserahan/list',['uses'=>'AutoSerahanController@getAutoSerahan']); $router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']); $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); + $router->put('autoserahan/pendahuluan'.['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); + $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); }); From 7ae2db7e9882b3685efea1fc500515cdade186c8 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Wed, 5 Mar 2025 12:27:15 +0800 Subject: [PATCH 07/33] change . to , --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 6aa19cb..90a083f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -682,7 +682,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('autoserahan/list',['uses'=>'AutoSerahanController@getAutoSerahan']); $router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']); $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); - $router->put('autoserahan/pendahuluan'.['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); + $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); }); From 36ad6c68af134431dde219eaf184d114138e7076 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 00:52:04 +0800 Subject: [PATCH 08/33] added isset request->id --- app/Http/Controllers/AutoSerahanController.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index fc58b75..27c4d33 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -81,6 +81,10 @@ class AutoSerahanController extends Controller DB::connection('mysql7')->commit(); return response()->json(['status' => 'success','id' => $approval->id]); }else{ + if(!isset($request->id)){ + return response()->json(['status' => 'failed','message' => 'ID is required']); + } + Log::debug($request->id); ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ 'denopendser_id_v2' => $deno_pendser->id, ]); From 7b7d675c9d517b752af211d2b4c783428b0e47f2 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 01:23:10 +0800 Subject: [PATCH 09/33] added set approval withdrawal v3 api --- .../Controllers/AutoSerahanController.php | 31 ++++++++++++++----- routes/web.php | 2 +- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 27c4d33..14739c3 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -85,11 +85,8 @@ class AutoSerahanController extends Controller return response()->json(['status' => 'failed','message' => 'ID is required']); } Log::debug($request->id); - ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ - 'denopendser_id_v2' => $deno_pendser->id, - ]); DB::connection('mysql7')->commit(); - return response()->json(['status' => 'success']); + return response()->json(['status' => 'success','denoid' => $deno_pendser->id]); } }catch(\Exception $e){ @@ -186,10 +183,10 @@ class AutoSerahanController extends Controller 'bakieod' => $bakiakhir )); - ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( - 'updated_serahan_v2' => 1, - 'gldetail_id_v2' => $gldetail->id - )); + // ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( + // 'updated_serahan_v2' => 1, + // 'gldetail_id_v2' => $gldetail->id + // )); } @@ -317,4 +314,22 @@ class AutoSerahanController extends Controller $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); } + + public function SetApprovalWithdrawal(Request $request){ + + if($request->jenis == 'create'){ + ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ + 'denopendser_id_v2' => $request->deno_id, + ]); + + return response()->json(['status' => 'success'],200); + }else{ + ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ + 'updated_serahan_v2' => 1, + 'gldetail_id_v2' => $request->gldetail_id + ]); + return response()->json(['status' => 'success'],200); + } + + } } \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 90a083f..1d4417e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -684,7 +684,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); - + $router->put('autoserahan/autoserahan/setapproval',['uses'=>'AutoSerahanController@serahanLejerAutoSerahan']); }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From 8012a9fefc3ede2b5c16d3f0de28e445c5f96d01 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 01:27:51 +0800 Subject: [PATCH 10/33] mistype routes --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 1d4417e..6ec6de7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -684,7 +684,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); - $router->put('autoserahan/autoserahan/setapproval',['uses'=>'AutoSerahanController@serahanLejerAutoSerahan']); + $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@serahanLejerAutoSerahan']); }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From b6a10390e4b8a0e1406698f3684baa380ea489dc Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 01:29:29 +0800 Subject: [PATCH 11/33] mistype controller --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 6ec6de7..331f254 100644 --- a/routes/web.php +++ b/routes/web.php @@ -684,7 +684,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); - $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@serahanLejerAutoSerahan']); + $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@SetApprovalWithdrawal']); }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From dec31d5f6533d2fd72cf2e3402b84baf20ff69ba Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 01:33:05 +0800 Subject: [PATCH 12/33] added return response gldetail_id --- app/Http/Controllers/AutoSerahanController.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 14739c3..2be7602 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -150,6 +150,8 @@ class AutoSerahanController extends Controller 'updated_pendahuluan_v3' => 1, 'gldetail_id_v3' => $gldetail->id )); + + return response()->json(['status' => 'success','gldetail_id' => $gldetail->id],200); }else if($jenis == 'serahan'){ @@ -187,6 +189,8 @@ class AutoSerahanController extends Controller // 'updated_serahan_v2' => 1, // 'gldetail_id_v2' => $gldetail->id // )); + + return response()->json(['status' => 'success','gldetail_id' => $gldetail->id],200); } From e9d5805a2601495dead4ba9bd50fbcb8d41ac3ca Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 01:36:51 +0800 Subject: [PATCH 13/33] added gldetail return response --- app/Http/Controllers/AutoSerahanController.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 2be7602..af56d63 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -150,8 +150,6 @@ class AutoSerahanController extends Controller 'updated_pendahuluan_v3' => 1, 'gldetail_id_v3' => $gldetail->id )); - - return response()->json(['status' => 'success','gldetail_id' => $gldetail->id],200); }else if($jenis == 'serahan'){ @@ -190,13 +188,12 @@ class AutoSerahanController extends Controller // 'gldetail_id_v2' => $gldetail->id // )); - return response()->json(['status' => 'success','gldetail_id' => $gldetail->id],200); - } // Commit transactions DB::connection($cawangan['mysql'])->commit(); DB::connection('mysql7')->commit(); + return ['status' => 'success','gldetail_id' => $gldetail->id]; }catch(\Exception $e){ DB::connection($cawangan['mysql'])->rollBack(); @@ -311,13 +308,15 @@ class AutoSerahanController extends Controller $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); - return response()->json(['status' => 'success'],200); + return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); } public function serahanAutoSerahan(Request $request){ $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); - } + + return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); + } public function SetApprovalWithdrawal(Request $request){ From d5eda71fb2bf09966695c8fa6ce8103579edf45f Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 01:57:44 +0800 Subject: [PATCH 14/33] added denopendser in arosv2 --- app/Http/Controllers/AutoSerahanController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index af56d63..5567cf5 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -95,7 +95,7 @@ class AutoSerahanController extends Controller } } - private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id){ + private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id,$denopendser_id = 0){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); @@ -157,7 +157,7 @@ class AutoSerahanController extends Controller $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; - $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->first(); + $denopendser = DenoPendSer::on('mysql7')->where('no',$denopendser_id)->first(); $this->updateDenominasi($kodcaw,$denopendser); @@ -306,14 +306,14 @@ class AutoSerahanController extends Controller public function pendahuluanAutoSerahan(Request $request){ - $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + $updated_serahan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); } public function serahanAutoSerahan(Request $request){ - $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + $updated_pendahuluan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); } From c832adee650e8f0a5eba3974f8ed68652e8a7d1e Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 02:03:23 +0800 Subject: [PATCH 15/33] added get autoserahanapproval --- app/Http/Controllers/AutoSerahanController.php | 17 ++++++++++++----- routes/web.php | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 5567cf5..2f5d5b1 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -95,7 +95,7 @@ class AutoSerahanController extends Controller } } - private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id,$denopendser_id = 0){ + private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); @@ -113,7 +113,9 @@ class AutoSerahanController extends Controller try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); - + Log::info('approval'); + Log::debug($id); + Log::debug($approval); if($jenis == 'pendahuluan'){ $totalpendahuluan = $amaun + $pendahuluan; @@ -157,7 +159,7 @@ class AutoSerahanController extends Controller $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; - $denopendser = DenoPendSer::on('mysql7')->where('no',$denopendser_id)->first(); + $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->first(); $this->updateDenominasi($kodcaw,$denopendser); @@ -306,14 +308,14 @@ class AutoSerahanController extends Controller public function pendahuluanAutoSerahan(Request $request){ - $updated_serahan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); } public function serahanAutoSerahan(Request $request){ - $updated_pendahuluan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); } @@ -335,4 +337,9 @@ class AutoSerahanController extends Controller } } + + public function getAutoSerahanApproval(Request $request){ + $query = ApprovalWithdrawal::on('mysql7')->where('kodcaw',$request->kodcaw)->where('id',$request->id)->first(); + return response()->json($query,200); + } } \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 331f254..9792c26 100644 --- a/routes/web.php +++ b/routes/web.php @@ -685,6 +685,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@SetApprovalWithdrawal']); + $router->get('autoserahan/get',['uses'=>'AutoSerahanController@getAutoSerahanApproval']); }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From e7d81b7f36853a47b4fa8fa1739d8bf2629d126d Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 6 Mar 2025 02:08:28 +0800 Subject: [PATCH 16/33] interchange --- app/Http/Controllers/AutoSerahanController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 2f5d5b1..3ba9b9a 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -306,14 +306,14 @@ class AutoSerahanController extends Controller )); } - public function pendahuluanAutoSerahan(Request $request){ + public function serahanAutoSerahan(Request $request){ $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); } - public function serahanAutoSerahan(Request $request){ + public function pendahuluanAutoSerahan(Request $request){ $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); From 907abdc53726f10e3b88db80e4ce2b5483b237b8 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 8 Mar 2025 18:49:57 +0800 Subject: [PATCH 17/33] added denopendser in function --- .../Controllers/AutoSerahanController.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 3ba9b9a..697e258 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -95,7 +95,7 @@ class AutoSerahanController extends Controller } } - private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id){ + private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id,$denopendser_id){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first(); @@ -113,11 +113,12 @@ class AutoSerahanController extends Controller try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); - Log::info('approval'); - Log::debug($id); - Log::debug($approval); + + if($jenis == 'pendahuluan'){ + $pendserid = empty($approval) ? $denopendser_id : $approval['denopendser_id_v3']; + $totalpendahuluan = $amaun + $pendahuluan; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; @@ -137,7 +138,7 @@ class AutoSerahanController extends Controller 'date_created' => $current ]); - DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->update(array( + DenoPendSer::on('mysql7')->where('no',$pendserid)->update(array( 'recno' => $gldetail->id, 'update' => 1 )); @@ -155,11 +156,13 @@ class AutoSerahanController extends Controller }else if($jenis == 'serahan'){ + $pendserid = empty($approval) ? $denopendser_id : $approval['denopendser_id_v2']; + $totalserahan = $amaun + $serahan; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; - $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->first(); + $denopendser = DenoPendSer::on('mysql7')->where('no',$pendserid)->first(); $this->updateDenominasi($kodcaw,$denopendser); @@ -308,14 +311,14 @@ class AutoSerahanController extends Controller public function serahanAutoSerahan(Request $request){ - $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); } public function pendahuluanAutoSerahan(Request $request){ - $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id); + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); } From 79b20c327dc102ba3a684d9ed61c775f472f932e Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 8 Mar 2025 18:52:26 +0800 Subject: [PATCH 18/33] tertinggal denopendser no --- app/Http/Controllers/AutoSerahanController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 697e258..e3d562a 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -177,7 +177,7 @@ class AutoSerahanController extends Controller 'date_created' => $current ]); - DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v2'])->update(array( + DenoPendSer::on('mysql7')->where('no',$pendserid)->update(array( 'recno' => $gldetail->id, 'update' => 1 )); From e57d9f8f48da5b31c5a4713809defd3136b0564b Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 8 Mar 2025 23:34:14 +0800 Subject: [PATCH 19/33] added check if vault and denominasi empty --- .../Controllers/AutoSerahanController.php | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index e3d562a..3c0853c 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -311,6 +311,9 @@ class AutoSerahanController extends Controller public function serahanAutoSerahan(Request $request){ + $this->checkVault($request->kodcaw); + $this->checkDenominasi($request->kodcaw); + $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); @@ -318,6 +321,9 @@ class AutoSerahanController extends Controller public function pendahuluanAutoSerahan(Request $request){ + $this->checkVault($request->kodcaw); + $this->checkDenominasi($request->kodcaw); + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); @@ -345,4 +351,178 @@ class AutoSerahanController extends Controller $query = ApprovalWithdrawal::on('mysql7')->where('kodcaw',$request->kodcaw)->where('id',$request->id)->first(); return response()->json($query,200); } + + private function checkVault($kodcaw){ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + /* Check Tarikh Harini */ + $available_vault = Vault::on($cawangan['mysql'])->where('tarikh',Carbon::now()->toDateString())->first(); + + if($available_vault){ + return $available_vault; + }else{ + $last_vault = Vault::on($cawangan['mysql'])->where('kodcaw',$kodcaw)->orderby('tarikh','desc')->first(); + if(!$last_vault){ + $vaultcreate = Vault::on($cawangan['mysql'])->create([ + 'kodcaw'=>$kodcaw, + 'tarikh'=> Carbon::now()->toDateString(), + 'bakiawal' => 0, + 'keluar' => 0, + 'masuk' => 0, + 'bakiakhir' => 0, + 'bakieod' => 0, + 'pendahuluan' => 0, + 'serahan' => 0, + '1sen' => 0, + '5sen' => 0, + '10sen' => 0, + '20sen' => 0, + '50sen' => 0, + 'rm1' => 0, + 'rm2' => 0, + 'rm5' => 0, + 'rm10' => 0, + 'rm50' => 0, + 'rm100' => 0, + 'rm1000' => 0, + 'totpanjar' => 0 + ]); + + return $vaultcreate; + } + + $new_vault = Vault::on($cawangan['mysql'])->create([ + 'kodcaw'=>$kodcaw, + 'tarikh'=> Carbon::now()->toDateString(), + 'bakiawal' => $last_vault['bakiakhir'], + 'keluar' => 0, + 'masuk' => 0, + 'bakiakhir' => $last_vault['bakiakhir'], + 'bakieod' => $last_vault['bakiakhir'], + 'pendahuluan' => 0, + 'serahan' => 0, + '1sen' => $last_vault['1sen'], + '5sen' => $last_vault['5sen'], + '10sen' => $last_vault['10sen'], + '20sen' => $last_vault['20sen'], + '50sen' => $last_vault['50sen'], + 'rm1' => $last_vault['rm1'], + 'rm2' => $last_vault['rm2'], + 'rm5' => $last_vault['rm5'], + 'rm10' => $last_vault['rm10'], + 'rm50' => $last_vault['rm50'], + 'rm100' => $last_vault['rm100'], + 'rm1000' => $last_vault['rm1000'], + 'totpanjar' => 0 + ]); + return $new_vault; + } + } + + private function checkDenominasi($kodcaw){ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $current = Carbon::now(); + $denominasi = Denominasi::on($cawangan['mysql'])->where('tarikh',$current->toDateString())->first(); + if($denominasi){ + return $denominasi; + }else{ + $last_denominasi = Denominasi::on($cawangan['mysql'])->orderby('tarikh','desc')->first(); + if(!$last_denominasi){ + $savedeno = Denominasi::on($cawangan['mysql'])->create([ + + 'tarikh' => $current->toDateString(), + 'bd1' => 0, + 'b1' => 0, + 'bd5' => 0, + 'b5' => 0, + 'bd10' => 0, + 'b10' => 0, + 'bd20' => 0, + 'b20' => 0, + 'bd50' => 0, + 'b50' => 0, + 'bd100' => 0, + 'b100' => 0, + 'txtring1' => 0, + 'k1' => 0, + 'txtring5' => 0, + 'k5' => 0, + 'txtsen1' => 0, + 'k01' => 0, + 'txtsen5' => 0, + 'k05' => 0, + 'txtsen10' => 0, + 'k010' => 0, + 'txtsen20' => 0, + 'k020' => 0, + 'txtsen50' => 0, + 'k050' => 0, + 'txtring10' => 0, + 'k10' => 0, + 'txtring20' => 0, + 'k20' => 0, + 'txtring50' => 0, + 'k50' => 0, + 'txtring100' => 0, + 'k100' => 0, + 'txtring1000' => 0, + 'k1000' => 0, + 'jumlahbundle' => 0, + 'txtjumlah' => 0, + 'lebihan' => 0, + 'nota' => 0, + 'jumlahkeping' => 0 + ]); + } + + $savedeno = Denominasi::on($cawangan['mysql'])->create([ + + 'tarikh' => $current->toDateString(), + 'bd1' => $last_denominasi['bd1'], + 'b1' => $last_denominasi['b1'], + 'bd5' => $last_denominasi['bd5'], + 'b5' => $last_denominasi['b5'], + 'bd10' => $last_denominasi['bd10'], + 'b10' => $last_denominasi['b10'], + 'bd20' => $last_denominasi['bd20'], + 'b20' => $last_denominasi['b20'], + 'bd50' => $last_denominasi['bd50'], + 'b50' => $last_denominasi['b50'], + 'bd100' => $last_denominasi['bd100'], + 'b100' => $last_denominasi['b100'], + 'txtring1' => $last_denominasi['txtring1'], + 'k1' => $last_denominasi['k1'], + 'txtring5' => $last_denominasi['txtring5'], + 'k5' => $last_denominasi['k5'], + 'txtsen1' => $last_denominasi['txtsen1'], + 'k01' => $last_denominasi['k01'], + 'txtsen5' => $last_denominasi['txtsen5'], + 'k05' => $last_denominasi['k05'], + 'txtsen10' => $last_denominasi['txtsen10'], + 'k010' => $last_denominasi['k010'], + 'txtsen20' => $last_denominasi['txtsen20'], + 'k020' => $last_denominasi['k020'], + 'txtsen50' => $last_denominasi['txtsen50'], + 'k050' => $last_denominasi['k050'], + 'txtring10' => $last_denominasi['txtring10'], + 'k10' => $last_denominasi['k10'], + 'txtring20' => $last_denominasi['txtring20'], + 'k20' => $last_denominasi['k20'], + 'txtring50' => $last_denominasi['txtring50'], + 'k50' => $last_denominasi['k50'], + 'txtring100' => $last_denominasi['txtring100'], + 'k100' => $last_denominasi['k100'], + 'txtring1000' => $last_denominasi['txtring1000'], + 'k1000' => $last_denominasi['k1000'], + 'jumlahbundle' => $last_denominasi['jumlahbundle'], + 'txtjumlah' => $last_denominasi['txtjumlah'], + 'lebihan' => $last_denominasi['lebihan'], + 'nota' => $last_denominasi['nota'], + 'jumlahkeping' => $last_denominasi['jumlahkeping'] + ]); + + return $savedeno; + + } + } } \ No newline at end of file From a8466854ac8829e4fd3f55700cc6d3fb6311cc56 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 9 Mar 2025 00:22:03 +0800 Subject: [PATCH 20/33] updated serahan and pendahuluan denominasi --- .../Controllers/AutoSerahanController.php | 79 +++++++++++++------ 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 3c0853c..f913927 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -125,7 +125,7 @@ class AutoSerahanController extends Controller $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->first(); - $this->updateDenominasi($kodcaw,$denopendser); + $this->updateDenominasi($kodcaw,$denopendser,$jenis); $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $kodcaw, @@ -164,7 +164,7 @@ class AutoSerahanController extends Controller $denopendser = DenoPendSer::on('mysql7')->where('no',$pendserid)->first(); - $this->updateDenominasi($kodcaw,$denopendser); + $this->updateDenominasi($kodcaw,$denopendser,$jenis); $gldetail = GlDetail::on($cawangan['mysql'])->create([ 'kodcaw' => $kodcaw, @@ -239,32 +239,59 @@ class AutoSerahanController extends Controller } } - private function updateDenominasi($kodcaw,$denopendser){ + private function updateDenominasi($kodcaw,$denopendser,$jenis){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - Log::debug($denopendser); - $k1 = $denopendser['k1']; - $txtring1 = $denopendser['k1'] * 1; - $k5 = $denopendser['k5']; - $txtring5 = $denopendser['k5'] * 5; - $k01 = $denopendser['k01']; - $txtsen1 = $denopendser['k01'] * 0.01; - $k05 = $denopendser['k05']; - $txtsen5 = $denopendser['k05'] * 0.05; - $k010 = $denopendser['k010']; - $txtsen10 = $denopendser['k010'] * 0.10; - $k020 = $denopendser['k020']; - $txtsen20 = $denopendser['k020'] * 0.20; - $k050 = $denopendser['k050']; - $txtsen50 = $denopendser['k050'] * 0.50; - $k10 = $denopendser['k10']; - $txtring10 = $denopendser['k10'] * 10; - $k20 = $denopendser['k20']; - $txtring20 = $denopendser['k20'] * 20; - $k50 = $denopendser['k50']; - $txtring50 = $denopendser['k50'] * 50; - $k100 = $denopendser['k100']; - $txtring100 = $denopendser['k100'] * 100; + + $current_denominasi = $this->checkDenominasi($kodcaw); + + if($jenis == 'pendahuluan'){ + $k1 = ($denopendser['txtring1'] * 1) + $current_denominasi['k1']; + $txtring1 = $denopendser['txtring1'] + $current_denominasi['txtring1']; + $k5 = ($denopendser['txtring5'] * 5) + $current_denominasi['k5']; + $txtring5 = $denopendser['txtring5'] + $current_denominasi['txtring5']; + $k01 = ($denopendser['txtsen1'] * 0.01) + $current_denominasi['k01']; + $txtsen1 = $denopendser['txtsen1'] + $current_denominasi['txtsen1']; + $k05 = ($denopendser['txtsen5'] * 0.05) + $current_denominasi['k05']; + $txtsen5 = $denopendser['txtsen5'] + $current_denominasi['txtsen5']; + $k010 = ($denopendser['txtsen10'] * 0.10) + $current_denominasi['k010']; + $txtsen10 = $denopendser['txtsen10'] + $current_denominasi['txtsen10']; + $k020 = ($denopendser['txtsen20'] * 0.20) + $current_denominasi['k020']; + $txtsen20 = $denopendser['txtsen20'] + $current_denominasi['txtsen20']; + $k050 = ($denopendser['txtsen50'] * 0.50) + $current_denominasi['k050']; + $txtsen50 = $denopendser['txtsen50'] + $current_denominasi['txtsen50']; + $k10 = ($denopendser['txtring10'] * 10) + $current_denominasi['k10']; + $txtring10 = $denopendser['txtring10'] + $current_denominasi['txtring10']; + $k20 = ($denopendser['txtring20'] * 20) + $current_denominasi['k20']; + $txtring20 = $denopendser['txtring20'] + $current_denominasi['txtring20']; + $k50 = ($denopendser['txtring50'] * 50) + $current_denominasi['k50']; + $txtring50 = $denopendser['txtring50'] + $current_denominasi['txtring50']; + $k100 = ($denopendser['txtring100'] * 100) + $current_denominasi['k100']; + $txtring100 = $denopendser['txtring100'] + $current_denominasi['txtring100']; + }else{ + $k1 = $current_denominasi['k1'] - ($denopendser['txtring1'] * 1); + $txtring1 = $current_denominasi['txtring1'] - $denopendser['txtring1']; + $k5 = $current_denominasi['k5'] - ($denopendser['txtring5'] * 5); + $txtring5 = $current_denominasi['txtring5'] - $denopendser['txtring5']; + $k01 = $current_denominasi['k01'] - ($denopendser['txtsen1'] * 0.01); + $txtsen1 = $current_denominasi['txtsen1'] - $denopendser['txtsen1']; + $k05 = $current_denominasi['k05'] - ($denopendser['txtsen5'] * 0.05); + $txtsen5 = $current_denominasi['txtsen5'] - $denopendser['txtsen5']; + $k010 = $current_denominasi['k010'] - ($denopendser['txtsen10'] * 0.10); + $txtsen10 = $current_denominasi['txtsen10'] - $denopendser['txtsen10']; + $k020 = $current_denominasi['k020'] - ($denopendser['txtsen20'] * 0.20); + $txtsen20 = $current_denominasi['txtsen20'] - $denopendser['txtsen20']; + $k050 = $current_denominasi['k050'] - ($denopendser['txtsen50'] * 0.50); + $txtsen50 = $current_denominasi['txtsen50'] - $denopendser['txtsen50']; + $k10 = $current_denominasi['k10'] - ($denopendser['txtring10'] * 10); + $txtring10 = $current_denominasi['txtring10'] - $denopendser['txtring10']; + $k20 = $current_denominasi['k20'] - ($denopendser['txtring20'] * 20); + $txtring20 = $current_denominasi['txtring20'] - $denopendser['txtring20']; + $k50 = $current_denominasi['k50'] - ($denopendser['txtring50'] * 50); + $txtring50 = $current_denominasi['txtring50'] - $denopendser['txtring50']; + $k100 = $current_denominasi['k100'] - ($denopendser['txtring100'] * 100); + $txtring100 = $current_denominasi['txtring100'] - $denopendser['txtring100']; + } $totalkeping = $k01 + $k05 + $k010 + $k020 + $k050 + $k1 + $k5 + $k10 + $k20 + $k50 + $k100; From c2f7de5f961cb44a030305d390a1730ba472afdb Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 10 Mar 2025 01:31:21 +0800 Subject: [PATCH 21/33] added v3 pendahuluan acceptance --- .../Controllers/AutoSerahanController.php | 244 +++++++++++++++++- routes/web.php | 1 + 2 files changed, 242 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index f913927..4196af1 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -35,7 +35,7 @@ class AutoSerahanController extends Controller $deno_pendser = DenoPendSer::on('mysql7')->create([ 'tarikh' => $current->toDateString(), 'masa' => $current->toTimeString(), - 'kodcaw' => $request->kodcaw, + 'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw, 'kodlaluan' => $request->teller, 'amaun' => $request->amaun, 'bd1' => 0, @@ -63,7 +63,7 @@ class AutoSerahanController extends Controller if($request->version == 'v3'){ $approval = ApprovalWithdrawal::on('mysql7')->create([ - 'kodcaw' => $request->kodcaw, + 'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw, 'pc_name' => $request->teller, 'operasi_name' => null, 'amount' => $request->amaun, @@ -350,7 +350,7 @@ class AutoSerahanController extends Controller $this->checkVault($request->kodcaw); $this->checkDenominasi($request->kodcaw); - + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); @@ -552,4 +552,242 @@ class AutoSerahanController extends Controller } } + + public function checkProsesApproval(Request $request){ + $current = new Carbon(); + $current = Carbon::now(); + + $proses = ApprovalWithdrawal::on('mysql7') + ->where([ + ['pc_name','=',$request->pc_name], + ['approval_status','=','PENDING'], + ]) + ->whereDate('created_at', $current->toDateString()) + ->get(); + + return response()->json($proses); + } + + private function interchangeCawangan($kodcaw,$version){ + + if($version == 'v2'){ + switch($kodcaw) { + case '1STOP': + $newkodcaw = 'KT1ST'; + break; + case '010621': + $newkodcaw = 'PHKTN'; + break; + case '010620': + $newkodcaw = 'PHBNT'; + break; + case '010617': + $newkodcaw = 'PHRAU'; + break; + case '010915': + $newkodcaw = 'PLKGR'; + break; + case '010219': + $newkodcaw = 'KDSGP'; + break; + case '011013': + $newkodcaw = 'SLKJG'; + break; + case '011412': + $newkodcaw = 'KLRJL'; + break; + case '010618': + $newkodcaw = 'PHTMR'; + break; + case '020301': + $newkodcaw = 'KTJWT'; + break; + case 'APM': + $newkodcaw = 'KTPSM'; + break; + case '020303': + $newkodcaw = 'KTTMR'; + break; + case 'WCY': + $newkodcaw = 'KTWCY'; + break; + case 'GC': + $newkodcaw = 'KTGCH'; + break; + case 'KB2': + $newkodcaw = 'KTKB2'; + break; + case '010311': + $newkodcaw = 'KTGMS'; + break; + case '020306': + $newkodcaw = 'KTPSP'; + break; + case '011238': + $newkodcaw = 'SBPTT'; + break; + case '011228': + $newkodcaw = 'SBSDK'; + break; + case '011229': + $newkodcaw = 'SBTWU'; + break; + case '011230': + $newkodcaw = 'SBAPI'; + break; + case '011231': + $newkodcaw = 'SBBFT'; + break; + case '011232': + $newkodcaw = 'SBKBD'; + break; + case 'ARP': + $newkodcaw = 'KTRTP'; + break; + case 'ARM': + $newkodcaw = 'KTMCH'; + break; + case 'WB': + $newkodcaw = 'KTWFB'; + break; + case 'JLI': + $newkodcaw = 'KTJEL'; + break; + case 'ALS': + $newkodcaw = 'KTKLN'; + break; + case '010136': + $newkodcaw = 'JHPGD'; + break; + case '011235': + $newkodcaw = 'JHSKD'; + break; + case '011234': + $newkodcaw = 'SBTRN'; + break; + case '011233': + $newkodcaw = 'SBKNG'; + break; + case '011237': + $newkodcaw = 'SBSPN'; + break; + case '011227': + $newkodcaw = 'SBPTL'; + break; + default: + $newkodcaw = $kodcaw; + break; + } + } else { + switch($kodcaw) { + case 'KT1ST': + $newkodcaw = '1STOP'; + break; + case 'PHKTN': + $newkodcaw = '010621'; + break; + case 'PHBNT': + $newkodcaw = '010620'; + break; + case 'PHRAU': + $newkodcaw = '010617'; + break; + case 'PLKGR': + $newkodcaw = '010915'; + break; + case 'KDSGP': + $newkodcaw = '010219'; + break; + case 'SLKJG': + $newkodcaw = '011013'; + break; + case 'KLRJL': + $newkodcaw = '011412'; + break; + case 'PHTMR': + $newkodcaw = '010618'; + break; + case 'KTJWT': + $newkodcaw = '020301'; + break; + case 'KTPSM': + $newkodcaw = 'APM'; + break; + case 'KTTMR': + $newkodcaw = '020303'; + break; + case 'KTWCY': + $newkodcaw = 'WCY'; + break; + case 'KTGCH': + $newkodcaw = 'GC'; + break; + case 'KTKB2': + $newkodcaw = 'KB2'; + break; + case 'KTGMS': + $newkodcaw = '010311'; + break; + case 'KTPSP': + $newkodcaw = '020306'; + break; + case 'SBPTT': + $newkodcaw = '011238'; + break; + case 'SBSDK': + $newkodcaw = '011228'; + break; + case 'SBTWU': + $newkodcaw = '011229'; + break; + case 'SBAPI': + $newkodcaw = '011230'; + break; + case 'SBBFT': + $newkodcaw = '011231'; + break; + case 'SBKBD': + $newkodcaw = '011232'; + break; + case 'KTRTP': + $newkodcaw = 'ARP'; + break; + case 'KTMCH': + $newkodcaw = 'ARM'; + break; + case 'KTWFB': + $newkodcaw = 'WB'; + break; + case 'KTJEL': + $newkodcaw = 'JLI'; + break; + case 'KTKLN': + $newkodcaw = 'ALS'; + break; + case 'JHPGD': + $newkodcaw = '010136'; + break; + case 'JHSKD': + $newkodcaw = '011235'; + break; + case 'SBTRN': + $newkodcaw = '011234'; + break; + case 'SBKNG': + $newkodcaw = '011233'; + break; + case 'SBSPN': + $newkodcaw = '011237'; + break; + case 'SBPTL': + $newkodcaw = '011227'; + break; + default: + $newkodcaw = $kodcaw; + break; + } + } + + return $newkodcaw; + } } \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 9792c26..575c39a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -686,6 +686,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@SetApprovalWithdrawal']); $router->get('autoserahan/get',['uses'=>'AutoSerahanController@getAutoSerahanApproval']); + $router->get('autoserahan/checkapproval',['uses'=>'AutoSerahanController@checkProsesApproval']); }); $router->group(['prefix'=>'e-arrahn'], function () use ($router){ From 9b87170ca129a81985e692c8fbd5cad0cec06911 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 10 Mar 2025 01:47:20 +0800 Subject: [PATCH 22/33] interchangecawangan for checkVault and checkDenominasi --- app/Http/Controllers/AutoSerahanController.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 4196af1..c043831 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -338,8 +338,8 @@ class AutoSerahanController extends Controller public function serahanAutoSerahan(Request $request){ - $this->checkVault($request->kodcaw); - $this->checkDenominasi($request->kodcaw); + $this->checkVault($request->kodcaw,'v2'); + $this->checkDenominasi($request->kodcaw,'v2'); $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); @@ -348,8 +348,8 @@ class AutoSerahanController extends Controller public function pendahuluanAutoSerahan(Request $request){ - $this->checkVault($request->kodcaw); - $this->checkDenominasi($request->kodcaw); + $this->checkVault($request->kodcaw,'v3'); + $this->checkDenominasi($request->kodcaw,'v3'); $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); @@ -379,7 +379,9 @@ class AutoSerahanController extends Controller return response()->json($query,200); } - private function checkVault($kodcaw){ + private function checkVault($kodcaw,$version){ + + $kodcaw = $this->interchangeCawangan($kodcaw,$version); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); /* Check Tarikh Harini */ @@ -446,7 +448,9 @@ class AutoSerahanController extends Controller } } - private function checkDenominasi($kodcaw){ + private function checkDenominasi($kodcaw,$version){ + $kodcaw = $this->interchangeCawangan($kodcaw,$version); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $current = Carbon::now(); $denominasi = Denominasi::on($cawangan['mysql'])->where('tarikh',$current->toDateString())->first(); From c394e558e2c77a765cd8c466545fb711e7db1316 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 10 Mar 2025 01:52:02 +0800 Subject: [PATCH 23/33] change version at interchange --- app/Http/Controllers/AutoSerahanController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index c043831..5fabcc5 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -574,7 +574,7 @@ class AutoSerahanController extends Controller private function interchangeCawangan($kodcaw,$version){ - if($version == 'v2'){ + if($version == 'v3'){ switch($kodcaw) { case '1STOP': $newkodcaw = 'KT1ST'; From b0c3c89ef96e36ea111d8edaf4dc049f55b04f3d Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 15 Mar 2025 16:31:04 +0800 Subject: [PATCH 24/33] added interchange --- app/Http/Controllers/AutoSerahanController.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 5fabcc5..8db8872 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -123,7 +123,7 @@ class AutoSerahanController extends Controller $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; - $denopendser = DenoPendSer::on('mysql7')->where('no',$approval['denopendser_id_v3'])->first(); + $denopendser = DenoPendSer::on('mysql7')->where('no',$pendserid)->first(); $this->updateDenominasi($kodcaw,$denopendser,$jenis); @@ -243,7 +243,12 @@ class AutoSerahanController extends Controller $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); - $current_denominasi = $this->checkDenominasi($kodcaw); + $version = ($jenis == 'pendahuluan') ? 'v3' : 'v2'; + $current_denominasi = $this->checkDenominasi($kodcaw,$version); + Log::info('denopendser:'); + Log::debug($denopendser); + Log::info('current_denominasi:'); + Log::debug($current_denominasi); if($jenis == 'pendahuluan'){ $k1 = ($denopendser['txtring1'] * 1) + $current_denominasi['k1']; @@ -341,7 +346,9 @@ class AutoSerahanController extends Controller $this->checkVault($request->kodcaw,'v2'); $this->checkDenominasi($request->kodcaw,'v2'); - $updated_serahan = $this->autoSerahanEngine('serahan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); + $kodcaw = $this->interchangeCawangan($request->kodcaw,'v3'); + + $updated_serahan = $this->autoSerahanEngine('serahan',$kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); } @@ -351,7 +358,9 @@ class AutoSerahanController extends Controller $this->checkVault($request->kodcaw,'v3'); $this->checkDenominasi($request->kodcaw,'v3'); - $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$request->kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); + $kodcaw = $this->interchangeCawangan($request->kodcaw,'v3'); + + $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); } @@ -504,6 +513,7 @@ class AutoSerahanController extends Controller 'nota' => 0, 'jumlahkeping' => 0 ]); + return $savedeno; } $savedeno = Denominasi::on($cawangan['mysql'])->create([ From b7bc351d6d87bac4de91b54616f3e1b6365d15c5 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 15 Mar 2025 16:33:46 +0800 Subject: [PATCH 25/33] fix pendahuluan serahan --- app/Http/Controllers/AutoSerahanController.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 8db8872..4a3a7f5 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -245,10 +245,6 @@ class AutoSerahanController extends Controller $version = ($jenis == 'pendahuluan') ? 'v3' : 'v2'; $current_denominasi = $this->checkDenominasi($kodcaw,$version); - Log::info('denopendser:'); - Log::debug($denopendser); - Log::info('current_denominasi:'); - Log::debug($current_denominasi); if($jenis == 'pendahuluan'){ $k1 = ($denopendser['txtring1'] * 1) + $current_denominasi['k1']; @@ -346,7 +342,7 @@ class AutoSerahanController extends Controller $this->checkVault($request->kodcaw,'v2'); $this->checkDenominasi($request->kodcaw,'v2'); - $kodcaw = $this->interchangeCawangan($request->kodcaw,'v3'); + $kodcaw = $this->interchangeCawangan($request->kodcaw,'v2'); $updated_serahan = $this->autoSerahanEngine('serahan',$kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); @@ -357,7 +353,7 @@ class AutoSerahanController extends Controller $this->checkVault($request->kodcaw,'v3'); $this->checkDenominasi($request->kodcaw,'v3'); - + $kodcaw = $this->interchangeCawangan($request->kodcaw,'v3'); $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); From 2dd899372ec1852a3165d9ee6d2e10111a4f72dc Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 15 Mar 2025 16:40:12 +0800 Subject: [PATCH 26/33] add descpt Auto Serahan V3 --- app/Http/Controllers/AutoSerahanController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 4a3a7f5..ff6caf4 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -171,7 +171,7 @@ class AutoSerahanController extends Controller 'tarikh' => $current->toDateString(), 'dtacct' => '1000/010', 'ktacct' => '1000/020', - 'descpt' => 'Auto Serahan Kepada V3', + 'descpt' => 'Serahan Kepada V3', 'serahan' => $amaun, 'teller' => $teller . ' (AUTO V3)', 'date_created' => $current From c328a0492feccf7e23e40c4d5d3edefee8c61062 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 15 Mar 2025 18:09:40 +0800 Subject: [PATCH 27/33] fix database migrations to be added with delete and create --- app/Http/Controllers/AutoSerahanController.php | 2 +- app/Http/Controllers/VaultController.php | 7 +++++-- .../2025_02_23_154307_create_approval_withdrawal.php | 1 + .../2025_02_25_103124_add_timestamp_to_gldetail_table.php | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index ff6caf4..4c4cc54 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -132,7 +132,7 @@ class AutoSerahanController extends Controller 'tarikh' => $current->toDateString(), 'dtacct' => '1000/010', 'ktacct' => '7000/102', - 'descpt' => 'Auto Pendahuluan Daripada V2', + 'descpt' => 'Pendahuluan Daripada V2', 'pendahuluan' => $amaun, 'teller' => $teller . ' (AUTO V2)', 'date_created' => $current diff --git a/app/Http/Controllers/VaultController.php b/app/Http/Controllers/VaultController.php index d838ef6..416752c 100644 --- a/app/Http/Controllers/VaultController.php +++ b/app/Http/Controllers/VaultController.php @@ -316,7 +316,8 @@ class VaultController extends Controller 'ktacct' => $request->ktacct, 'descpt' => $request->keterangan, 'pendahuluan' => $request->amaun, - 'teller' => $request->teller + 'teller' => $request->teller, + 'date_created' => $current->toDateTimeString() ]); }else if($request->jenisgldetail == 'serahan') { @@ -327,7 +328,9 @@ class VaultController extends Controller 'ktacct' => $request->ktacct, 'descpt' => $request->keterangan, 'serahan' => $request->amaun, - 'teller' => $request->teller + 'teller' => $request->teller, + 'date_created' => $current->toDateTimeString() + ]); } 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 879f4ab..9ffe7ae 100644 --- a/database/migrations/2025_02_23_154307_create_approval_withdrawal.php +++ b/database/migrations/2025_02_23_154307_create_approval_withdrawal.php @@ -16,6 +16,7 @@ class CreateApprovalWithdrawal extends Migration Schema::create('approval_withdrawal', function (Blueprint $table) { $table->id(); $table->char('kodcaw', 20); + $table->string('action', 50); $table->string('pc_name', 100); $table->string('operasi_name', 100)->nullable(); $table->decimal('amount', 10, 2)->default(0); diff --git a/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php b/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php index af62292..2d01199 100644 --- a/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php +++ b/database/migrations/2025_02_25_103124_add_timestamp_to_gldetail_table.php @@ -3,6 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; +use Illuminate\Support\Facades\DB; class AddTimestampToGldetailTable extends Migration { From d236ca226804368162cd13b0f16fca606675be6f Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 16 Mar 2025 15:42:42 +0800 Subject: [PATCH 28/33] added delete autoserahan and change apporvalwithdraw --- app/ApprovalWithdrawal.php | 1 + .../Controllers/AutoSerahanController.php | 213 ++++++++++++++---- routes/web.php | 3 + 3 files changed, 172 insertions(+), 45 deletions(-) diff --git a/app/ApprovalWithdrawal.php b/app/ApprovalWithdrawal.php index b52e845..b62d08f 100644 --- a/app/ApprovalWithdrawal.php +++ b/app/ApprovalWithdrawal.php @@ -26,6 +26,7 @@ class ApprovalWithdrawal extends Model 'gldetail_id_v2', 'denopendser_id_v3', 'gldetail_id_v3', + 'action', 'approval_timestamp', ]; diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 4c4cc54..e2fdb32 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -24,6 +24,48 @@ class AutoSerahanController extends Controller return response()->json($listapproval,200); } + public function deleteAutoSerahan(Request $request){ + $current = Carbon::now(); + + DB::connection('mysql7')->beginTransaction(); + + try{ + if($request->version == 'v3'){ + $listapproval = ApprovalWithdrawal::on('mysql7') + ->where('gldetail_id_v2',$request->recno) + ->where('approval_status',"APPROVED") + ->where('action','create') + ->where('updated_serahan_v2',1) + ->where('updated_pendahuluan_v3',1) + ->get(); + + $approval = ApprovalWithdrawal::on('mysql7')->create([ + 'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw, + 'action' => 'delete', + 'pc_name' => $request->teller, + 'operasi_name' => null, + 'amount' => $request->amaun, + 'approval_status' => 'PENDING', + 'approval_timestamp' => null, + 'gldetail_id_v3' => $listapproval['gldetail_id_v3'], + 'gldetail_id_v2' => isset($request->recno) ? $request->recno : 0, + 'denopendser_id_v3' => 0, + '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]); + } + + }catch(\Exception $e){ + DB::connection('mysql7')->rollBack(); + return response()->json(['status' => 'failed','message' => $e->getMessage()]); + } + } + public function createAutoSerahan(Request $request) { $current = Carbon::now(); @@ -64,6 +106,7 @@ class AutoSerahanController extends Controller if($request->version == 'v3'){ $approval = ApprovalWithdrawal::on('mysql7')->create([ 'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw, + 'action' => 'create', 'pc_name' => $request->teller, 'operasi_name' => null, 'amount' => $request->amaun, @@ -95,11 +138,11 @@ class AutoSerahanController extends Controller } } - private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id,$denopendser_id){ + private function autoSerahanEngine($jenis, $kodcaw,$teller,$amaun,$id,$denopendser_id){ $current = Carbon::now(); $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']; $masuk = $vault['masuk']; @@ -107,10 +150,10 @@ class AutoSerahanController extends Controller $pendahuluan = $vault['pendahuluan']; $serahan = $vault['serahan']; $totpanjaran = $vault['totpanjar']; - + DB::connection($cawangan['mysql'])->beginTransaction(); DB::connection('mysql7')->beginTransaction(); - + try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); @@ -153,7 +196,7 @@ class AutoSerahanController extends Controller 'updated_pendahuluan_v3' => 1, 'gldetail_id_v3' => $gldetail->id )); - + }else if($jenis == 'serahan'){ $pendserid = empty($approval) ? $denopendser_id : $approval['denopendser_id_v2']; @@ -188,30 +231,25 @@ class AutoSerahanController extends Controller 'bakieod' => $bakiakhir )); - // ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( - // 'updated_serahan_v2' => 1, - // 'gldetail_id_v2' => $gldetail->id - // )); + } + + // Commit transactions + DB::connection($cawangan['mysql'])->commit(); + DB::connection('mysql7')->commit(); + return ['status' => 'success','gldetail_id' => $gldetail->id]; - } - - // Commit transactions - DB::connection($cawangan['mysql'])->commit(); - DB::connection('mysql7')->commit(); - return ['status' => 'success','gldetail_id' => $gldetail->id]; - }catch(\Exception $e){ - DB::connection($cawangan['mysql'])->rollBack(); - DB::connection('mysql7')->rollBack(); - throw $e; + DB::connection($cawangan['mysql'])->rollBack(); + DB::connection('mysql7')->rollBack(); + throw $e; } - } - - public function autoSerahanApproval(Request $request){ + } + + public function autoSerahanApproval(Request $request){ $current = Carbon::now(); - + DB::connection('mysql7')->beginTransaction(); - + try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); @@ -237,9 +275,9 @@ class AutoSerahanController extends Controller DB::connection('mysql7')->rollBack(); return response()->json(['status' => 'error','message' =>$e->getMessage(), 'line' => $e->getLine()]); } - } + } - private function updateDenominasi($kodcaw,$denopendser,$jenis){ + private function updateDenominasi($kodcaw,$denopendser,$jenis){ $current = Carbon::now(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); @@ -335,9 +373,9 @@ class AutoSerahanController extends Controller 'txtjumlah'=> $totalkeping, 'jumlahkeping' => $totalkeping )); - } + } - public function serahanAutoSerahan(Request $request){ + public function serahanAutoSerahan(Request $request){ $this->checkVault($request->kodcaw,'v2'); $this->checkDenominasi($request->kodcaw,'v2'); @@ -347,9 +385,9 @@ class AutoSerahanController extends Controller $updated_serahan = $this->autoSerahanEngine('serahan',$kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); return response()->json(['status' => 'success','gldetail_id' => $updated_serahan['gldetail_id']],200); - } + } - public function pendahuluanAutoSerahan(Request $request){ + public function pendahuluanAutoSerahan(Request $request){ $this->checkVault($request->kodcaw,'v3'); $this->checkDenominasi($request->kodcaw,'v3'); @@ -358,28 +396,113 @@ class AutoSerahanController extends Controller $updated_pendahuluan = $this->autoSerahanEngine('pendahuluan',$kodcaw,$request->teller,$request->amaun,$request->id,$request->denopendser_id); - return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); + return response()->json(['status' => 'success','gldetail_id' => $updated_pendahuluan['gldetail_id']],200); } - public function SetApprovalWithdrawal(Request $request){ + public function removeAutoSerahan(Request $request){ + $this->checkVault($request->kodcaw,'v2'); + $this->checkDenominasi($request->kodcaw,'v2'); - if($request->jenis == 'create'){ - ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ - 'denopendser_id_v2' => $request->deno_id, - ]); + $kodcaw = $this->interchangeCawangan($request->kodcaw,'v2'); - return response()->json(['status' => 'success'],200); - }else{ - ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ - 'updated_serahan_v2' => 1, - 'gldetail_id_v2' => $request->gldetail_id - ]); - return response()->json(['status' => 'success'],200); + $updated_serahan = $this->autoSerahanRemove('pendahuluan',$kodcaw,$request->amaun,$request->id); + + return response()->json($updated_serahan); + + } + + public function removeAutoPendahuluan(Request $request){ + $this->checkVault($request->kodcaw,'v3'); + $this->checkDenominasi($request->kodcaw,'v3'); + + $kodcaw = $this->interchangeCawangan($request->kodcaw,'v3'); + + $updated_pendahuluan = $this->autoSerahanRemove('pendahuluan',$kodcaw,$request->amaun,$request->id); + + return response()->json($updated_pendahuluan); + } + + private function autoSerahanRemove($jenis,$kodcaw,$amaun,$id){ + $current = Carbon::now(); + $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']; + $masuk = $vault['masuk']; + $bakiakhir = $vault['bakiakhir']; + $pendahuluan = $vault['pendahuluan']; + $serahan = $vault['serahan']; + $totpanjaran = $vault['totpanjar']; + + DB::connection($cawangan['mysql'])->beginTransaction(); + DB::connection('mysql7')->beginTransaction(); + + try{ + $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); + + if($jenis == 'pendahuluan'){ + $totalpendahuluan = $pendahuluan - $amaun; + + $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; + + Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( + 'pendahuluan' => $totalpendahuluan, + 'bakiakhir' => $bakiakhir, + 'bakieod' => $bakiakhir + )); + + DenoPendSer::where('no', $approval['denopendser_id_v2'])->delete(); + GlDetail::where('recno', $approval['gldetail_id_v3'])->delete(); + + ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( + 'updated_pendahuluan_v3' => 1, + )); + }else{ + $totalserahan = $serahan - $amaun; + + $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; + + Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( + 'serahan' => $totalserahan, + 'bakiakhir' => $bakiakhir, + 'bakieod' => $bakiakhir + )); + + DenoPendSer::where('no', $approval['denopendser_id_v2'])->delete(); + GlDetail::where('recno', $approval['gldetail_id_v2'])->delete(); + + ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( + 'updated_serahan_v2' => 1, + )); + } + + }catch(\Exception $e){ + DB::connection($cawangan['mysql'])->rollBack(); + DB::connection('mysql7')->rollBack(); + throw $e; } + } - } + public function SetApprovalWithdrawal(Request $request){ - public function getAutoSerahanApproval(Request $request){ + if($request->jenis == 'create'){ + ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ + 'denopendser_id_v2' => $request->deno_id, + ]); + + return response()->json(['status' => 'success'],200); + }else{ + ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ + 'updated_serahan_v2' => 1, + 'gldetail_id_v2' => $request->gldetail_id + ]); + return response()->json(['status' => 'success'],200); + } + + } + + public function getAutoSerahanApproval(Request $request){ $query = ApprovalWithdrawal::on('mysql7')->where('kodcaw',$request->kodcaw)->where('id',$request->id)->first(); return response()->json($query,200); } diff --git a/routes/web.php b/routes/web.php index 575c39a..cf4ee3b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -682,8 +682,11 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('autoserahan/list',['uses'=>'AutoSerahanController@getAutoSerahan']); $router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']); $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); + $router->post('autoserahan/delete',['uses'=>'AutoSerahanController@deleteAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); + $router->put('autoserahan/delete/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); + $router->put('autoserahan/delete/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@SetApprovalWithdrawal']); $router->get('autoserahan/get',['uses'=>'AutoSerahanController@getAutoSerahanApproval']); $router->get('autoserahan/checkapproval',['uses'=>'AutoSerahanController@checkProsesApproval']); From 521e52874f40f601540d52f5bff9bd94080390c2 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 16 Mar 2025 15:44:34 +0800 Subject: [PATCH 29/33] resolve conflict --- app/Http/Controllers/AutoSerahanController.php | 18 ++++++++++++------ routes/web.php | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index e2fdb32..e7e279c 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -36,8 +36,9 @@ class AutoSerahanController extends Controller ->where('approval_status',"APPROVED") ->where('action','create') ->where('updated_serahan_v2',1) - ->where('updated_pendahuluan_v3',1) - ->get(); + ->where('updated_pendahuluan_v3',1); + + $listapproval = optional($listapproval)->first(); $approval = ApprovalWithdrawal::on('mysql7')->create([ 'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw, @@ -49,10 +50,10 @@ class AutoSerahanController extends Controller 'approval_timestamp' => null, 'gldetail_id_v3' => $listapproval['gldetail_id_v3'], 'gldetail_id_v2' => isset($request->recno) ? $request->recno : 0, - 'denopendser_id_v3' => 0, - 'denopendser_id_v2' => 0, - 'updated_serahan_v2' => 0, - 'updated_pendahuluan_v3' => 0, + 'denopendser_id_v3' => $listapproval['denopendser_id_v3'], + 'denopendser_id_v2' => $listapproval['denopendser_id_v2'], + 'updated_serahan_v2' => $listapproval['updated_serahan_v2'], + 'updated_pendahuluan_v3' => $listapproval['updated_pendahuluan_v3'], 'created_at' => $current, 'updated_at' => $current, ]); @@ -119,6 +120,7 @@ class AutoSerahanController extends Controller 'updated_serahan_v2' => 0, 'updated_pendahuluan_v3' => 0, 'created_at' => $current, + 'action' => 'create', 'updated_at' => $current, ]); DB::connection('mysql7')->commit(); @@ -253,6 +255,10 @@ class AutoSerahanController extends Controller try{ $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); + if($request->action == 'delete'){ + + } + if($approval->approval_status == 'PENDING' && $request->sendApproval == 'ACCEPTED'){ $approval->operasi_name = $request->operasi_name; $approval->approval_status = 'APPROVED'; diff --git a/routes/web.php b/routes/web.php index cf4ee3b..c9c9fd5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -681,6 +681,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ /* Endpoint for Auto Serahan */ $router->get('autoserahan/list',['uses'=>'AutoSerahanController@getAutoSerahan']); $router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']); + $router->post('autoserahan/delete',['uses'=>'AutoSerahanController@deleteAutoSerahan']); $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); $router->post('autoserahan/delete',['uses'=>'AutoSerahanController@deleteAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); From b9bdae59e5a0f4a424eb826f5cf0e94a99c897cf Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 17 Mar 2025 01:09:24 +0800 Subject: [PATCH 30/33] change routes and fix sort of function --- app/Http/Controllers/AutoSerahanController.php | 16 +++++++++------- routes/web.php | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index e7e279c..b63e43f 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -411,7 +411,7 @@ class AutoSerahanController extends Controller $kodcaw = $this->interchangeCawangan($request->kodcaw,'v2'); - $updated_serahan = $this->autoSerahanRemove('pendahuluan',$kodcaw,$request->amaun,$request->id); + $updated_serahan = $this->autoSerahanRemove('serahan',$kodcaw,$request->amaun,$request->array_approval); return response()->json($updated_serahan); @@ -445,9 +445,9 @@ class AutoSerahanController extends Controller DB::connection('mysql7')->beginTransaction(); try{ - $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); - if($jenis == 'pendahuluan'){ + $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); + $totalpendahuluan = $pendahuluan - $amaun; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; @@ -458,13 +458,15 @@ class AutoSerahanController extends Controller 'bakieod' => $bakiakhir )); - DenoPendSer::where('no', $approval['denopendser_id_v2'])->delete(); - GlDetail::where('recno', $approval['gldetail_id_v3'])->delete(); + GlDetail::on($cawangan['mysql'])->where('recno', $approval['gldetail_id_v3'])->delete(); + DenoPendSer::on('mysql7')->where('no', $approval['denopendser_id_v2'])->delete(); ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_pendahuluan_v3' => 1, )); }else{ + $approval = $id; + $totalserahan = $serahan - $amaun; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; @@ -475,8 +477,8 @@ class AutoSerahanController extends Controller 'bakieod' => $bakiakhir )); - DenoPendSer::where('no', $approval['denopendser_id_v2'])->delete(); - GlDetail::where('recno', $approval['gldetail_id_v2'])->delete(); + GlDetail::on($cawangan['mysql'])->where('recno', $approval['gldetail_id_v2'])->delete(); + DenoPendSer::on('mysql7')->where('no', $approval['denopendser_id_v2'])->delete(); ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_serahan_v2' => 1, diff --git a/routes/web.php b/routes/web.php index c9c9fd5..99932e1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -686,8 +686,8 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->post('autoserahan/delete',['uses'=>'AutoSerahanController@deleteAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); - $router->put('autoserahan/delete/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); - $router->put('autoserahan/delete/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); + $router->put('autoserahan/delete/pendahuluan',['uses'=>'AutoSerahanController@removeAutoPendahuluan']); + $router->put('autoserahan/delete/serahan',['uses'=>'AutoSerahanController@removeAutoSerahan']); $router->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@SetApprovalWithdrawal']); $router->get('autoserahan/get',['uses'=>'AutoSerahanController@getAutoSerahanApproval']); $router->get('autoserahan/checkapproval',['uses'=>'AutoSerahanController@checkProsesApproval']); From 5c9773f0d58e0b99977cd030ca91fbe7fb2f9c8d Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 17 Mar 2025 10:22:09 +0800 Subject: [PATCH 31/33] add commit in the function --- app/Http/Controllers/AutoSerahanController.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index b63e43f..920cad3 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -459,7 +459,7 @@ class AutoSerahanController extends Controller )); GlDetail::on($cawangan['mysql'])->where('recno', $approval['gldetail_id_v3'])->delete(); - DenoPendSer::on('mysql7')->where('no', $approval['denopendser_id_v2'])->delete(); + DenoPendSer::on('mysql7')->where('no', $approval['denopendser_id_v3'])->delete(); ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_pendahuluan_v3' => 1, @@ -485,6 +485,9 @@ class AutoSerahanController extends Controller )); } + DB::connection($cawangan['mysql'])->commit(); + DB::connection('mysql7')->commit(); + }catch(\Exception $e){ DB::connection($cawangan['mysql'])->rollBack(); DB::connection('mysql7')->rollBack(); From b880b156bff011c56d1ba04407295e9148fbd944 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 17 Mar 2025 10:23:09 +0800 Subject: [PATCH 32/33] add updatedenoremove --- .../Controllers/AutoSerahanController.php | 108 +++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 920cad3..07c99a3 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -381,6 +381,104 @@ class AutoSerahanController extends Controller )); } + private function updateDenominasiRemove($kodcaw,$denopendser,$jenis){ + $current = Carbon::now(); + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + $version = ($jenis == 'pendahuluan') ? 'v3' : 'v2'; + $current_denominasi = $this->checkDenominasi($kodcaw,$version); + + if($jenis == 'pendahuluan'){ + $k1 = ($denopendser['txtring1'] * 1) - $current_denominasi['k1']; + $txtring1 = $denopendser['txtring1'] - $current_denominasi['txtring1']; + $k5 = ($denopendser['txtring5'] * 5) - $current_denominasi['k5']; + $txtring5 = $denopendser['txtring5'] - $current_denominasi['txtring5']; + $k01 = ($denopendser['txtsen1'] * 0.01) - $current_denominasi['k01']; + $txtsen1 = $denopendser['txtsen1'] - $current_denominasi['txtsen1']; + $k05 = ($denopendser['txtsen5'] * 0.05) - $current_denominasi['k05']; + $txtsen5 = $denopendser['txtsen5'] - $current_denominasi['txtsen5']; + $k010 = ($denopendser['txtsen10'] * 0.10) - $current_denominasi['k010']; + $txtsen10 = $denopendser['txtsen10'] - $current_denominasi['txtsen10']; + $k020 = ($denopendser['txtsen20'] * 0.20) - $current_denominasi['k020']; + $txtsen20 = $denopendser['txtsen20'] - $current_denominasi['txtsen20']; + $k050 = ($denopendser['txtsen50'] * 0.50) - $current_denominasi['k050']; + $txtsen50 = $denopendser['txtsen50'] - $current_denominasi['txtsen50']; + $k10 = ($denopendser['txtring10'] * 10) - $current_denominasi['k10']; + $txtring10 = $denopendser['txtring10'] - $current_denominasi['txtring10']; + $k20 = ($denopendser['txtring20'] * 20) - $current_denominasi['k20']; + $txtring20 = $denopendser['txtring20'] - $current_denominasi['txtring20']; + $k50 = ($denopendser['txtring50'] * 50) - $current_denominasi['k50']; + $txtring50 = $denopendser['txtring50'] - $current_denominasi['txtring50']; + $k100 = ($denopendser['txtring100'] * 100) - $current_denominasi['k100']; + $txtring100 = $denopendser['txtring100'] - $current_denominasi['txtring100']; + }else{ + $k1 = $current_denominasi['k1'] + ($denopendser['txtring1'] * 1); + $txtring1 = $current_denominasi['txtring1'] + $denopendser['txtring1']; + $k5 = $current_denominasi['k5'] + ($denopendser['txtring5'] * 5); + $txtring5 = $current_denominasi['txtring5'] + $denopendser['txtring5']; + $k01 = $current_denominasi['k01'] + ($denopendser['txtsen1'] * 0.01); + $txtsen1 = $current_denominasi['txtsen1'] + $denopendser['txtsen1']; + $k05 = $current_denominasi['k05'] + ($denopendser['txtsen5'] * 0.05); + $txtsen5 = $current_denominasi['txtsen5'] + $denopendser['txtsen5']; + $k010 = $current_denominasi['k010'] + ($denopendser['txtsen10'] * 0.10); + $txtsen10 = $current_denominasi['txtsen10'] + $denopendser['txtsen10']; + $k020 = $current_denominasi['k020'] + ($denopendser['txtsen20'] * 0.20); + $txtsen20 = $current_denominasi['txtsen20'] + $denopendser['txtsen20']; + $k050 = $current_denominasi['k050'] + ($denopendser['txtsen50'] * 0.50); + $txtsen50 = $current_denominasi['txtsen50'] + $denopendser['txtsen50']; + $k10 = $current_denominasi['k10'] + ($denopendser['txtring10'] * 10); + $txtring10 = $current_denominasi['txtring10'] + $denopendser['txtring10']; + $k20 = $current_denominasi['k20'] + ($denopendser['txtring20'] * 20); + $txtring20 = $current_denominasi['txtring20'] + $denopendser['txtring20']; + $k50 = $current_denominasi['k50'] + ($denopendser['txtring50'] * 50); + $txtring50 = $current_denominasi['txtring50'] + $denopendser['txtring50']; + $k100 = $current_denominasi['k100'] + ($denopendser['txtring100'] * 100); + $txtring100 = $current_denominasi['txtring100'] + $denopendser['txtring100']; + } + + $totalkeping = $k01 + $k05 + $k010 + $k020 + $k050 + $k1 + $k5 + $k10 + $k20 + $k50 + $k100; + + Denominasi::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()]])->update(array( + 'bd1' => 0, + 'b1'=> 0, + 'bd5'=> 0, + 'b5'=> 0, + 'bd10'=> 0, + 'b10'=> 0, + 'bd20'=> 0, + 'b20'=> 0, + 'bd50'=> 0, + 'b50'=> 0, + 'bd100'=> 0, + 'b100'=> 0, + 'txtring1'=> $txtring1, + 'k1'=> $k1, + 'txtring5'=> $txtring5, + 'k5'=> $k5, + 'txtsen1'=> $txtsen1, + 'k01'=> $k01, + 'txtsen5'=> $txtsen5, + 'k05'=> $k05, + 'txtsen10'=> $txtsen10, + 'k010'=> $k010, + 'txtsen20'=> $txtsen20, + 'k020'=> $k020, + 'txtsen50'=> $txtsen50, + 'k050'=> $k050, + 'txtring10'=> $txtring10, + 'k10'=> $k10, + 'txtring20'=> $txtring20, + 'k20'=> $k20, + 'txtring50'=> $txtring50, + 'k50'=> $k50, + 'txtring100'=> $txtring100, + 'k100'=> $k100, + 'jumlahbundle'=> 0, + 'txtjumlah'=> $totalkeping, + 'jumlahkeping' => $totalkeping + )); + } + public function serahanAutoSerahan(Request $request){ $this->checkVault($request->kodcaw,'v2'); @@ -423,7 +521,7 @@ class AutoSerahanController extends Controller $kodcaw = $this->interchangeCawangan($request->kodcaw,'v3'); - $updated_pendahuluan = $this->autoSerahanRemove('pendahuluan',$kodcaw,$request->amaun,$request->id); + $updated_pendahuluan = $this->autoSerahanRemove('pendahuluan',$kodcaw,$request->amaun,$request->array_approval); return response()->json($updated_pendahuluan); } @@ -446,11 +544,14 @@ class AutoSerahanController extends Controller try{ if($jenis == 'pendahuluan'){ - $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); + $approval = $id; $totalpendahuluan = $pendahuluan - $amaun; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; + $denopendser = Denopendser::on('mysql7')->where('no', $approval['denopendser_id_v3'])->get(); + + $this->updateDenominasiRemove($kodcaw,$denopendser,'pendahuluan'); Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'pendahuluan' => $totalpendahuluan, @@ -470,6 +571,9 @@ class AutoSerahanController extends Controller $totalserahan = $serahan - $amaun; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; + $denopendser = Denopendser::on('mysql7')->where('no', $approval['denopendser_id_v2'])->get(); + + $this->updateDenominasiRemove($kodcaw,$denopendser,'serahan'); Vault::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()],['kodcaw','=', $kodcaw]])->update(array( 'serahan' => $totalserahan, From 1a201abed8a42bb6154993a003de13dfbd9ca088 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 17 Mar 2025 10:31:23 +0800 Subject: [PATCH 33/33] added first optional --- app/Http/Controllers/AutoSerahanController.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/AutoSerahanController.php b/app/Http/Controllers/AutoSerahanController.php index 07c99a3..9891d5e 100644 --- a/app/Http/Controllers/AutoSerahanController.php +++ b/app/Http/Controllers/AutoSerahanController.php @@ -549,7 +549,8 @@ class AutoSerahanController extends Controller $totalpendahuluan = $pendahuluan - $amaun; $bakiakhir = $bakiawal - $keluar + $masuk + $totalpendahuluan - $serahan - $totpanjaran; - $denopendser = Denopendser::on('mysql7')->where('no', $approval['denopendser_id_v3'])->get(); + $denopendser = Denopendser::on('mysql7')->where('no', $approval['denopendser_id_v3']); + $denopendser = optional($denopendser)->first(); $this->updateDenominasiRemove($kodcaw,$denopendser,'pendahuluan'); @@ -559,9 +560,11 @@ class AutoSerahanController extends Controller 'bakieod' => $bakiakhir )); - GlDetail::on($cawangan['mysql'])->where('recno', $approval['gldetail_id_v3'])->delete(); + $gldetail_remove = GlDetail::on($cawangan['mysql'])->where('recno', $approval['gldetail_id_v3'])->delete(); DenoPendSer::on('mysql7')->where('no', $approval['denopendser_id_v3'])->delete(); + Log::info('gldetail'); + Log::debug($gldetail_remove); ApprovalWithdrawal::on('mysql7')->where('id',$id)->update(array( 'updated_pendahuluan_v3' => 1, )); @@ -571,7 +574,8 @@ class AutoSerahanController extends Controller $totalserahan = $serahan - $amaun; $bakiakhir = $bakiawal - $keluar + $masuk + $pendahuluan - $totalserahan - $totpanjaran; - $denopendser = Denopendser::on('mysql7')->where('no', $approval['denopendser_id_v2'])->get(); + $denopendser = Denopendser::on('mysql7')->where('no', $approval['denopendser_id_v2']); + $denopendser = optional($denopendser)->first(); $this->updateDenominasiRemove($kodcaw,$denopendser,'serahan');