From 1fbc3839b40bb56edb5b33764958fb01ee9c382c Mon Sep 17 00:00:00 2001 From: KhatamNugraha Date: Fri, 17 May 2024 10:20:45 +0700 Subject: [PATCH] fixing tenor and maturity date --- Entities/Account.php | 85 ++++++++++++++----- Http/Controllers/KonfirmasiBankController.php | 20 +++-- 2 files changed, 76 insertions(+), 29 deletions(-) diff --git a/Entities/Account.php b/Entities/Account.php index 3a16426..f2999f5 100644 --- a/Entities/Account.php +++ b/Entities/Account.php @@ -83,6 +83,49 @@ class Account extends Model return $data; } + public function getAA($cust, $acc, $dataCore) + { + //$uppercaseKodeCabang = Str::upper($kodecabang); + $dateString = $dataCore->format('m/d/Y'); + // dd($dateString); + $timestamp = strtotime($dataCore); + // Format the timestamp into a date format + $Year = date("Y", $timestamp); + + $data = DB::connection("db2")->table("STG_DB.AA_ARRANGEMENT AS ARR") + ->selectRaw('ARR.ID,ARR.LINKED_APPL_ID,CUSTOMER,ARR.PRODUCT_LINE,AD.MATURITY_DATE,AI.FIXED_RATE,ARR.BATCH_DATE') + ->join('STG_DB.AA_ACCOUNT_DETAILS AS AD', 'ARR.ID', '=', 'AD.ID') + ->join('STG_DB.AA_ARR_INTEREST AS AI', DB::raw("LEFT(ARR.ID,12)"), '=', 'AD.ID') + ->where('ARR.CUSTOMER', $cust) + ->whereYear('ARR.BATCH_DATE', $Year) + ->where('ARR.LINKED_APPL_ID', $acc) + ->groupBy('ARR.ID', 'ARR.LINKED_APPL_ID', 'ARR.CUSTOMER', 'ARR.PRODUCT_LINE','ARR.BATCH_DATE','AD.MATURITY_DATE','AI.FIXED_RATE','ARR.BATCH_DATE') + // ->orderBy('ARR.BATCH_DATE', 'DESC') + ->orderBy('ARR.BATCH_DATE', 'DESC') + ->limit(1); + return $data; + } + + public function getArr($cust, $acc, $dataCore) + { + //$uppercaseKodeCabang = Str::upper($kodecabang); + $dateString = $dataCore->format('m/d/Y'); + // dd($dateString); + $timestamp = strtotime($dataCore); + // Format the timestamp into a date format + $Year = date("Y", $timestamp); + + $data = DB::connection("db2")->table("STG_DB.VW_AA_DETAIL") + ->selectRaw('CUSTOMER,LINKED_APPL_ID,PRODUCT_LINE,MATURITY_DATE,RENEWAL_DATE,START_DATE,ARR_STATUS,BATCH_DATE,FIXED_RATE,BASE_DATE') + ->where('CUSTOMER', $cust) + //->whereYear('BATCH_DATE', $Year) + ->where('LINKED_APPL_ID', $acc) + // ->groupBy('ARR.ID', 'ARR.LINKED_APPL_ID', 'ARR.CUSTOMER', 'ARR.PRODUCT_LINE','ARR.BATCH_DATE','AD.MATURITY_DATE','AI.FIXED_RATE','ARR.BATCH_DATE') + ->orderBy('BATCH_DATE', 'DESC') + ->limit(1); + return $data; + } + public function getCustomer($cus_no) { $data = []; @@ -100,25 +143,27 @@ class Account extends Model return $data; } - public function getAA($cust, $acc, $dataCore) - { - //dd($cust, $acc, $dataCore); - $timestamp = strtotime($dataCore); - // Format the timestamp into a date format - $Year = date("Y", $timestamp); - $data = []; - $data = DB::connection("db2")->table("STG_DB.VW_AA_DETAIL") - ->select('LINKED_APPL_ID', 'CUSTOMER', 'RENEWAL_DATE', 'START_DATE', 'FIXED_RATE', 'BATCH_DATE', 'PRODUCT_LINE', 'ARR_STATUS') - ->where('CUSTOMER', $cust) - ->where('ARR_STATUS', '<>', 'CLOSE') - ->where('PRODUCT_LINE', 'like', "%" .'DEPOSITS' ."%") - ->where('LINKED_APPL_ID', $acc) - //->whereYear('BATCH_DATE', $Year) - ->groupBy('LINKED_APPL_ID', 'CUSTOMER', 'START_DATE', 'FIXED_RATE', 'BATCH_DATE', 'PRODUCT_LINE', 'ARR_STATUS','RENEWAL_DATE') - ->orderBy('BATCH_DATE', 'DESC') - ->limit(100); - return $data; - } + // public function getAA($cust, $acc, $dataCore) + // { + // $dateString = $dataCore->format('m/d/Y'); + // // dd($dateString); + // $timestamp = strtotime($dataCore); + // // Format the timestamp into a date format + // $Year = date("Y", $timestamp); + // //dd($Year); + // $data = []; + // $data = DB::connection("db2")->table("STG_DB.VW_AA_DETAIL") + // ->select('LINKED_APPL_ID', 'CUSTOMER', 'RENEWAL_DATE', 'START_DATE', 'FIXED_RATE', 'BATCH_DATE', 'PRODUCT_LINE', 'ARR_STATUS') + // ->where('CUSTOMER', $cust) + // ->where('ARR_STATUS', '<>', 'CLOSE') + // //->where('PRODUCT_LINE', 'like', "%" .'DEPOSITS' ."%") + // ->where('LINKED_APPL_ID', $acc) + // //->where('BATCH_DATE', $dateString) + // ->groupBy('LINKED_APPL_ID', 'CUSTOMER', 'START_DATE', 'FIXED_RATE', 'BATCH_DATE', 'PRODUCT_LINE', 'ARR_STATUS','RENEWAL_DATE') + // ->orderBy('BATCH_DATE', 'DESC') + // ->limit(1); + // return $data; + // } public function getPinjaman($cus_no, $dateCore) { @@ -285,4 +330,4 @@ class Account extends Model -} \ No newline at end of file +} diff --git a/Http/Controllers/KonfirmasiBankController.php b/Http/Controllers/KonfirmasiBankController.php index c06a5d5..040a91a 100644 --- a/Http/Controllers/KonfirmasiBankController.php +++ b/Http/Controllers/KonfirmasiBankController.php @@ -362,27 +362,29 @@ class KonfirmasiBankController extends Controller // try { foreach ($listAccount as $key1 => $account) { - $dataAADepo = $Account->getAA($request['cusNo'], $account->ACCOUNT_NUMBER, $dateCore)->first(); - // dd($dataAADepo); + $dataAADepo = $Account->getArr($request['cusNo'], $account->ACCOUNT_NUMBER, $dateCore)->first(); + //dd($dataAADepo); if ($account->CATEGORY == '6603' || $account->CATEGORY == '6602') { if ($dataAADepo != null) { $tenor = ''; - $tanggal_1 = date_create($dataAADepo->RENEWAL_DATE); - $tanggal_2 = date_create($dataAADepo->START_DATE); + $tanggal_1 = date_create($dataAADepo->START_DATE); + $tanggal_2 = date_create($dataAADepo->BASE_DATE); $tenor = date_diff($tanggal_1, $tanggal_2); + $tenorFix = $tenor->days >= 30 ? intval($tenor->days / 30) : '1'; + $DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER; $DataAccounts[$key1]['OPENING_DATE'] = $account->OPENING_DATE; $DataAccounts[$key1]['BATCH_DATE'] = $account->BATCH_DATE; $DataAccounts[$key1]['CUSTOMER_NO'] = $account->CUSTOMER_NO; - $DataAccounts[$key1]['SHORT_NAME'] = $account->SHORT_NAME; + $DataAccounts[$key1]['SHORT_NAME'] = $dataAADepo->PRODUCT_LINE; $DataAccounts[$key1]['CURRENCY'] = $account->CURRENCY; $DataAccounts[$key1]['PRODUCT'] = $account->SHORT_TITLE; $DataAccounts[$key1]['COMPANY_NAME'] = $account->COMPANY_NAME; $DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE != null ? number_format($account->WORKING_BALANCE, 2, ',', '.') : 'NIHIL'; - $DataAccounts[$key1]['MATURITY_DATE'] = date('d-m-Y', strtotime($dataAADepo->RENEWAL_DATE)) ; + $DataAccounts[$key1]['MATURITY_DATE'] = date('d-m-Y', strtotime($dataAADepo->RENEWAL_DATE)) ; $DataAccounts[$key1]['ARRANGEMENT_ID'] = ''; $DataAccounts[$key1]['FIXED_RATE'] = $dataAADepo->FIXED_RATE . ' %'; - $DataAccounts[$key1]['TERM'] = intval($tenor->days / 30) . ' BLN'; + $DataAccounts[$key1]['TERM'] = $tenorFix . ' BLN'; } }else{ @@ -410,7 +412,7 @@ class KonfirmasiBankController extends Controller } - //dd( $DataAccounts); + //dd( $dataAADepo); $Arrangement = $Account->getPinjaman($request['cusNo'], $dateCore)->get(); @@ -791,4 +793,4 @@ class KonfirmasiBankController extends Controller } -} \ No newline at end of file +}