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', 'gldetail_id_v2',
'denopendser_id_v3', 'denopendser_id_v3',
'gldetail_id_v3', 'gldetail_id_v3',
'action',
'approval_timestamp', 'approval_timestamp',
]; ];
+168 -45
View File
@@ -24,6 +24,48 @@ class AutoSerahanController extends Controller
return response()->json($listapproval,200); 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) public function createAutoSerahan(Request $request)
{ {
$current = Carbon::now(); $current = Carbon::now();
@@ -64,6 +106,7 @@ class AutoSerahanController extends Controller
if($request->version == 'v3'){ if($request->version == 'v3'){
$approval = ApprovalWithdrawal::on('mysql7')->create([ $approval = ApprovalWithdrawal::on('mysql7')->create([
'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw, 'kodcaw' => ($request->version == 'v3') ? $this->interchangeCawangan($request->kodcaw,$request->version) : $request->kodcaw,
'action' => 'create',
'pc_name' => $request->teller, 'pc_name' => $request->teller,
'operasi_name' => null, 'operasi_name' => null,
'amount' => $request->amaun, '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(); $current = Carbon::now();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->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(); $vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first();
$bakiawal = $vault['bakiawal']; $bakiawal = $vault['bakiawal'];
$keluar = $vault['keluar']; $keluar = $vault['keluar'];
$masuk = $vault['masuk']; $masuk = $vault['masuk'];
@@ -107,10 +150,10 @@ class AutoSerahanController extends Controller
$pendahuluan = $vault['pendahuluan']; $pendahuluan = $vault['pendahuluan'];
$serahan = $vault['serahan']; $serahan = $vault['serahan'];
$totpanjaran = $vault['totpanjar']; $totpanjaran = $vault['totpanjar'];
DB::connection($cawangan['mysql'])->beginTransaction(); DB::connection($cawangan['mysql'])->beginTransaction();
DB::connection('mysql7')->beginTransaction(); DB::connection('mysql7')->beginTransaction();
try{ try{
$approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first(); $approval = ApprovalWithdrawal::on('mysql7')->where('id',$id)->first();
@@ -153,7 +196,7 @@ class AutoSerahanController extends Controller
'updated_pendahuluan_v3' => 1, 'updated_pendahuluan_v3' => 1,
'gldetail_id_v3' => $gldetail->id 'gldetail_id_v3' => $gldetail->id
)); ));
}else if($jenis == 'serahan'){ }else if($jenis == 'serahan'){
$pendserid = empty($approval) ? $denopendser_id : $approval['denopendser_id_v2']; $pendserid = empty($approval) ? $denopendser_id : $approval['denopendser_id_v2'];
@@ -188,30 +231,25 @@ class AutoSerahanController extends Controller
'bakieod' => $bakiakhir '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){ }catch(\Exception $e){
DB::connection($cawangan['mysql'])->rollBack(); DB::connection($cawangan['mysql'])->rollBack();
DB::connection('mysql7')->rollBack(); DB::connection('mysql7')->rollBack();
throw $e; throw $e;
} }
} }
public function autoSerahanApproval(Request $request){ public function autoSerahanApproval(Request $request){
$current = Carbon::now(); $current = Carbon::now();
DB::connection('mysql7')->beginTransaction(); DB::connection('mysql7')->beginTransaction();
try{ try{
$approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first(); $approval = ApprovalWithdrawal::on('mysql7')->where('id',$request->id)->first();
@@ -237,9 +275,9 @@ class AutoSerahanController extends Controller
DB::connection('mysql7')->rollBack(); DB::connection('mysql7')->rollBack();
return response()->json(['status' => 'error','message' =>$e->getMessage(), 'line' => $e->getLine()]); 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(); $current = Carbon::now();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
@@ -335,9 +373,9 @@ class AutoSerahanController extends Controller
'txtjumlah'=> $totalkeping, 'txtjumlah'=> $totalkeping,
'jumlahkeping' => $totalkeping 'jumlahkeping' => $totalkeping
)); ));
} }
public function serahanAutoSerahan(Request $request){ public function serahanAutoSerahan(Request $request){
$this->checkVault($request->kodcaw,'v2'); $this->checkVault($request->kodcaw,'v2');
$this->checkDenominasi($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); $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); 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->checkVault($request->kodcaw,'v3');
$this->checkDenominasi($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); $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'){ $kodcaw = $this->interchangeCawangan($request->kodcaw,'v2');
ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([
'denopendser_id_v2' => $request->deno_id,
]);
return response()->json(['status' => 'success'],200); $updated_serahan = $this->autoSerahanRemove('pendahuluan',$kodcaw,$request->amaun,$request->id);
}else{
ApprovalWithdrawal::on('mysql7')->where('id', $request->id)->update([ return response()->json($updated_serahan);
'updated_serahan_v2' => 1,
'gldetail_id_v2' => $request->gldetail_id }
]);
return response()->json(['status' => 'success'],200); 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(); $query = ApprovalWithdrawal::on('mysql7')->where('kodcaw',$request->kodcaw)->where('id',$request->id)->first();
return response()->json($query,200); 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->get('autoserahan/list',['uses'=>'AutoSerahanController@getAutoSerahan']);
$router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']); $router->put('autoserahan/approve',['uses'=>'AutoSerahanController@autoSerahanApproval']);
$router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']); $router->post('autoserahan/create',['uses'=>'AutoSerahanController@createAutoSerahan']);
$router->post('autoserahan/delete',['uses'=>'AutoSerahanController@deleteAutoSerahan']);
$router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']); $router->put('autoserahan/pendahuluan',['uses'=>'AutoSerahanController@pendahuluanAutoSerahan']);
$router->put('autoserahan/serahan',['uses'=>'AutoSerahanController@serahanAutoSerahan']); $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->put('autoserahan/setapproval',['uses'=>'AutoSerahanController@SetApprovalWithdrawal']);
$router->get('autoserahan/get',['uses'=>'AutoSerahanController@getAutoSerahanApproval']); $router->get('autoserahan/get',['uses'=>'AutoSerahanController@getAutoSerahanApproval']);
$router->get('autoserahan/checkapproval',['uses'=>'AutoSerahanController@checkProsesApproval']); $router->get('autoserahan/checkapproval',['uses'=>'AutoSerahanController@checkProsesApproval']);