added delete autoserahan and change apporvalwithdraw

This commit is contained in:
Hafifie PKB
2025-03-16 15:42:42 +08:00
parent c328a0492f
commit d236ca2268
3 changed files with 172 additions and 45 deletions
+1
View File
@@ -26,6 +26,7 @@ class ApprovalWithdrawal extends Model
'gldetail_id_v2',
'denopendser_id_v3',
'gldetail_id_v3',
'action',
'approval_timestamp',
];
+168 -45
View File
@@ -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);
}
+3
View File
@@ -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']);