From a8a0ed1bd90db360077bed3a9c7464afc8cd9337 Mon Sep 17 00:00:00 2001 From: KhatamNugraha Date: Wed, 8 May 2024 16:03:52 +0700 Subject: [PATCH] Perbaikan data anjak --- Entities/Account.php | 214 +-- Http/Controllers/KonfirmasiBankController.php | 1391 ++++++++--------- Resources/views/exportPdf.blade.php | 43 +- 3 files changed, 802 insertions(+), 846 deletions(-) diff --git a/Entities/Account.php b/Entities/Account.php index 1380986..2a82084 100644 --- a/Entities/Account.php +++ b/Entities/Account.php @@ -20,9 +20,6 @@ class Account extends Model protected $connection = 'db2'; protected $table = 'STG_DB.ACCOUNT'; protected $primaryKey = '@ID'; - - //public $incrementing = false; - protected $fillable = [ "'CUSTOMER_NO', 'MNEMONIC' @@ -31,33 +28,34 @@ class Account extends Model - public function arrangement() + public function arrangement() { return $this->belongsTo(Arrangement::class, 'LINKED_APPL_ID'); } - public function getSearchAccount($cif ,$arrAccount, $kodecabang, $startDate){ + public function getSearchAccount($cif, $arrAccount, $kodecabang, $startDate) + { $uppercaseKodeCabang = Str::upper($kodecabang); $data = []; - if($arrAccount == null){ + if($arrAccount == null) { $data = DB::connection("db2")->table("STG_DB.ACCOUNT AS AC") ->selectRaw('AC.CUSTOMER_NO, MAX(INACTIV_MARKER) as INACTIV_MARKER,AC.ACCOUNT_NUMBER,MAX(AC.BATCH_DATE) AS BATCH_DATE,MAX(AC.CURRENCY)AS CURRENCY, AC.SHORT_TITLE,MAX(AC.OPENING_DATE) AS OPENING_DATE, MAX(AC.WORKING_BALANCE) AS WORKING_BALANCE, MAX(AC.CATEGORY) AS CATEGORY,CT.SHORT_NAME,CP.COMPANY_NAME') ->join('STG_DB.CATEGORY AS CT', 'AC.CATEGORY', '=', 'CT.ID') ->join('STG_DB.COMPANY AS CP', 'AC.CO_CODE', '=', 'CP.ID') - ->where('CUSTOMER_NO',$cif) + ->where('CUSTOMER_NO', $cif) ->where('COMPANY_NAME', 'like', "%" .$uppercaseKodeCabang."%") - ->where('LIMIT_REF', NULL) - ->where('AC.BATCH_DATE',$startDate) - ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660','101']) - ->groupBy('CUSTOMER_NO','ACCOUNT_NUMBER','SHORT_TITLE','SHORT_NAME','COMPANY_NAME','LIMIT_REF') + ->where('LIMIT_REF', null) + ->where('AC.BATCH_DATE', $startDate) + ->whereIn(DB::raw("LEFT(CATEGORY, 3)"), ['100','600','660','101']) + ->groupBy('CUSTOMER_NO', 'ACCOUNT_NUMBER', 'SHORT_TITLE', 'SHORT_NAME', 'COMPANY_NAME', 'LIMIT_REF') ->limit(100); - }else{ + } else { $data = DB::connection("db2")->table("STG_DB.ACCOUNT") ->select('*') - ->where('CUSTOMER_NO',$cif) + ->where('CUSTOMER_NO', $cif) ->where('COMPANY_NAME', 'like', "%" .$uppercaseKodeCabang."%") ->whereIn('ACCOUNT_NUMBER', $arrAccount) ->where('OPENING_DATE', $startDate); @@ -66,71 +64,72 @@ class Account extends Model return $data; } - public function getAccount($cif, $arrAccount, $startDate){ + public function getAccount($cif, $arrAccount, $startDate) + { //$uppercaseKodeCabang = Str::upper($kodecabang); - $data = DB::connection("db2")->table("STG_DB.ACCOUNT AS AC") - ->selectRaw('AC.CUSTOMER_NO,AC.CATEGORY, MAX(INACTIV_MARKER) as INACTIV_MARKER,AC.ACCOUNT_NUMBER,MAX(AC.BATCH_DATE) AS BATCH_DATE,MAX(AC.CURRENCY)AS CURRENCY, AC.SHORT_TITLE,MAX(AC.OPENING_DATE) AS OPENING_DATE, MAX(AC.WORKING_BALANCE) AS WORKING_BALANCE, MAX(AC.CATEGORY) AS CATEGORY,CT.SHORT_NAME,CP.COMPANY_NAME') - ->join('STG_DB.CATEGORY AS CT', 'AC.CATEGORY', '=', 'CT.ID') - ->join('STG_DB.COMPANY AS CP', 'AC.CO_CODE', '=', 'CP.ID') - ->where('CUSTOMER_NO',$cif) - // ->where('COMPANY_NAME', 'like', "%" .$uppercaseKodeCabang."%") - ->where('LIMIT_REF', NULL) - ->where('AC.BATCH_DATE',$startDate) - ->whereIn('AC.ACCOUNT_NUMBER', $arrAccount) - //->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660','101']) - ->groupBy('CUSTOMER_NO','ACCOUNT_NUMBER','SHORT_TITLE','SHORT_NAME','COMPANY_NAME','CATEGORY','LIMIT_REF') - ->orderBy('SHORT_NAME', 'ASC') - ->limit(100); - return $data; - } - - public function getCustomer($cus_no){ - $data = []; - $data =DB::connection("db2")->table("STG_DB.CUSTOMER")->select('CUSTOMER_NO','STREET','RESIDENCE','ADDRESS','SHORT_NAME')->where('CUSTOMER_NO', $cus_no); + $data = DB::connection("db2")->table("STG_DB.ACCOUNT AS AC") + ->selectRaw('AC.CUSTOMER_NO,AC.CATEGORY, MAX(INACTIV_MARKER) as INACTIV_MARKER,AC.ACCOUNT_NUMBER,MAX(AC.BATCH_DATE) AS BATCH_DATE,MAX(AC.CURRENCY)AS CURRENCY, AC.SHORT_TITLE,MAX(AC.OPENING_DATE) AS OPENING_DATE, MAX(AC.WORKING_BALANCE) AS WORKING_BALANCE, MAX(AC.CATEGORY) AS CATEGORY,CT.SHORT_NAME,CP.COMPANY_NAME') + ->join('STG_DB.CATEGORY AS CT', 'AC.CATEGORY', '=', 'CT.ID') + ->join('STG_DB.COMPANY AS CP', 'AC.CO_CODE', '=', 'CP.ID') + ->where('CUSTOMER_NO', $cif) + ->where('LIMIT_REF', null) + ->where('AC.BATCH_DATE', $startDate) + ->whereIn('AC.ACCOUNT_NUMBER', $arrAccount) + ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660','101']) + ->groupBy('CUSTOMER_NO', 'ACCOUNT_NUMBER', 'SHORT_TITLE', 'SHORT_NAME', 'COMPANY_NAME', 'CATEGORY', 'LIMIT_REF') + ->orderBy('SHORT_NAME', 'ASC') + ->limit(100); return $data; } - public function getAAaccount($cust, $acc){ + public function getCustomer($cus_no) + { $data = []; - $data = DB::connection("db2")->table("STG_DB.VW_AA_ACCOUNT")->select('ARRANGEMENT_ID','MATURITY_DATE','PRODUCT','TERM','RENEWAL_DATE','START_DATE','FIXED_RATE') - // ->where('CUSTOMER', $cif) + $data = DB::connection("db2")->table("STG_DB.CUSTOMER")->select('CUSTOMER_NO', 'STREET', 'RESIDENCE', 'ADDRESS', 'SHORT_NAME')->where('CUSTOMER_NO', $cus_no); + return $data; + } + + public function getAAaccount($cust, $acc) + { + $data = []; + $data = DB::connection("db2")->table("STG_DB.VW_AA_ACCOUNT")->select('ARRANGEMENT_ID', 'MATURITY_DATE', 'PRODUCT', 'TERM', 'RENEWAL_DATE', 'START_DATE', 'FIXED_RATE') ->where('CUSTOMER', $cust) ->where('LINKED_APPL_ID', $acc) ->limit(1); - return $data; + return $data; } - public function getAA($cust, $acc, $dataCore){ + public function getAA($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', $cif) + ->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('ARR_STATUS', '<>', 'CLOSE') ->where('PRODUCT_LINE', 'like', "%" .'DEPOSITS' ."%") - // ->whereIn(DB::raw("LINKED_APPL_ID"),$acc) ->where('LINKED_APPL_ID', $acc) - ->where('BATCH_DATE', $dataCore) - ->groupBy('LINKED_APPL_ID','CUSTOMER','RENEWAL_DATE','START_DATE','FIXED_RATE','BATCH_DATE','PRODUCT_LINE','ARR_STATUS') + ->whereYear('BATCH_DATE', $Year) + ->groupBy('LINKED_APPL_ID', 'CUSTOMER', 'RENEWAL_DATE', 'START_DATE', 'FIXED_RATE', 'BATCH_DATE', 'PRODUCT_LINE', 'ARR_STATUS') + ->orderBy('BATCH_DATE', 'DESC') ->limit(100); - return $data; + return $data; } - public function getPinjaman($cus_no, $dateCore){ + public function getPinjaman($cus_no, $dateCore) + { $data = []; $data = DB::connection("db2")->table("STG_DB.VW_AA_ARR") - ->select('LINKED_APPL_ID','ARRANGEMENT_ID','CUSTOMER','BATCH_DATE','START_DATE','PRODUCT_LINE','PRODUCT','ARR_STATUS','CURRENCY','TERM','MATURITY_DATE','RENEWAL_DATE','FIXED_RATE') - // ->join('STG_DB.ACCOUNT AS AC', 'AA.LINKED_APPL_ID', '=', 'AC.ACCOUNT_NUMBER') - ->where('CUSTOMER',$cus_no) - // ->whereIn(DB::raw("LINKED_APPL_ID"),$arr) - ->where('ARR_STATUS' , 'CURRENT') - // ->orderBy('TERM','DESC'); + ->select('LINKED_APPL_ID', 'ARRANGEMENT_ID', 'CUSTOMER', 'BATCH_DATE', 'START_DATE', 'PRODUCT_LINE', 'PRODUCT', 'ARR_STATUS', 'CURRENCY', 'TERM', 'MATURITY_DATE', 'RENEWAL_DATE', 'FIXED_RATE') + ->where('CUSTOMER', $cus_no) + ->where('ARR_STATUS', 'CURRENT') ->where('BATCH_DATE', $dateCore) - ->where('ARR_STATUS','<>', 'CLOSE') + ->where('ARR_STATUS', '<>', 'CLOSE') ->where('PRODUCT_LINE', 'like', "%" .'LENDING' ."%") - // ->groupBy('ARRANGEMENT_ID','ACCOUNT_NUMBER','SHORT_TITLE','SHORT_NAME','COMPANY_NAME') ->limit(100); return $data; @@ -138,149 +137,150 @@ class Account extends Model } - public function getFixedRate($arrangementId, $startDate){ + public function getFixedRate($arrangementId, $startDate) + { $data = []; $data = DB::connection("db2")->table("STG_DB.AA_ARR_INTEREST") ->select('FIXED_RATE') ->where('BATCH_DATE', $startDate) - ->where(DB::raw("LEFT(ID, 12)"),$arrangementId) - ->orderBy('ID','DESC'); + ->where(DB::raw("LEFT(ID, 12)"), $arrangementId) + ->orderBy('ID', 'DESC'); return $data; } - public function getMaturityDate($arrangementId,$startDate){ + public function getMaturityDate($arrangementId, $startDate) + { $data = []; $data = DB::connection("db2")->table("STG_DB.AA_ACCOUNT_DETAILS") - ->select('MATURITY_DATE','RENEWAL_DATE','START_DATE') - ->where('ID' ,$arrangementId) - ->where('BATCH_DATE' ,$startDate) + ->select('MATURITY_DATE', 'RENEWAL_DATE', 'START_DATE') + ->where('ID', $arrangementId) + ->where('BATCH_DATE', $startDate) ->limit(1) - ->orderBy('MATURITY_DATE','DESC'); + ->orderBy('MATURITY_DATE', 'DESC'); return $data; } - public function getTermAmount($arrangementId){ + public function getTermAmount($arrangementId) + { $data = []; $data = DB::connection("db2")->table("STG_DB.AA_ARR_TERM_AMOUNT") ->select('*') - ->where(DB::raw("LEFT(ID, 12)"),$arrangementId) - //->orderBy('TERM','DESC') + ->where(DB::raw("LEFT(ID, 12)"), $arrangementId) ->limit(100); return $data; } - public function getSingleAccount($acNo, $date){ + public function getSingleAccount($acNo, $date) + { $data = []; $data = DB::connection("db2")->table("STG_DB.ACCOUNT") - ->select('WORKING_BALANCE','LIMIT_REF') - ->where('ACCOUNT_NUMBER',$acNo) - ->where('BATCH_DATE',$date) + ->select('WORKING_BALANCE', 'LIMIT_REF') + ->where('ACCOUNT_NUMBER', $acNo) + ->where('BATCH_DATE', $date) ->limit(1) - ->orderBy('ACCOUNT_NUMBER','DESC'); + ->orderBy('ACCOUNT_NUMBER', 'DESC'); return $data; } - public function getLimitCheck($acNo, $date){ + public function getLimitCheck($acNo, $date) + { $data = []; $data = DB::connection("db2")->table("STG_DB.LIMIT") - ->select('ACCOUNT','EXPIRY_DATE','AVAIL_AMT') + ->select('ACCOUNT', 'EXPIRY_DATE', 'AVAIL_AMT') ->where('ACCOUNT', 'like', "%" .$acNo."%") - ->where('BATCH_DATE',$date) + ->where('BATCH_DATE', $date) ->limit(1) - ->orderBy('ACCOUNT','DESC'); + ->orderBy('ACCOUNT', 'DESC'); return $data; } - public function getRateRk($acNo, $date){ + public function getRateRk($acNo, $date) + { $data = []; $data = DB::connection("db2")->table("STG_DB.ACCOUNT_DEBIT_INT") ->select('DR_INT_RATE') - ->where(DB::raw("LEFT(ID, 10)"),$acNo ) - // ->where('ID', 'like', "%" .$acNo."%") - ->where('BATCH_DATE',$date) + ->where(DB::raw("LEFT(ID, 10)"), $acNo) + ->where('BATCH_DATE', $date) ->limit(1) - ->orderBy('INSERT_DATE','DESC'); + ->orderBy('INSERT_DATE', 'DESC'); return $data; } - public function getCategory($category){ + public function getCategory($category) + { $data = []; $data = DB::connection("db2")->table("STG_DB.CATEGORY") ->select('SHORT_NAME') - ->where('ID',$category); - // ->orderBy('TERM','DESC'); + ->where('ID', $category); return $data; } - public function getCompany($co_code){ + public function getCompany($co_code) + { $data = []; $data = DB::connection("db2")->table("STG_DB.COMPANY") ->select('COMPANY_NAME') - ->where('ID',$co_code); - // ->orderBy('TERM','DESC'); + ->where('ID', $co_code); return $data; } - public function getAccountRK($cusNo,$date){ + public function getAccountRK($cusNo, $date) + { $data = []; $data = DB::connection("db2")->table("STG_DB.ACCOUNT AS AC") - ->select('AC.ACCOUNT_NUMBER','AC.CUSTOMER_NO','CT.SHORT_NAME','AC.WORKING_BALANCE','AC.CURRENCY','AC.SHORT_TITLE','AC.OPENING_DATE','AC.BATCH_DATE','AC.CATEGORY','LT.EXPIRY_DATE','LT.AVAIL_AMT') + ->select('AC.ACCOUNT_NUMBER', 'AC.CUSTOMER_NO', 'CT.SHORT_NAME', 'AC.WORKING_BALANCE', 'AC.CURRENCY', 'AC.SHORT_TITLE', 'AC.OPENING_DATE', 'AC.BATCH_DATE', 'AC.CATEGORY', 'LT.EXPIRY_DATE', 'LT.AVAIL_AMT') ->join('STG_DB.LIMIT AS LT', 'AC.ACCOUNT_NUMBER', '=', 'LT.ACCOUNT') ->join('STG_DB.CATEGORY AS CT', 'AC.CATEGORY', '=', 'CT.ID') - ->where('AC.CUSTOMER_NO',$cusNo) - ->where('AC.BATCH_DATE',$date) - ->where('AC.LIMIT_REF', '<>' , 'NULL' ) - ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660','101']) + ->where('AC.CUSTOMER_NO', $cusNo) + ->where('AC.BATCH_DATE', $date) + ->where('AC.LIMIT_REF', '<>', 'NULL') + ->whereIn(DB::raw("LEFT(CATEGORY, 3)"), ['100','600','660','101']) ->limit(100); return $data; } - public function getAccountAnjak($AccNo,$date){ + public function getAccountAnjak($AccNo, $date) + { $timestamp = strtotime($date); // Format the timestamp into a date format $Year = date("Y", $timestamp); $data = []; $data = DB::connection("db2")->table("MIS.COLLECTION") ->selectRaw('LOAN_NUMBER,ACCOUNT_NUMBER,MATURITY_DATE,START_DATE,MAX(TANGGAL_DATA) AS TANGGAL_DATA,MAX(OUTSTANDING) AS OUTSTANDING,LOAN_CCY,PRODUCT_LOAN,PRINCIPLE_AMOUNT,CURRENT_INTEREST_RATE,TENOR,MAX(BRANCH) AS BRANCH,PAYIN_ACCOUNT,FACILITY_TYPE') - ->whereYear('TANGGAL_DATA',$Year) - // ->whereIn('PAYIN_ACCOUNT',$AccNo) - ->whereIn(DB::raw("PAYIN_ACCOUNT"),$AccNo) - //->whereIn(DB::raw("ACCOUNT_NUMBER"),$AccNo) - ->where('LOAN_STATUS','CURRENT') - ->groupBy('LOAN_NUMBER','ACCOUNT_NUMBER','MATURITY_DATE','START_DATE','LOAN_CCY','PRODUCT_LOAN','PRINCIPLE_AMOUNT','CURRENT_INTEREST_RATE','TENOR','PAYIN_ACCOUNT','FACILITY_TYPE') - + ->whereYear('TANGGAL_DATA', $Year) + ->whereIn(DB::raw("PAYIN_ACCOUNT"), $AccNo) + ->where('LOAN_STATUS', 'CURRENT') + ->groupBy('LOAN_NUMBER', 'ACCOUNT_NUMBER', 'MATURITY_DATE', 'START_DATE', 'LOAN_CCY', 'PRODUCT_LOAN', 'PRINCIPLE_AMOUNT', 'CURRENT_INTEREST_RATE', 'TENOR', 'PAYIN_ACCOUNT', 'FACILITY_TYPE') ->limit(100); return $data; } - public function getLimit($cus_id,$periode){ + public function getLimit($cus_id, $periode) + { $timestamp = strtotime($periode); // Format the timestamp into a date format $Year = date("Y", $timestamp); - // dd($periode); $data = []; - $data =DB::connection("db2")->table("STG_DB.LIMIT AS LM") + $data = DB::connection("db2")->table("STG_DB.LIMIT AS LM") ->select('*') ->join('STG_DB.LIMIT_REFERENCE AS LR', 'LM.LIMIT_PRODUCT', '=', 'LR.ID') ->join('STG_DB.COMPANY AS CP', 'LM.CO_CODE', '=', 'CP.ID') ->join('STG_DB.CATEGORY AS CT', 'LM.LIMIT_PRODUCT', '=', 'CT.ID') - ->select('LM.ACCOUNT','LM.LIMIT_CURRENCY','LM.APPROVAL_DATE','LM.EXPIRY_DATE','LM.AVAIL_AMT','LM.BATCH_DATE','LM.EXPIRY_DATE','LR.SHORT_NAME','LR.LIMIT_PERCENTAGE','CP.COMPANY_NAME','CT.SHORT_NAME AS ACCOUNT_TYPE') - ->where(DB::raw("LEFT(LM.@ID, 10)"),$cus_id) + ->select('LM.ACCOUNT', 'LM.LIMIT_CURRENCY', 'LM.APPROVAL_DATE', 'LM.EXPIRY_DATE', 'LM.AVAIL_AMT', 'LM.BATCH_DATE', 'LM.EXPIRY_DATE', 'LR.SHORT_NAME', 'LR.LIMIT_PERCENTAGE', 'CP.COMPANY_NAME', 'CT.SHORT_NAME AS ACCOUNT_TYPE') + ->where(DB::raw("LEFT(LM.@ID, 10)"), $cus_id) ->whereYear('LM.BATCH_DATE', $Year) ->limit(100); - //->where('BATCH_DATE', $periode); - // ->orderBy('LM.@ID','DESC')->get(); return $data; - } + } diff --git a/Http/Controllers/KonfirmasiBankController.php b/Http/Controllers/KonfirmasiBankController.php index 7f17504..c81328b 100644 --- a/Http/Controllers/KonfirmasiBankController.php +++ b/Http/Controllers/KonfirmasiBankController.php @@ -1,665 +1,626 @@ middleware(function ($request, $next) { + $this->user = Auth::guard('web')->user(); + return $next($request); + }); - public function __construct() - { - $this->middleware(function ($request, $next) { - $this->user = Auth::guard('web')->user(); - return $next($request); - }); + addVendor('chained-select'); - addVendor('chained-select'); + } + public function index(Request $request) + { + if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); } - public function index(Request $request) - { - - if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - } // dd($request); - $data = []; - $no_req_surat = ''; - // Contoh tanggal saat ini - $today = Carbon::now(); + $data = []; + $no_req_surat = ''; + // Contoh tanggal saat ini + $today = Carbon::now(); - // Menambahkan 1 tahun ke tanggal saat ini - $currentYear = $today->format("d-m-Y"); - //get month in roman - // Menambahkan 5 tahun ke tanggal saat ini - $pastYear = $today->subYear(3)->format('d-m-Y'); + // Menambahkan 1 tahun ke tanggal saat ini + $currentYear = $today->format("d-m-Y"); + //get month in roman + // Menambahkan 5 tahun ke tanggal saat ini + $pastYear = $today->subYear(3)->format('d-m-Y'); - $dateRoman = $this->numberToRoman($today->format('n')); - $signer = Signer::where('status',1)->get(); - $company = Company::all(); - $infoSurat = Letters::orderBy('created_at','desc')->first(); - - if($infoSurat){ - $no_req_surat = $infoSurat['no_req_surat']; - }else{ - $no_req_surat = '001/SUBDIT.OPS/'. $dateRoman.'/'.$currentYear; - } - - $data['currentYear'] = $currentYear; - $data['pastYear'] = $pastYear; - $data['signer'] = $signer; - $data['company'] = $company; - $data['no_req_surat'] = $no_req_surat; - - return view('konfirmasibank::pages.index',compact('data','request')); + $dateRoman = $this->numberToRoman($today->format('n')); + $signer = Signer::where('status', 1)->get(); + $company = Company::all(); + $infoSurat = Letters::orderBy('created_at', 'desc')->first(); + if($infoSurat) { + $no_req_surat = $infoSurat['no_req_surat']; + } else { + $no_req_surat = '001/SUBDIT.OPS/'. $dateRoman.'/'.$currentYear; } - public function create(){ - return view('konfirmasibank::pages.index',compact('data')); + $data['currentYear'] = $currentYear; + $data['pastYear'] = $pastYear; + $data['signer'] = $signer; + $data['company'] = $company; + $data['no_req_surat'] = $no_req_surat; + return view('konfirmasibank::pages.index', compact('data', 'request')); + + } + + public function create() + { + return view('konfirmasibank::pages.index', compact('data')); + + } + + + public function getData(Request $request) + { + + $data = []; + $Account = new Account(); + $arrAccount = []; + $startDate = Carbon::parse($request->startDate); + + $dateCore = $startDate->subDays(2)->format('m/d/Y'); + $Accounts = $Account->getSearchAccount($request->cif, $arrAccount, $request->kodecabang, $dateCore)->get(); + + foreach ($Accounts as $key => $value) { + $data[$key]['ACCOUNT_NUMBER'] = $value->ACCOUNT_NUMBER; + $data[$key]['COMPANY_NAME'] = $value->COMPANY_NAME; + $data[$key]['SHORT_NAME'] = $value->SHORT_NAME; + $data[$key]['CURRENCY'] = $value->CURRENCY; + $data[$key]['WORKING_BALANCE'] = number_format($value->WORKING_BALANCE, 2, ',', '.') ; } + return json_encode($data); + } - public function getData(Request $request) - { - $data = []; - $Account = new Account; - $arrAccount = []; - $startDate = Carbon::parse($request->startDate); - $dateCore = $startDate->subDays(2)->format('m/d/Y'); - $Accounts = $Account->getSearchAccount($request->cif,$arrAccount,$request->kodecabang, $dateCore)->get(); - foreach ($Accounts as $key => $value) { - $data[$key]['ACCOUNT_NUMBER'] = $value->ACCOUNT_NUMBER; - $data[$key]['COMPANY_NAME'] = $value->COMPANY_NAME; - $data[$key]['SHORT_NAME'] = $value->SHORT_NAME; - $data[$key]['CURRENCY'] = $value->CURRENCY; - $data[$key]['WORKING_BALANCE'] = number_format($value->WORKING_BALANCE, 2, ',', '.') ; - } + public function postInfoSurat(Request $request) + { + //Validate the request + $currentDate = Carbon::now(); + $tglSurat = $currentDate->format('Y-m-d'); - return json_encode($data ); + $letter = new Letters(); + $letter->no_cif = $request->cus_no; + $letter->no_surat = $request->no_surat; + $letter->tgl_surat = $tglSurat; + $letter->no_req_surat = $request->no_req_surat; + $letter->tgl_req_surat = $request->tgl_req_surat; + $letter->email = $request->email ; + $letter->tlp = $request->tlp ; + $letter->nama_tujuan = $request->nama_tujuan ; + $letter->alamat = $request->alamat ; + $letter->created_at = $currentDate; + $letter->status = 1; + $letter->save(); + + echo json_encode(['status' => 'success', 'message' => ' Info Surat created successfully.']); + + } + + + public function numberToRoman($num) + { + // Be sure to convert the given parameter into an integer + $n = intval($num); + $result = ''; + + // Declare a lookup array that we will use to traverse the number: + $lookup = array( + 'M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, + 'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, + 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1 + ); + + foreach ($lookup as $roman => $value) { + // Look for number of matches + $matches = intval($n / $value); + + // Concatenate characters + $result .= str_repeat($roman, $matches); + + // Substract that from the number + $n = $n % $value; } + return $result; + } - public function postInfoSurat(Request $request){ - // $noSurat = $this->generateNomorSurat(); - // $request->validate([ - // 'signer' => ['required'], - // 'no_req_surat' => ['required', 'max:100'], - // 'tgl_req_surat' => ['required'], - // 'email' => ['email'], - // 'tlp' => ['numeric', 'max:10'], - // 'nama_tujuan' => ['required'], - // 'alamat' => ['required'] - // ]); - - //Validate the request - //Validate the request - $currentDate = Carbon::now(); - $tglSurat = $currentDate->format('Y-m-d'); - - $letter = new Letters(); - $letter->no_cif = $request->cus_no; - $letter->no_surat = $request->no_surat; - $letter->tgl_surat = $tglSurat; - $letter->no_req_surat = $request->no_req_surat; - $letter->tgl_req_surat = $request->tgl_req_surat; - $letter->email = $request->email ; - $letter->tlp = $request->tlp ; - $letter->nama_tujuan = $request->nama_tujuan ; - $letter->alamat = $request->alamat ; - $letter->created_at = $currentDate; - $letter->status = 1; - $letter->save(); - - echo json_encode(['status' => 'success', 'message' => ' Info Surat created successfully.']); - + public function signer(Request $request) + { + if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); } - // private function generateNomorSurat(){ - // $latesNoSurat = ''; - // $latestRecord = letters::latest('no_surat')->select('no_surat')->first(); - // $tanggal = now(); - // $tahun = $tanggal->format('Y'); - // // Fungsi untuk mengonversi angka bulan menjadi romawi - // $bulanRomawi = $this->numberToRoman($tanggal->format('n')); + $data = []; + $signer = Signer::where('status', 1)->paginate(10); + $data['signer'] = $signer; - // if($latestRecord){ - // $squence = substr($latestRecord['no_surat'], 0, 3); - // $latesNoSurat = str_pad(intval($squence), 3, '0', STR_PAD_LEFT); - // $NoUrut = str_pad(intval($latesNoSurat + 1), 3, '0', STR_PAD_LEFT); - // $noSurat = " $NoUrut/SUBDIT.OPS/$bulanRomawi/$tahun"; - // return $noSurat; - // }else { - // $noSurat = "001/SUBDIT.OPS/$bulanRomawi/$tahun"; - // return $noSurat; - // } + return view('konfirmasibank::pages.index_signer', compact('data')); - // } + } - function numberToRoman($num) - { - // Be sure to convert the given parameter into an integer - $n = intval($num); - $result = ''; - // Declare a lookup array that we will use to traverse the number: - $lookup = array( - 'M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, - 'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, - 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1 - ); + public function convertToRupiah($amount) + { + $formattedAmount = number_format($amount, 0, ',', '.'); + return $formattedAmount; + } - foreach ($lookup as $roman => $value) - { - // Look for number of matches - $matches = intval($n / $value); - - // Concatenate characters - $result .= str_repeat($roman, $matches); - - // Substract that from the number - $n = $n % $value; - } - - return $result; + public function postSigner(Request $request) + { + if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { + abort(403, 'Maaf!! Anda tidak memiliki otorisasi untuk membuat konfirmasi bank.'); } + $messages = [ + 'deputy_director.required' => 'Nama Deputy Director wajib diisi.', + 'deputy_director.string' => 'Nama Deputy Director harus berupa teks.', + 'deputy_director.unique' => 'Nama Deputy Director sudah terdaftar.', + 'deputy_director.regex' => 'Nama Deputy Director tidak boleh mengandung angka.', + 'executive_officer.required' => 'Nama Executive Officer wajib diisi.', + 'executive_officer.string' => 'Nama Executive Officer harus berupa teks.', + 'executive_officer.unique' => 'Nama Executive Officer sudah terdaftar.', + 'executive_officer.regex' => 'Nama Executive Officer tidak boleh mengandung angka.', + 'signer_type.required' => 'Tipe penandatangan wajib diisi.', + 'signer_type.string' => 'Tipe penandatangan harus berupa teks.', + ]; - - public function signer(Request $request){ - if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - } - - $data = []; - // $signer = Signer::paginate(10); - $signer = Signer::where('status',1)->paginate(10); - $data['signer'] = $signer; - // dd( $data['signer']); - - return view('konfirmasibank::pages.index_signer',compact('data')); - - } - - - public function convertToRupiah($amount) - { - $formattedAmount = number_format($amount, 0, ',', '.'); - return $formattedAmount; - } - - public function postSigner(Request $request) - { - if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { - abort(403, 'Maaf!! Anda tidak memiliki otorisasi untuk membuat konfirmasi bank.'); - } - - $messages = [ - 'deputy_director.required' => 'Nama Deputy Director wajib diisi.', - 'deputy_director.string' => 'Nama Deputy Director harus berupa teks.', - 'deputy_director.unique' => 'Nama Deputy Director sudah terdaftar.', - 'deputy_director.regex' => 'Nama Deputy Director tidak boleh mengandung angka.', - 'executive_officer.required' => 'Nama Executive Officer wajib diisi.', - 'executive_officer.string' => 'Nama Executive Officer harus berupa teks.', - 'executive_officer.unique' => 'Nama Executive Officer sudah terdaftar.', - 'executive_officer.regex' => 'Nama Executive Officer tidak boleh mengandung angka.', - 'signer_type.required' => 'Tipe penandatangan wajib diisi.', - 'signer_type.string' => 'Tipe penandatangan harus berupa teks.', - ]; - - $request->validate([ - 'deputy_director' => [ - 'required', - 'string', - 'unique:signers,deputy_director_name', - 'regex:/^[a-zA-Z\s]*$/', - function($attribute, $value, $fail) use ($request) { - if ($value === $request->executive_officer) { - $fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.'); - } - }, + $request->validate([ + 'deputy_director' => [ + 'required', + 'string', + 'unique:signers,deputy_director_name', + 'regex:/^[a-zA-Z\s]*$/', + function ($attribute, $value, $fail) use ($request) { + if ($value === $request->executive_officer) { + $fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.'); + } + }, + ], + 'executive_officer' => [ + 'required', + 'string', + 'unique:signers,executive_officer_name', + 'regex:/^[a-zA-Z\s]*$/' ], - 'executive_officer' => [ - 'required', - 'string', - 'unique:signers,executive_officer_name', - 'regex:/^[a-zA-Z\s]*$/' - ], - 'signer_type' => 'required|string' - ], $messages); + 'signer_type' => 'required|string' + ], $messages); - try { - // Membuat instance baru dari Signer - $signer = new Signer(); - $signer->deputy_director_name = $request->deputy_director; - $signer->executive_officer_name = $request->executive_officer; - $signer->signer_type = $request->signer_type; - $signer->created_at = Carbon::now(); - $signer->status = 1; - $signer->save(); + try { + // Membuat instance baru dari Signer + $signer = new Signer(); + $signer->deputy_director_name = $request->deputy_director; + $signer->executive_officer_name = $request->executive_officer; + $signer->signer_type = $request->signer_type; + $signer->created_at = Carbon::now(); + $signer->status = 1; + $signer->save(); - return response()->json(['status' => 'success', 'message' => 'Penandatangan berhasil ditambahkan.']); - } catch (Exception $e) { - return response()->json([ - 'status' => 'error', - 'message' => $e->getMessage() - ]); - } + return response()->json(['status' => 'success', 'message' => 'Penandatangan berhasil ditambahkan.']); + } catch (Exception $e) { + return response()->json([ + 'status' => 'error', + 'message' => $e->getMessage() + ]); } + } - /** + /** * Show the form for editing the specified resource. * * @param int $id * * @return Response */ - public function editSigner(Request $request) - { + public function editSigner(Request $request) + { - if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { - abort(403, 'Sorry !! You are Unauthorized to edit any role !'); - } - - $signer = Signer::find($request->id); - - return json_encode( $signer); - } - - - public function updateSigner(Request $request) - { - - if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { - abort(403, 'Maaf!! Anda tidak memiliki otorisasi untuk mengupdate konfirmasi bank.'); - } - - $signer = Signer::findOrFail($request->id); - - $messages = [ - 'deputy_director.required' => 'Nama Deputy Director wajib diisi.', - 'deputy_director.string' => 'Nama Deputy Director harus berupa teks.', - 'deputy_director.unique' => 'Nama Deputy Director sudah terdaftar.', - 'deputy_director.regex' => 'Nama Deputy Director tidak boleh mengandung angka.', - 'executive_officer.required' => 'Nama Executive Officer wajib diisi.', - 'executive_officer.string' => 'Nama Executive Officer harus berupa teks.', - 'executive_officer.unique' => 'Nama Executive Officer sudah terdaftar.', - 'executive_officer.regex' => 'Nama Executive Officer tidak boleh mengandung angka.', - 'signer_type.required' => 'Tipe penandatangan wajib diisi.', - 'signer_type.string' => 'Tipe penandatangan harus berupa teks.', - ]; - - $request->validate([ - 'deputy_director' => [ - 'required', - 'string', - // Rule::unique('signers', 'deputy_director_name')->ignore($signer->id), - 'regex:/^[a-zA-Z\s]*$/', - function($attribute, $value, $fail) use ($request) { - if ($value === $request->executive_officer) { - $fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.'); - } - }, - ], - 'executive_officer' => [ - 'required', - 'string', - // Rule::unique('signers', 'executive_officer_name')->ignore($signer->id), - 'regex:/^[a-zA-Z\s]*$/' - ], - 'signer_type' => 'required|string' - ], $messages); - - try { - $signer->deputy_director_name = $request->deputy_director; - $signer->executive_officer_name = $request->executive_officer; - $signer->signer_type = $request->signer_type; - $signer->updated_at = Carbon::now(); - $signer->save(); - - return response()->json(['status' => 'success', 'message' => 'Penandatangan berhasil diperbarui.']); - } catch (Exception $e) { - return response()->json([ - 'status' => 'error', - 'message' => $e->getMessage() - ]); - } + if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { + abort(403, 'Sorry !! You are Unauthorized to edit any role !'); } - public function export(Request $request){ - $arrAccount = explode("," , $request['accNo']); - $startDate = Carbon::parse($request['startDate2']); - $dateCore = $startDate->subDays(2); - $Account = new Account; - $data = []; - $DataAccounts = []; - $DataPinjaman = []; - $DataFasilitas = []; - $DataRK = []; - $rekEscrow = []; - $DataAnjak = []; - // dd($listAccount); - $GetCustomer = $Account->getCustomer($request['cusNo'])->first(); - //dd($GetCustomer ); - $listAccount = $Account->getAccount($request['cusNo'], $arrAccount, $dateCore )->get(); - //dd( $listAccount); + $signer = Signer::find($request->id); - foreach ($listAccount as $key1 => $account) { - $dataAADepo = $Account->getAA($request['cusNo'],$account->ACCOUNT_NUMBER, $dateCore)->first(); + return json_encode($signer); + } - // $AccountAnjak = $Account->getAccountAnjak($request['cusNo'], $dateCore )->first(); + public function updateSigner(Request $request) + { - 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); - $tenor = date_diff( $tanggal_1, $tanggal_2 ); - $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]['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]['ARRANGEMENT_ID'] = ''; - $DataAccounts[$key1]['FIXED_RATE'] = $dataAADepo->FIXED_RATE . ' %'; - $DataAccounts[$key1]['TERM'] = intval($tenor->days/30) . ' BLN'; - } + if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { + abort(403, 'Maaf!! Anda tidak memiliki otorisasi untuk mengupdate konfirmasi bank.'); + } - }else{ - $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]['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'] = '' ; - $DataAccounts[$key1]['ARRANGEMENT_ID'] = ''; - $DataAccounts[$key1]['FIXED_RATE'] = ''; - $DataAccounts[$key1]['TERM'] = ''; - } + $signer = Signer::findOrFail($request->id); - //get data anjak - - if ($account->CATEGORY == '1019') { - array_push($rekEscrow, $account->ACCOUNT_NUMBER); - - } - - - } - - - - $Arrangement = $Account->getPinjaman($request['cusNo'], $dateCore)->get(); - - foreach ($Arrangement as $key2 => $pinjaman) { - $limtiCheck = $Account->getLimitCheck($pinjaman->LINKED_APPL_ID,$startDate)->first(); - $DataPinjaman[$key2]['ARRANGEMENT_ID'] = $pinjaman->ARRANGEMENT_ID; - $DataPinjaman[$key2]['START_DATE'] = $pinjaman->START_DATE; - $DataPinjaman[$key2]['CURRENCY'] = $pinjaman->CURRENCY; - $DataPinjaman[$key2]['PRODUCT'] = $pinjaman->PRODUCT; - $DataPinjaman[$key2]['WORKING_BALANCE'] = number_format($limtiCheck->AVAIL_AMT, 2, ',', '.') ?? ''; - $DataPinjaman[$key2]['TERM'] = $this->convertDateToMonth($pinjaman->TERM) ?? ''; - $DataPinjaman[$key2]['FIXED_RATE'] = $pinjaman->FIXED_RATE ?? ''; - $DataPinjaman[$key2]['MATURITY_DATE'] = date('d-m-Y', strtotime($pinjaman->MATURITY_DATE)) ?? ''; - $DataPinjaman[$key2]['ACCOUNT_NUMBER'] = $pinjaman->LINKED_APPL_ID; - - - } - - $listAccountRK = $Account->getAccountRK($request['cusNo'], $dateCore )->get(); - - - foreach ($listAccountRK as $rk => $valRk) { - if ( $valRk->CATEGORY == '1003') { - $rateRK = ""; - $rateDebitRk = $Account->getRateRk($valRk->ACCOUNT_NUMBER, $dateCore )->first(); - if( $rateDebitRk->DR_INT_RATE == "0"){ - $rateRK = $rateDebitRk->DR_INT_RATE; - }else{ - $rateRK = substr($rateDebitRk->DR_INT_RATE, 0, -2); ; - } - - $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'] = 'PRK KOMERSIL'; - $DataRK[$rk]['CURRENCY'] = $valRk->CURRENCY; - $DataRK[$rk]['PRODUCT'] = $valRk->SHORT_TITLE; - $DataRK[$rk]['WORKING_BALANCE'] = $valRk->AVAIL_AMT != null ? number_format($valRk->AVAIL_AMT, 2, ',', '.') : 'NIHIL'; - $DataRK[$rk]['MATURITY_DATE'] = date('d-m-Y', strtotime($valRk->EXPIRY_DATE)) ?? ''; ; - $DataRK[$rk]['ARRANGEMENT_ID'] = ''; - $DataRK[$rk]['FIXED_RATE'] = $rateRK; - $DataRK[$rk]['TERM'] = '12'; + $messages = [ + 'deputy_director.required' => 'Nama Deputy Director wajib diisi.', + 'deputy_director.string' => 'Nama Deputy Director harus berupa teks.', + 'deputy_director.unique' => 'Nama Deputy Director sudah terdaftar.', + 'deputy_director.regex' => 'Nama Deputy Director tidak boleh mengandung angka.', + 'executive_officer.required' => 'Nama Executive Officer wajib diisi.', + 'executive_officer.string' => 'Nama Executive Officer harus berupa teks.', + 'executive_officer.unique' => 'Nama Executive Officer sudah terdaftar.', + 'executive_officer.regex' => 'Nama Executive Officer tidak boleh mengandung angka.', + 'signer_type.required' => 'Tipe penandatangan wajib diisi.', + 'signer_type.string' => 'Tipe penandatangan harus berupa teks.', + ]; + $request->validate([ + 'deputy_director' => [ + 'required', + 'string', + 'regex:/^[a-zA-Z\s]*$/', + function ($attribute, $value, $fail) use ($request) { + if ($value === $request->executive_officer) { + $fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.'); } + }, + ], + 'executive_officer' => [ + 'required', + 'string', + 'regex:/^[a-zA-Z\s]*$/' + ], + 'signer_type' => 'required|string' + ], $messages); - } + try { + $signer->deputy_director_name = $request->deputy_director; + $signer->executive_officer_name = $request->executive_officer; + $signer->signer_type = $request->signer_type; + $signer->updated_at = Carbon::now(); + $signer->save(); - - - $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; - $DataFasilitas[$key3]['mata_uang'] = $val3->mata_uang; - $DataFasilitas[$key3]['saldo'] = number_format(floatval($val3->saldo), 2, ',', '.'); - $DataFasilitas[$key3]['jangka_waktu'] = $this->convertDateToMonth( $val3->jangka_waktu) . ' BLN' ?? ''; - $DataFasilitas[$key3]['fixed_rate'] = $val3->fixed_rate ?? ''; - $DataFasilitas[$key3]['due_date'] = $val3->due_date ?? ''; - $DataFasilitas[$key3]['nomor_rekening'] = $val3->nomor_rekening; - } - - //Get DatA Anjak - $ListAnjak = $Account->getAccountAnjak($rekEscrow, $dateCore)->get(); - - foreach ($ListAnjak as $key4 => $val4) { - $DataAnjak[$key4]['PRODUCT_LOAN'] = $val4->PRODUCT_LOAN; - $DataAnjak[$key4]['LOAN_CCY'] = $val4->LOAN_CCY; - $DataAnjak[$key4]['CUSTOMER_NO'] = $val4->PAYIN_ACCOUNT; - $DataAnjak[$key4]['TENOR'] = $val4->TENOR; - // $DataAnjak[$key4]['OUTSTANDING'] = $val4->OUTSTANDING != null ? number_format($val4->OUTSTANDING, 2, ',', '.') : 'NIHIL'; - $DataAnjak[$key4]['OUTSTANDING'] = $val4->OUTSTANDING != null ? number_format(abs($val4->OUTSTANDING), 2, ',', '.') : 'NIHIL'; - $DataAnjak[$key4]['MATURITY_DATE'] = date('d-m-Y', strtotime($val4->MATURITY_DATE)) ?? ''; ; - $DataAnjak[$key4]['ACCOUNT_NUMBER'] = $val4->ACCOUNT_NUMBER; - $DataAnjak[$key4]['CURRENT_INTEREST_RATE'] = $val4->CURRENT_INTEREST_RATE; - $DataAnjak[$key4]['TERM'] = $val4->CURRENT_INTEREST_RATE; - } - - $ListLimits = $Account->getLimit($request['cusNo'],$request['startDate2'])->get(); - - // dd($fasilitas); - $signer = Signer::where('id', $request['signerId'])->where('status',1)->get(); - $batchDate = Carbon::parse($request['startDate2']); - $currentDate = Carbon::now(); - $tanggalIndonesia = strtoupper($batchDate->locale('id')->isoFormat('D MMMM YYYY')); // Mengubah seluruh string menjadi huruf besar - $today = strtoupper($currentDate->locale('id')->isoFormat('D MMMM YYYY')); - $letter = new Letters; - $infoSuratNew = $letter->where('no_cif',$request['cusNo'])->orderBy('id','DESC')->first(); - - $data['DataAccounts'] = $DataAccounts; - $data['DataPinjaman'] = $DataPinjaman; - $data['DataRK'] = $DataRK ; - $data['DataLimit'] = $ListLimits; - $data['DataFasilitas']= $DataFasilitas; - $data['DataSigner'] = $signer; - $data['DataCustomer'] = $GetCustomer ?? ''; - $data['localDate'] = $tanggalIndonesia; - $data['today'] = $today; - // $data['batchDate'] = $request['startDate2']; - $data['dataAADepo'] = $dataAADepo; - $data['infoSuratNew'] = $infoSuratNew; - $data['DataAnjak'] = $DataAnjak; - - - // dd($data); - - $pdf = PDF::loadview('konfirmasibank::exportPdf',['data'=>$data]); - // Set page script to disable header on the first page - // Set options for DOMPDF as needed - - $pdf->render(); - - $canvas = $pdf->get_canvas(); - $cpdf = $canvas->get_cpdf(); - - $font = $pdf->getFontMetrics()->get_font("helvetica"); - - $firstPageId = $cpdf->getFirstPageId(); - $objects = $cpdf->objects; - $pages = array_filter($objects, function($v) { - return $v['t'] == 'page'; - }); - - $number = 1; - $no = 0; - $noSurat = $infoSuratNew['no_surat'] ; - $countPage = count($pages); - foreach($pages as $pageId => $page) { - $nos = $page['info']['pageNum']; - $canvas->reopen_object($pageId + 1); - $canvas->text(300, 797, $nos . "/" . $countPage , $font, 10, array(0,0,0)); - $canvas->close_object(); - $number++; - - if(($pageId + 1) !== $firstPageId) { - $canvas->reopen_object($pageId + 1); - $canvas->text(350, 50, "Lanjutan Surat No : $noSurat", $font, 10, array(0,0,0)); - $canvas->close_object(); - $number++; - } - } - - $exportTime = Carbon::now(); - $filename = "Kobank_" . $request['cusNo'] .'_'.$exportTime->format('YmdHis'). '.PDF'; - - return $pdf->stream($filename); - - // return $pdf->stream(); - - } - - - public function convertDateToMonth($termVal){ - - $months = ''; - $getPeriode = substr($termVal, -1); // Mengambil satu karakter dari kanan - $trimmedStr = substr($termVal, 0, -1 * 1); - if ($getPeriode == 'Y') { - $months = intval($trimmedStr) * 12; - } else if ($getPeriode == 'D') { - $days = $trimmedStr; // Number of days to convert - $months = intval($trimmedStr / 30) ; // Get the whole number of months (assuming 30 days per month) - } else { - $months = $trimmedStr; - } - - return $months; - - } - - - public function fasilitas(Request $request){ - - if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - } - - $data = []; - $DataFasilitas = []; - - $fasilitas = Fasilitas::where('status',1)->where('nomor_cif',$request->query()['cus_no_fasilitas'])->paginate(10)->appends($request->query()['cus_no_fasilitas'],$request->query()['company_name'],$request->query()['startDateFasilitas'],$request->query()['endDateFasilitas']); - - $Category = Category::all(); - $Company = Company::all(); - $limitReference = LimitReference::all(); - - $data['queryParam'] = $request->query(); - $data['fasilitas'] = $fasilitas; - $data['limitReference'] = $limitReference; - $data['Category'] = $Category; - $data['Company'] = $Company; - - return view('konfirmasibank::pages.index_fasilitas',compact('data')); - - } - - - public function postFasilitas(Request $request){ - - if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any konfirmasibank.create !'); - } - - $validated = $request->validate([ - 'nomor_rekening' => 'required|string|max:10|unique:fasilitas,nomor_rekening', - 'jenis_fasilitas' => 'required|string', - 'cabang' => 'required|string', - 'mata_uang' => 'required|string', - 'jenis_rekening' => 'required|string', - 'saldo' => 'required|string', - 'start_date' => 'required|string', - 'due_date' => 'required|string', - 'fixed_rate' => 'required|string' + return response()->json(['status' => 'success', 'message' => 'Penandatangan berhasil diperbarui.']); + } catch (Exception $e) { + return response()->json([ + 'status' => 'error', + 'message' => $e->getMessage() ]); + } + } + + public function export(Request $request) + { + $arrAccount = explode(",", $request['accNo']); + $startDate = Carbon::parse($request['startDate2']); + $dateCore = $startDate->subDays(2); + $Account = new Account(); + $data = []; + $DataAccounts = []; + $DataPinjaman = []; + $DataFasilitas = []; + $DataRK = []; + $rekEscrow = []; + $DataAnjak = []; + $GetCustomer = $Account->getCustomer($request['cusNo'])->first(); + $listAccount = $Account->getAccount($request['cusNo'], $arrAccount, $dateCore)->get(); - $startDate = Carbon::parse($request->start_date); - $endDate = Carbon::parse($request->due_date); - $jangkaWaktu = $endDate->diffInDays($startDate); + foreach ($listAccount as $key1 => $account) { + if ($account->CATEGORY == '6603' || $account->CATEGORY == '6602') { - if ($validated) { - try { + $dataAADepo = $Account->getAA($request['cusNo'], $account->ACCOUNT_NUMBER, $dateCore)->first(); + if ($dataAADepo != null) { + + $tenor = ''; + $tanggal_1 = date_create($dataAADepo->RENEWAL_DATE); + $tanggal_2 = date_create($dataAADepo->START_DATE); + $tenor = date_diff($tanggal_1, $tanggal_2); + $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]['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]['ARRANGEMENT_ID'] = ''; + $DataAccounts[$key1]['FIXED_RATE'] = $dataAADepo->FIXED_RATE . ' %'; + $DataAccounts[$key1]['TERM'] = intval($tenor->days / 30) . ' BLN'; + } + + }else{ + $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]['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'] = '' ; + $DataAccounts[$key1]['ARRANGEMENT_ID'] = ''; + $DataAccounts[$key1]['FIXED_RATE'] = ''; + $DataAccounts[$key1]['TERM'] = ''; + } + //get data anjak + + if ($account->CATEGORY == '1019') { + array_push($rekEscrow, $account->ACCOUNT_NUMBER); + + } + + + } + + $Arrangement = $Account->getPinjaman($request['cusNo'], $dateCore)->get(); + + foreach ($Arrangement as $key2 => $pinjaman) { + $limtiCheck = $Account->getLimitCheck($pinjaman->LINKED_APPL_ID, $startDate)->first(); + $DataPinjaman[$key2]['ARRANGEMENT_ID'] = $pinjaman->ARRANGEMENT_ID; + $DataPinjaman[$key2]['START_DATE'] = $pinjaman->START_DATE; + $DataPinjaman[$key2]['CURRENCY'] = $pinjaman->CURRENCY; + $DataPinjaman[$key2]['PRODUCT'] = $pinjaman->PRODUCT; + $DataPinjaman[$key2]['WORKING_BALANCE'] = number_format($limtiCheck->AVAIL_AMT, 2, ',', '.') ?? ''; + $DataPinjaman[$key2]['TERM'] = $this->convertDateToMonth($pinjaman->TERM) ?? ''; + $DataPinjaman[$key2]['FIXED_RATE'] = $pinjaman->FIXED_RATE ?? ''; + $DataPinjaman[$key2]['MATURITY_DATE'] = date('d-m-Y', strtotime($pinjaman->MATURITY_DATE)) ?? ''; + $DataPinjaman[$key2]['ACCOUNT_NUMBER'] = $pinjaman->LINKED_APPL_ID; + + + } + + $listAccountRK = $Account->getAccountRK($request['cusNo'], $dateCore)->get(); + + foreach ($listAccountRK as $rk => $valRk) { + 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'] = 'PRK KOMERSIL'; + $DataRK[$rk]['CURRENCY'] = $valRk->CURRENCY; + $DataRK[$rk]['PRODUCT'] = $valRk->SHORT_TITLE; + $DataRK[$rk]['WORKING_BALANCE'] = $valRk->AVAIL_AMT != null ? number_format($valRk->AVAIL_AMT, 2, ',', '.') : 'NIHIL'; + $DataRK[$rk]['MATURITY_DATE'] = date('d-m-Y', strtotime($valRk->EXPIRY_DATE)) ?? ''; + $DataRK[$rk]['ARRANGEMENT_ID'] = ''; + $DataRK[$rk]['FIXED_RATE'] = $rateRK; + $DataRK[$rk]['TERM'] = '12'; + + } + + } + + + $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; + $DataFasilitas[$key3]['mata_uang'] = $val3->mata_uang; + $DataFasilitas[$key3]['saldo'] = number_format(floatval($val3->saldo), 2, ',', '.'); + $DataFasilitas[$key3]['jangka_waktu'] = $this->convertDateToMonth($val3->jangka_waktu) . ' BLN' ?? ''; + $DataFasilitas[$key3]['fixed_rate'] = $val3->fixed_rate ?? ''; + $DataFasilitas[$key3]['due_date'] = $val3->due_date ?? ''; + $DataFasilitas[$key3]['nomor_rekening'] = $val3->nomor_rekening; + } + + //Get DatA Anjak + $ListAnjak = $Account->getAccountAnjak($rekEscrow, $dateCore)->get(); + $totalOutstanding = $ListAnjak->sum('OUTSTANDING') != null ? number_format(abs($ListAnjak->sum('OUTSTANDING')), 2, ',', '.') : 'NIHIL'; + // dd($totalOutstanding); + + // foreach ($ListAnjak as $key4 => $val4) { + // $DataAnjak[$key4]['PRODUCT_LOAN'] = $val4->PRODUCT_LOAN; + // $DataAnjak[$key4]['LOAN_CCY'] = $val4->LOAN_CCY; + // $DataAnjak[$key4]['CUSTOMER_NO'] = $val4->PAYIN_ACCOUNT; + // $DataAnjak[$key4]['TENOR'] = $val4->TENOR; + // $DataAnjak[$key4]['OUTSTANDING'] = $val4->OUTSTANDING != null ? number_format(abs($val4->OUTSTANDING), 2, ',', '.') : 'NIHIL'; + // $DataAnjak[$key4]['MATURITY_DATE'] = date('d-m-Y', strtotime($val4->MATURITY_DATE)) ?? ''; + // ; + // $DataAnjak[$key4]['ACCOUNT_NUMBER'] = $val4->ACCOUNT_NUMBER; + // $DataAnjak[$key4]['CURRENT_INTEREST_RATE'] = $val4->CURRENT_INTEREST_RATE; + // $DataAnjak[$key4]['TERM'] = $val4->CURRENT_INTEREST_RATE; + // } + + $ListLimits = $Account->getLimit($request['cusNo'], $request['startDate2'])->get(); + $signer = Signer::where('id', $request['signerId'])->where('status', 1)->get(); + $batchDate = Carbon::parse($request['startDate2']); + $currentDate = Carbon::now(); + $tanggalIndonesia = strtoupper($batchDate->locale('id')->isoFormat('D MMMM YYYY')); // Mengubah seluruh string menjadi huruf besar + $today = strtoupper($currentDate->locale('id')->isoFormat('D MMMM YYYY')); + $letter = new Letters(); + $infoSuratNew = $letter->where('no_cif', $request['cusNo'])->orderBy('id', 'DESC')->first(); + + $data['DataAccounts'] = $DataAccounts; + $data['DataPinjaman'] = $DataPinjaman; + $data['DataRK'] = $DataRK ; + $data['DataLimit'] = $ListLimits; + $data['DataFasilitas'] = $DataFasilitas; + $data['DataSigner'] = $signer; + $data['DataCustomer'] = $GetCustomer ?? ''; + $data['localDate'] = $tanggalIndonesia; + $data['today'] = $today; + $data['dataAADepo'] = $dataAADepo; + $data['infoSuratNew'] = $infoSuratNew; + $data['totalOutstanding'] = $totalOutstanding; + + + $pdf = PDF::loadview('konfirmasibank::exportPdf', ['data' => $data]); + // Set page script to disable header on the first page + // Set options for DOMPDF as needed + + $pdf->render(); + + $canvas = $pdf->get_canvas(); + $cpdf = $canvas->get_cpdf(); + + $font = $pdf->getFontMetrics()->get_font("helvetica"); + + $firstPageId = $cpdf->getFirstPageId(); + $objects = $cpdf->objects; + $pages = array_filter($objects, function ($v) { + return $v['t'] == 'page'; + }); + + $number = 1; + $no = 0; + $noSurat = $infoSuratNew['no_surat'] ; + $countPage = count($pages); + foreach($pages as $pageId => $page) { + $nos = $page['info']['pageNum']; + $canvas->reopen_object($pageId + 1); + $canvas->text(300, 797, $nos . "/" . $countPage, $font, 10, array(0,0,0)); + $canvas->close_object(); + $number++; + + if(($pageId + 1) !== $firstPageId) { + $canvas->reopen_object($pageId + 1); + $canvas->text(350, 50, "Lanjutan Surat No : $noSurat", $font, 10, array(0,0,0)); + $canvas->close_object(); + $number++; + } + } + + $exportTime = Carbon::now(); + $filename = "Kobank_" . $request['cusNo'] .'_'.$exportTime->format('YmdHis'). '.PDF'; + + return $pdf->stream($filename); + + + } + + + public function convertDateToMonth($termVal) + { + + $months = ''; + $getPeriode = substr($termVal, -1); // Mengambil satu karakter dari kanan + $trimmedStr = substr($termVal, 0, -1 * 1); + if ($getPeriode == 'Y') { + $months = intval($trimmedStr) * 12; + } elseif ($getPeriode == 'D') { + $days = $trimmedStr; // Number of days to convert + $months = intval($trimmedStr / 30) ; // Get the whole number of months (assuming 30 days per month) + } else { + $months = $trimmedStr; + } + + return $months; + + } + + + public function fasilitas(Request $request) + { + + if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + $data = []; + $DataFasilitas = []; + + $fasilitas = Fasilitas::where('status', 1)->where('nomor_cif', $request->query()['cus_no_fasilitas'])->paginate(10)->appends($request->query()['cus_no_fasilitas'], $request->query()['company_name'], $request->query()['startDateFasilitas'], $request->query()['endDateFasilitas']); + + $Category = Category::all(); + $Company = Company::all(); + $limitReference = LimitReference::all(); + + $data['queryParam'] = $request->query(); + $data['fasilitas'] = $fasilitas; + $data['limitReference'] = $limitReference; + $data['Category'] = $Category; + $data['Company'] = $Company; + + return view('konfirmasibank::pages.index_fasilitas', compact('data')); + + } + + + public function postFasilitas(Request $request) + { + + if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any konfirmasibank.create !'); + } + + $validated = $request->validate([ + 'nomor_rekening' => 'required|string|max:10|unique:fasilitas,nomor_rekening', + 'jenis_fasilitas' => 'required|string', + 'cabang' => 'required|string', + 'mata_uang' => 'required|string', + 'jenis_rekening' => 'required|string', + 'saldo' => 'required|string', + 'start_date' => 'required|string', + 'due_date' => 'required|string', + 'fixed_rate' => 'required|string' + ]); + + + $startDate = Carbon::parse($request->start_date); + $endDate = Carbon::parse($request->due_date); + $jangkaWaktu = $endDate->diffInDays($startDate); + + if ($validated) { + try { // Create New User $fasilitas = new Fasilitas(); $fasilitas->nomor_cif = $request->nomor_cif; @@ -677,157 +638,149 @@ $fasilitas->save(); - echo json_encode(['status' => 'success', 'message' => 'Add fasilitas successfully.']); + echo json_encode(['status' => 'success', 'message' => 'Add fasilitas successfully.']); } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); - - // return json_encode([ - // 'status' => 'error', - // 'message' => $e->getMessage() - // ]); - } + echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); } + } - return false; + return false; - } + } - /** - * Show the form for editing the specified resource. - * - * @param int $id - * - * @return Response - */ - public function editFasilitas(Request $request) - { + /** + * Show the form for editing the specified resource. + * + * @param int $id + * + * @return Response + */ + public function editFasilitas(Request $request) + { - if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { - abort(403, 'Sorry !! You are Unauthorized to edit any role !'); - } + if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { + abort(403, 'Sorry !! You are Unauthorized to edit any role !'); + } - $fasilitas = Fasilitas::find($request->id); + $fasilitas = Fasilitas::find($request->id); - return json_encode( $fasilitas); - } + return json_encode($fasilitas); + } - /** - * Update the specified resource in storage. - * - * @param Request $request - * @param int $id - * - * @return Response - */ - public function updateFasilitas(Request $request) - { + /** + * Update the specified resource in storage. + * + * @param Request $request + * @param int $id + * + * @return Response + */ + public function updateFasilitas(Request $request) + { - if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { - abort(403, 'Sorry !! You are Unauthorized to edit any role !'); - } + if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { + abort(403, 'Sorry !! You are Unauthorized to edit any role !'); + } - $today = Carbon::now(); - // Menambahkan 1 tahun ke tanggal saat ini - // $currentYear = $today->format("YYYY-MM-DD"); + $today = Carbon::now(); - // Validation Data\ - $validator = Validator::make($request->all(), [ - 'nomor_rekening_edit' => 'required|string', - 'cabang_edit' => 'required|string', - 'jenis_fasilitas_edit' => 'required|string', - 'jenis_rekening_edit' => 'required|string', - 'mata_uang_edit' => 'required|string', - 'saldo_edit' => 'required|string', - 'start_date_edit' => 'required|string', - 'due_date_edit' => 'required|string', - 'fixed_rate_edit' => 'required|string' - // Other validation rules + // Validation Data\ + $validator = Validator::make($request->all(), [ + 'nomor_rekening_edit' => 'required|string', + 'cabang_edit' => 'required|string', + 'jenis_fasilitas_edit' => 'required|string', + 'jenis_rekening_edit' => 'required|string', + 'mata_uang_edit' => 'required|string', + 'saldo_edit' => 'required|string', + 'start_date_edit' => 'required|string', + 'due_date_edit' => 'required|string', + 'fixed_rate_edit' => 'required|string' + // Other validation rules ]); - if ($validator->fails()) { - return response()->json(['errors' => $validator->errors()], 422); // Return validation errors as JSON - } - - $startDate = Carbon::parse($request->start_date_edit); - $endDate = Carbon::parse($request->due_date_edit); - $jangkaWaktu = $endDate->diffInDays($startDate); - if ($validator) { - try { - $fasilitas = Fasilitas::findOrFail($request->id); - $fasilitas->nomor_rekening = $request->nomor_rekening_edit; - $fasilitas->cabang = $request->cabang_edit; - $fasilitas->jenis_fasilitas = $request->jenis_fasilitas_edit; - $fasilitas->jenis_rekening = $request->jenis_rekening_edit; - $fasilitas->mata_uang = $request->mata_uang_edit; - $fasilitas->saldo = $request->saldo_edit; - $fasilitas->start_date = $request->start_date_edit; - $fasilitas->due_date = $request->due_date_edit; - $fasilitas->jangka_waktu = $jangkaWaktu; - $fasilitas->fixed_rate = $request->fixed_rate_edit; - $fasilitas->keterangan = $request->keterangan_edit; - $fasilitas->updated_at = $today; - $fasilitas->save(); - - echo json_encode(['status' => 'success', 'message' => ' fasilitas updated successfully.']); - - } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => ' fasilitas updated failed.']); - } - - return; - - } - echo json_encode(['status' => 'error', 'message' => ' fasilitas updated failed.']); + if ($validator->fails()) { + return response()->json(['errors' => $validator->errors()], 422); // Return validation errors as JSON } - - /** - * Remove the specified resource from storage. - * - * @param int $id - * - * @return Renderable - */ - public function destroyFasilitas(Request $request) - { - if (is_null($this->user) || !$this->user->can('konfirmasibank.delete')) { - abort(403, 'Sorry !! You are Unauthorized to delete any konfirmasibank module !'); - } - - $fasilitas = Fasilitas::findOrFail($request->id); - + $startDate = Carbon::parse($request->start_date_edit); + $endDate = Carbon::parse($request->due_date_edit); + $jangkaWaktu = $endDate->diffInDays($startDate); + if ($validator) { try { - $fasilitas->status = 0; + $fasilitas = Fasilitas::findOrFail($request->id); + $fasilitas->nomor_rekening = $request->nomor_rekening_edit; + $fasilitas->cabang = $request->cabang_edit; + $fasilitas->jenis_fasilitas = $request->jenis_fasilitas_edit; + $fasilitas->jenis_rekening = $request->jenis_rekening_edit; + $fasilitas->mata_uang = $request->mata_uang_edit; + $fasilitas->saldo = $request->saldo_edit; + $fasilitas->start_date = $request->start_date_edit; + $fasilitas->due_date = $request->due_date_edit; + $fasilitas->jangka_waktu = $jangkaWaktu; + $fasilitas->fixed_rate = $request->fixed_rate_edit; + $fasilitas->keterangan = $request->keterangan_edit; + $fasilitas->updated_at = $today; $fasilitas->save(); - echo json_encode(['status' => 'success', 'message' => ' fasilitas deleted successfully.']); + + echo json_encode(['status' => 'success', 'message' => ' fasilitas updated successfully.']); + } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => ' fasilitas deleted failed.']); + echo json_encode(['status' => 'error', 'message' => ' fasilitas updated failed.']); } + + return; + + } + echo json_encode(['status' => 'error', 'message' => ' fasilitas updated failed.']); + } + + + /** + * Remove the specified resource from storage. + * + * @param int $id + * + * @return Renderable + */ + public function destroyFasilitas(Request $request) + { + if (is_null($this->user) || !$this->user->can('konfirmasibank.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any konfirmasibank module !'); } - public function destroySigner(Request $request) - { - if (is_null($this->user) || !$this->user->can('konfirmasibank.delete')) { - abort(403, 'Sorry !! You are Unauthorized to delete any konfirmasibank module !'); - } + $fasilitas = Fasilitas::findOrFail($request->id); + + try { + $fasilitas->status = 0; + $fasilitas->save(); + echo json_encode(['status' => 'success', 'message' => ' fasilitas deleted successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => ' fasilitas deleted failed.']); + } + } + + public function destroySigner(Request $request) + { + if (is_null($this->user) || !$this->user->can('konfirmasibank.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any konfirmasibank module !'); + } - $signer = Signer::findOrFail($request->id); - - - try { - $signer->status = 0; - $signer->save(); - echo json_encode(['status' => 'success', 'message' => ' Signer deleted successfully.']); - } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => ' Signer deleted failed.']); - } - - } + $signer = Signer::findOrFail($request->id); + try { + $signer->status = 0; + $signer->save(); + echo json_encode(['status' => 'success', 'message' => ' Signer deleted successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => ' Signer deleted failed.']); + } } + + +} \ No newline at end of file diff --git a/Resources/views/exportPdf.blade.php b/Resources/views/exportPdf.blade.php index 8991aa0..f1f2f44 100644 --- a/Resources/views/exportPdf.blade.php +++ b/Resources/views/exportPdf.blade.php @@ -50,6 +50,7 @@ border: 1px solid black; border-collapse: collapse; font-size: 12px; + padding: 1px; } @@ -60,10 +61,16 @@ bottom: 0; text-align: center; } + #footer .page:after { content: counter(page); } + + + + + /* .header { position: fixed; @@ -119,7 +126,7 @@
  • POSISI : {{ $data['localDate'] }}
  • - +
    @@ -178,12 +185,11 @@
    No

    - - +
    @@ -191,14 +197,14 @@ - + - - @if (count($data['DataPinjaman'])>0 OR count($data['DataRK'])>0 OR count($data['DataAnjak']) > 0 ) + + @if (count($data['DataPinjaman'])>0 OR count($data['DataRK'])>0 OR $data['totalOutstanding'] != '' ) @if (count($data['DataPinjaman'])>0) @php $i=1; $saldo = ''; @@ -243,7 +249,7 @@ @endforeach @endif - @if (count($data['DataAnjak']) > 0) + @if ($data['totalOutstanding'] != '') @php $no = 0; if (count( $data['DataPinjaman']) > 0) { @@ -254,20 +260,17 @@ $no = 1; } @endphp - - @foreach ($data['DataAnjak'] as $ajk => $anjak) - + - + - - - - - - + + + + + + - @endforeach @endif @else @@ -281,7 +284,7 @@
  • FASILITAS LAIN YANG DITERIMA OLEH NASABAH
  • POSISI : {{ $data['localDate'] }}
  • -
    NoTgl Realisasi Mata Uang SaldoTenorTenor Suku Bunga Tgl Jatuh Tempo Keterangan
    {{ $no++ }}{{ $anjak['PRODUCT_LOAN'] }}ANJAK PIUTANG {{ $anjak['LOAN_CCY'] }}{{$anjak['OUTSTANDING']}}{{$anjak['TENOR']}} BLN{{$anjak['CURRENT_INTEREST_RATE']}} %{{$anjak['MATURITY_DATE']}}{{ $anjak['ACCOUNT_NUMBER'] }}{{$data['totalOutstanding']}}
    +
    @@ -295,7 +298,7 @@ - + @if (count($data['DataFasilitas']) > 0 ) @php $no = 0;
    NoKeterangan