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){