diff --git a/Entities/Account.php b/Entities/Account.php index 4e4e5d8..21e8e49 100644 --- a/Entities/Account.php +++ b/Entities/Account.php @@ -453,4 +453,4 @@ class Account extends Model -} \ No newline at end of file +} diff --git a/Http/Controllers/KonfirmasiBankController.php b/Http/Controllers/KonfirmasiBankController.php index 4dee52a..2d7bfe0 100644 --- a/Http/Controllers/KonfirmasiBankController.php +++ b/Http/Controllers/KonfirmasiBankController.php @@ -446,10 +446,20 @@ class KonfirmasiBankController extends Controller } $DataDepo = []; - $Deposito = $Account->getDepo($request['cusNo'], $arrAccount, $dateCoreDepo)->get(); + try { + $Deposito = $Account->getDepo($request['cusNo'], $arrAccount, $dateCoreDepo)->get(); + } catch (\Illuminate\Database\QueryException $e) { + $errorCode = $e->errorInfo[1]; + if ($errorCode == 1205) { // 1205 adalah kode error untuk Lock wait timeout exceeded; try restarting transaction + // Lakukan sesuatu jika terjadi timeout + return response()->json(['error' => 'Database timeout, please try again later'], 503); + } + // Handle error lainnya + return response()->json(['error' => 'Database error'], 500); + } - foreach ($Deposito as $keyDep => $depo) { + foreach ($Deposito as $keyDep => $depo) { $DataDepo[$keyDep]['ACCOUNT_NUMBER'] = $depo->NO_REK; $DataDepo[$keyDep]['BATCH_DATE'] = $depo->PERIOD; @@ -461,9 +471,21 @@ class KonfirmasiBankController extends Controller $DataDepo[$keyDep]['FIXED_RATE'] = $depo->SUKU_BUNGA; $DataDepo[$keyDep]['TERM'] = substr($depo->KODE_SUB_PRODUK, 0, -1); } + // dd($Deposito); - $Arrangement = $Account->getPinjaman($request['cusNo'], $dateCoreAccount)->get(); + try { + $Arrangement = $Account->getPinjaman($request['cusNo'], $dateCoreAccount)->get(); + + } catch (\Illuminate\Database\QueryException $e) { + $errorCode = $e->errorInfo[1]; + if ($errorCode == 1205) { // 1205 adalah kode error untuk Lock wait timeout exceeded; try restarting transaction + // Lakukan sesuatu jika terjadi timeout + return response()->json(['error' => 'Database timeout, please try again later'], 503); + } + // Handle error lainnya + return response()->json(['error' => 'Database error'], 500); + } foreach ($Arrangement as $key2 => $pinjaman) { $limtiCheck = $Account->getLimitCheck($pinjaman->LINKED_APPL_ID, $startDate)->first(); @@ -480,7 +502,19 @@ class KonfirmasiBankController extends Controller } - $listAccountRK = $Account->getAccountRK($arrAccount, $dateCoreAccount)->get(); + + try { + $listAccountRK = $Account->getAccountRK($arrAccount, $dateCoreAccount)->get(); + + } catch (\Illuminate\Database\QueryException $e) { + $errorCode = $e->errorInfo[1]; + if ($errorCode == 1205) { // 1205 adalah kode error untuk Lock wait timeout exceeded; try restarting transaction + // Lakukan sesuatu jika terjadi timeout + return response()->json(['error' => 'Database timeout, please try again later'], 503); + } + // Handle error lainnya + return response()->json(['error' => 'Database error'], 500); + } foreach ($listAccountRK as $rk => $valRk) { @@ -496,39 +530,23 @@ class KonfirmasiBankController extends Controller $DataRK[$rk]['ARRANGEMENT_ID'] = ''; $DataRK[$rk]['FIXED_RATE'] = $valRk->CURRENT_INTEREST_RATE; $DataRK[$rk]['TERM'] = $valRk->TENOR; - // if ($valRk->CATEGORY == '1003') { - // $rateRK = ""; - // $rateDebitRk = $Account->getRateRk($valRk->ACCOUNT_NUMBER, $dateCore)->first(); - // if ($rateDebitRk) { - // if( $rateDebitRk->DR_INT_RATE == "0") { - // $rateRK = $rateDebitRk->DR_INT_RATE; - // } else { - // $rateRK = substr($rateDebitRk->DR_INT_RATE, 0, -2); - // } - // } else { - // $rateRK = ''; - // } - // $DataRK[$rk]['ACCOUNT_NUMBER'] = $valRk->ACCOUNT_NUMBER; - // // $DataRK[$rk]['OPENING_DATE'] = $valRk->OPENING_DATE; - // $DataRK[$rk]['BATCH_DATE'] = $valRk->BATCH_DATE; - // // $DataRK[$rk]['CUSTOMER_NO'] = $valRk->CUSTOMER_NO; - // $DataRK[$rk]['SHORT_NAME'] = $valRk->LOAN_CCY; - // $DataRK[$rk]['CURRENCY'] = $valRk->LOAN_CCY; - // $DataRK[$rk]['PRODUCT'] = $valRk->PRODUCT_LOAN; - // $DataRK[$rk]['WORKING_BALANCE'] = $valRk->PRINCIPLE_AMOUNT != null ? number_format($valRk->PRINCIPLE_AMOUNT, 2, ',', '.') : 'NIHIL'; - // $DataRK[$rk]['MATURITY_DATE'] = date('d-m-Y', strtotime($valRk->MATURITY_DATE)) ?? ''; - // $DataRK[$rk]['ARRANGEMENT_ID'] = ''; - // $DataRK[$rk]['FIXED_RATE'] = $valRk->CURRENT_INTEREST_RATE; - // $DataRK[$rk]['TERM'] = $valRk->TENOR; - - // } - } + try { + $fasilitas = Fasilitas::where('nomor_cif', $request['cusNo'])->where('status', 1)->get(); + + } catch (\Illuminate\Database\QueryException $e) { + $errorCode = $e->errorInfo[1]; + if ($errorCode == 1205) { // 1205 adalah kode error untuk Lock wait timeout exceeded; try restarting transaction + // Lakukan sesuatu jika terjadi timeout + return response()->json(['error' => 'Database timeout, please try again later'], 503); + } + // Handle error lainnya + return response()->json(['error' => 'Database error'], 500); + } - $fasilitas = Fasilitas::where('nomor_cif', $request['cusNo'])->where('status', 1)->get(); foreach ($fasilitas as $key3 => $val3) { $DataFasilitas[$key3]['jenis_fasilitas'] = $val3->jenis_fasilitas; $DataFasilitas[$key3]['start_date'] = $val3->start_date; @@ -541,7 +559,19 @@ class KonfirmasiBankController extends Controller } //Get DatA Anjak - $ListAnjak = $Account->getAccountAnjak($rekEscrow, $dateCoreAccount)->get(); + + try { + $ListAnjak = $Account->getAccountAnjak($rekEscrow, $dateCoreAccount)->get(); + + } catch (\Illuminate\Database\QueryException $e) { + $errorCode = $e->errorInfo[1]; + if ($errorCode == 1205) { // 1205 adalah kode error untuk Lock wait timeout exceeded; try restarting transaction + // Lakukan sesuatu jika terjadi timeout + return response()->json(['error' => 'Database timeout, please try again later'], 503); + } + // Handle error lainnya + return response()->json(['error' => 'Database error'], 500); + } $totalOutstanding = $ListAnjak->sum('OUTSTANDING') != null ? number_format(abs($ListAnjak->sum('OUTSTANDING')), 2, ',', '.') : 'NIHIL'; @@ -854,4 +884,4 @@ class KonfirmasiBankController extends Controller } -} \ No newline at end of file +}