Perbaikan data anjak

This commit is contained in:
KhatamNugraha
2024-05-08 16:03:52 +07:00
parent 86dc2d4199
commit a8a0ed1bd9
3 changed files with 802 additions and 846 deletions

View File

@ -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'
@ -36,28 +33,29 @@ class Account extends Model
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)
->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')
->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){
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.CUSTOMER")->select('CUSTOMER_NO', 'STREET', 'RESIDENCE', 'ADDRESS', 'SHORT_NAME')->where('CUSTOMER_NO', $cus_no);
return $data;
}
public function getAAaccount($cust, $acc){
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', $cif)
$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;
}
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;
}
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,147 +137,148 @@ 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;
}

View File

@ -1,43 +1,42 @@
<?php
namespace Modules\Konfirmasibank\Http\Controllers;
namespace Modules\Konfirmasibank\Http\Controllers;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Modules\Konfirmasibank\DataTables\ViewAccountDataTable;
use Modules\Konfirmasibank\Entities\ViewAccount;
use Modules\Konfirmasibank\Entities\LimitReference;
use Modules\Konfirmasibank\Entities\Fasilitas;
use Modules\Konfirmasibank\Entities\Signer;
use Modules\Konfirmasibank\Entities\Letters;
use Modules\Konfirmasibank\Entities\Category;
use Modules\Konfirmasibank\Entities\Company;
use Modules\Konfirmasibank\Entities\Account;
use Modules\Konfirmasibank\Entities\Arrangement;
use Modules\Konfirmasibank\Entities\TermAmount;
//use Dompdf\Dompdf;
use PDF;
use Dompdf\Options;
use Carbon\Carbon;
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\Element\Table;
use PhpOffice\PhpWord\SimpleType\TblWidth;
use PhpOffice\PhpWord\Element\Section;
use Response;
use Exception;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use Modules\Konfirmasibank\Http\Requests\Fasilitas\StoreFasilitasRequest;
use Akaunting\Money\Currency;
use Akaunting\Money\Money;
use Illuminate\Validation\Rule;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Modules\Konfirmasibank\DataTables\ViewAccountDataTable;
use Modules\Konfirmasibank\Entities\ViewAccount;
use Modules\Konfirmasibank\Entities\LimitReference;
use Modules\Konfirmasibank\Entities\Fasilitas;
use Modules\Konfirmasibank\Entities\Signer;
use Modules\Konfirmasibank\Entities\Letters;
use Modules\Konfirmasibank\Entities\Category;
use Modules\Konfirmasibank\Entities\Company;
use Modules\Konfirmasibank\Entities\Account;
use Modules\Konfirmasibank\Entities\Arrangement;
use Modules\Konfirmasibank\Entities\TermAmount;
use PDF;
use Dompdf\Options;
use Carbon\Carbon;
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\Element\Table;
use PhpOffice\PhpWord\SimpleType\TblWidth;
use PhpOffice\PhpWord\Element\Section;
use Response;
use Exception;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use Modules\Konfirmasibank\Http\Requests\Fasilitas\StoreFasilitasRequest;
use Akaunting\Money\Currency;
use Akaunting\Money\Money;
use Illuminate\Validation\Rule;
class KonfirmasiBankController extends Controller
{
class KonfirmasiBankController extends Controller
{
public $user;
public function __construct()
@ -69,13 +68,13 @@
$pastYear = $today->subYear(3)->format('d-m-Y');
$dateRoman = $this->numberToRoman($today->format('n'));
$signer = Signer::where('status',1)->get();
$signer = Signer::where('status', 1)->get();
$company = Company::all();
$infoSurat = Letters::orderBy('created_at','desc')->first();
$infoSurat = Letters::orderBy('created_at', 'desc')->first();
if($infoSurat){
if($infoSurat) {
$no_req_surat = $infoSurat['no_req_surat'];
}else{
} else {
$no_req_surat = '001/SUBDIT.OPS/'. $dateRoman.'/'.$currentYear;
}
@ -85,12 +84,13 @@
$data['company'] = $company;
$data['no_req_surat'] = $no_req_surat;
return view('konfirmasibank::pages.index',compact('data','request'));
return view('konfirmasibank::pages.index', compact('data', 'request'));
}
public function create(){
return view('konfirmasibank::pages.index',compact('data'));
public function create()
{
return view('konfirmasibank::pages.index', compact('data'));
}
@ -99,12 +99,12 @@
{
$data = [];
$Account = new Account;
$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();
$Accounts = $Account->getSearchAccount($request->cif, $arrAccount, $request->kodecabang, $dateCore)->get();
foreach ($Accounts as $key => $value) {
$data[$key]['ACCOUNT_NUMBER'] = $value->ACCOUNT_NUMBER;
@ -114,25 +114,14 @@
$data[$key]['WORKING_BALANCE'] = number_format($value->WORKING_BALANCE, 2, ',', '.') ;
}
return json_encode($data );
return json_encode($data);
}
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
public function postInfoSurat(Request $request)
{
//Validate the request
$currentDate = Carbon::now();
$tglSurat = $currentDate->format('Y-m-d');
@ -155,28 +144,8 @@
}
// 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'));
// 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;
// }
// }
function numberToRoman($num)
public function numberToRoman($num)
{
// Be sure to convert the given parameter into an integer
$n = intval($num);
@ -189,8 +158,7 @@
'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1
);
foreach ($lookup as $roman => $value)
{
foreach ($lookup as $roman => $value) {
// Look for number of matches
$matches = intval($n / $value);
@ -206,18 +174,17 @@
public function signer(Request $request){
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);
$signer = Signer::where('status', 1)->paginate(10);
$data['signer'] = $signer;
// dd( $data['signer']);
return view('konfirmasibank::pages.index_signer',compact('data'));
return view('konfirmasibank::pages.index_signer', compact('data'));
}
@ -253,7 +220,7 @@
'string',
'unique:signers,deputy_director_name',
'regex:/^[a-zA-Z\s]*$/',
function($attribute, $value, $fail) use ($request) {
function ($attribute, $value, $fail) use ($request) {
if ($value === $request->executive_officer) {
$fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.');
}
@ -303,7 +270,7 @@
$signer = Signer::find($request->id);
return json_encode( $signer);
return json_encode($signer);
}
@ -333,9 +300,8 @@
'deputy_director' => [
'required',
'string',
// Rule::unique('signers', 'deputy_director_name')->ignore($signer->id),
'regex:/^[a-zA-Z\s]*$/',
function($attribute, $value, $fail) use ($request) {
function ($attribute, $value, $fail) use ($request) {
if ($value === $request->executive_officer) {
$fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.');
}
@ -344,7 +310,6 @@
'executive_officer' => [
'required',
'string',
// Rule::unique('signers', 'executive_officer_name')->ignore($signer->id),
'regex:/^[a-zA-Z\s]*$/'
],
'signer_type' => 'required|string'
@ -366,11 +331,12 @@
}
}
public function export(Request $request){
$arrAccount = explode("," , $request['accNo']);
public function export(Request $request)
{
$arrAccount = explode(",", $request['accNo']);
$startDate = Carbon::parse($request['startDate2']);
$dateCore = $startDate->subDays(2);
$Account = new Account;
$Account = new Account();
$data = [];
$DataAccounts = [];
$DataPinjaman = [];
@ -378,24 +344,20 @@
$DataRK = [];
$rekEscrow = [];
$DataAnjak = [];
// dd($listAccount);
$GetCustomer = $Account->getCustomer($request['cusNo'])->first();
//dd($GetCustomer );
$listAccount = $Account->getAccount($request['cusNo'], $arrAccount, $dateCore )->get();
//dd( $listAccount);
$listAccount = $Account->getAccount($request['cusNo'], $arrAccount, $dateCore)->get();
foreach ($listAccount as $key1 => $account) {
$dataAADepo = $Account->getAA($request['cusNo'],$account->ACCOUNT_NUMBER, $dateCore)->first();
// $AccountAnjak = $Account->getAccountAnjak($request['cusNo'], $dateCore )->first();
if ($account->CATEGORY == '6603' || $account->CATEGORY == '6602') {
$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 );
$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;
@ -408,7 +370,7 @@
$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'] = intval($tenor->days / 30) . ' BLN';
}
}else{
@ -426,7 +388,6 @@
$DataAccounts[$key1]['FIXED_RATE'] = '';
$DataAccounts[$key1]['TERM'] = '';
}
//get data anjak
if ($account->CATEGORY == '1019') {
@ -437,12 +398,10 @@
}
$Arrangement = $Account->getPinjaman($request['cusNo'], $dateCore)->get();
foreach ($Arrangement as $key2 => $pinjaman) {
$limtiCheck = $Account->getLimitCheck($pinjaman->LINKED_APPL_ID,$startDate)->first();
$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;
@ -456,18 +415,22 @@
}
$listAccountRK = $Account->getAccountRK($request['cusNo'], $dateCore )->get();
$listAccountRK = $Account->getAccountRK($request['cusNo'], $dateCore)->get();
foreach ($listAccountRK as $rk => $valRk) {
if ( $valRk->CATEGORY == '1003') {
if ($valRk->CATEGORY == '1003') {
$rateRK = "";
$rateDebitRk = $Account->getRateRk($valRk->ACCOUNT_NUMBER, $dateCore )->first();
if( $rateDebitRk->DR_INT_RATE == "0"){
$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 = substr($rateDebitRk->DR_INT_RATE, 0, -2);
}
} else {
$rateRK = '';
}
$DataRK[$rk]['ACCOUNT_NUMBER'] = $valRk->ACCOUNT_NUMBER;
$DataRK[$rk]['OPENING_DATE'] = $valRk->OPENING_DATE;
@ -477,7 +440,7 @@
$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]['MATURITY_DATE'] = date('d-m-Y', strtotime($valRk->EXPIRY_DATE)) ?? '';
$DataRK[$rk]['ARRANGEMENT_ID'] = '';
$DataRK[$rk]['FIXED_RATE'] = $rateRK;
$DataRK[$rk]['TERM'] = '12';
@ -487,14 +450,13 @@
}
$fasilitas = Fasilitas::where('nomor_cif',$request['cusNo'] )->where('status',1)->get();
$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]['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;
@ -502,49 +464,46 @@
//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($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;
}
// 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();
// dd($fasilitas);
$signer = Signer::where('id', $request['signerId'])->where('status',1)->get();
$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();
$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['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;
$data['totalOutstanding'] = $totalOutstanding;
// dd($data);
$pdf = PDF::loadview('konfirmasibank::exportPdf',['data'=>$data]);
$pdf = PDF::loadview('konfirmasibank::exportPdf', ['data' => $data]);
// Set page script to disable header on the first page
// Set options for DOMPDF as needed
@ -557,7 +516,7 @@
$firstPageId = $cpdf->getFirstPageId();
$objects = $cpdf->objects;
$pages = array_filter($objects, function($v) {
$pages = array_filter($objects, function ($v) {
return $v['t'] == 'page';
});
@ -568,7 +527,7 @@
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->text(300, 797, $nos . "/" . $countPage, $font, 10, array(0,0,0));
$canvas->close_object();
$number++;
@ -585,19 +544,19 @@
return $pdf->stream($filename);
// return $pdf->stream();
}
public function convertDateToMonth($termVal){
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') {
} 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 {
@ -609,7 +568,8 @@
}
public function fasilitas(Request $request){
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 !');
@ -618,7 +578,7 @@
$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']);
$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();
@ -630,12 +590,13 @@
$data['Category'] = $Category;
$data['Company'] = $Company;
return view('konfirmasibank::pages.index_fasilitas',compact('data'));
return view('konfirmasibank::pages.index_fasilitas', compact('data'));
}
public function postFasilitas(Request $request){
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 !');
@ -682,11 +643,6 @@
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
// return json_encode([
// 'status' => 'error',
// 'message' => $e->getMessage()
// ]);
}
}
@ -710,7 +666,7 @@
$fasilitas = Fasilitas::find($request->id);
return json_encode( $fasilitas);
return json_encode($fasilitas);
}
/**
@ -729,8 +685,6 @@
}
$today = Carbon::now();
// Menambahkan 1 tahun ke tanggal saat ini
// $currentYear = $today->format("YYYY-MM-DD");
// Validation Data\
$validator = Validator::make($request->all(), [
@ -829,5 +783,4 @@
}
}
}

View File

@ -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 @@
<li>POSISI : {{ $data['localDate'] }} </li>
</ul>
<table style="width:100%;" class="space1" >
<table style="width:100%;" class="space1 " >
<thead style="background-color: dimgrey" >
<tr>
<th class="text-center space1" style="width:5%">No</th>
@ -178,12 +185,11 @@
<!-- Add more rows here if needed -->
</tbody>
</table><br>
<ul class="no-bullets">
<li>PINJAMAN YANG DIBERIKAN OLEH BANK KEPADA NASABAH</li>
<li>POSISI : {{ $data['localDate'] }} </li>
</ul>
<table class="space1" style="width:100%;page-break-inside: avoid;">
<table class="space1" style="width:100%; page-break-inside: avoid;">
<thead style="background-color: dimgrey">
<tr class="space1">
<th class="text-center space1" style="width:5%">No</th>
@ -191,14 +197,14 @@
<th class="text-center space1" style="width:12%">Tgl Realisasi</th>
<th class="text-center space1" style="width:7%">Mata Uang</th>
<th class="text-center space1" style="width:16%">Saldo</th>
<th class="text-center" style="width:10%">Tenor</th>
<th class="text-center space1" style="width:10%">Tenor</th>
<th class="text-center space1" style="width:8%">Suku Bunga</th>
<th class="text-center space1" style="width:11%">Tgl Jatuh Tempo</th>
<th class="text-center space1" style="width:10%">Keterangan</th>
</tr>
</thead>
<tbody>
@if (count($data['DataPinjaman'])>0 OR count($data['DataRK'])>0 OR count($data['DataAnjak']) > 0 )
<tbody style="page-break-inside: avoid;">
@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)
<tr class="space1">
<td class="text-center space1">{{ $no++ }}</td>
<td class="space1">{{ $anjak['PRODUCT_LOAN'] }}</td>
<td class="space1">ANJAK PIUTANG</td>
<td class="text-center space1 "></td>
<td class="text-center space1">{{ $anjak['LOAN_CCY'] }}</td>
<td class="text-right space1">{{$anjak['OUTSTANDING']}}</td>
<td class="text-center space1">{{$anjak['TENOR']}} BLN</td>
<td class="text-center space1">{{$anjak['CURRENT_INTEREST_RATE']}} %</td>
<td class="text-center space1">{{$anjak['MATURITY_DATE']}}</td>
<td class="text-center space1">{{ $anjak['ACCOUNT_NUMBER'] }}</td>
<td class="text-center space1"></td>
<td class="text-right space1">{{$data['totalOutstanding']}}</td>
<td class="text-center space1"></td>
<td class="text-center space1"></td>
<td class="text-center space1"></td>
<td class="text-center space1"></td>
</tr>
@endforeach
@endif
@else
@ -281,7 +284,7 @@
<li>FASILITAS LAIN YANG DITERIMA OLEH NASABAH</li>
<li>POSISI : {{ $data['localDate'] }} </li>
</ul>
<table class="space1" style="width:100%;">
<table class="space1"style="width:100%; page-break-inside: avoid;">
<thead style="background-color: dimgrey">
<tr class="space1">
<th class="text-center space1" style="width:5%">No</th>
@ -295,7 +298,7 @@
<th class="text-center space1" style="width:10%">Keterangan</th>
</tr>
</thead>
<tbody>
<tbody style="page-break-inside: avoid;">
@if (count($data['DataFasilitas']) > 0 )
@php
$no = 0;