From 60886ef174453c7b382c3850e0e81af6244be8c7 Mon Sep 17 00:00:00 2001 From: KhatamNugraha Date: Tue, 26 Sep 2023 18:09:00 +0700 Subject: [PATCH] update margin export pdf --- Entities/ViewAccount.php | 28 +++-- Http/Controllers/KonfirmasiBankController.php | 106 +++++++----------- Resources/views/exportPdf.blade.php | 71 +++++++----- Resources/views/pages/index.blade.php | 37 ++++-- 4 files changed, 137 insertions(+), 105 deletions(-) diff --git a/Entities/ViewAccount.php b/Entities/ViewAccount.php index 64a87b3..9773192 100644 --- a/Entities/ViewAccount.php +++ b/Entities/ViewAccount.php @@ -39,7 +39,6 @@ class ViewAccount extends Model ]; public function getSearchAccount($cif ,$arrAccount, $kodecabang, $startDate, $endDate){ - // $store = DB::connection('oracle'); $today = Carbon::now(); $currentYear = $today->format("Y"); $pastYear = $today->subYear(3)->format('Y'); @@ -51,12 +50,13 @@ class ViewAccount extends Model // dd($arrAccount); if($arrAccount == null){ - //dd('1'); + $data = DB::connection("db2")->table("STG_DB.VW_ACCOUNT") ->select( 'CUSTOMER_NO', 'ACCOUNT_NUMBER','SHORT_NAME','SHORT_TITLE','CURRENCY','COMPANY_NAME','OPENING_DATE',DB::raw('MAX(WORKING_BALANCE) AS WORKING_BALANCE'),DB::raw('MAX(CATEGORY) AS CATEGORY')) ->where('CUSTOMER_NO',$cif) ->where('COMPANY_NAME', 'like', "%" .$uppercaseKodeCabang."%") ->whereBetween('OPENING_DATE', [$startDate, $endDate]) + // ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660']) ->groupBy('CUSTOMER_NO','ACCOUNT_NUMBER','SHORT_NAME','SHORT_TITLE','CURRENCY','COMPANY_NAME','OPENING_DATE'); }else{ $data = DB::connection("db2")->table("STG_DB.VW_ACCOUNT") @@ -84,21 +84,29 @@ class ViewAccount extends Model $currentYear = $today->format("Y"); $pastYear = $today->subYear(3)->format('Y'); $uppercaseKodeCabang = Str::upper($kodecabang); - - $data = DB::connection("db2")->table("STG_DB.VW_ACCOUNT") + $data = DB::connection("db2")->table("STG_DB.VW_ACCOUNT") ->select( 'CUSTOMER_NO', 'ACCOUNT_NUMBER','SHORT_NAME','SHORT_TITLE','CURRENCY','COMPANY_NAME','OPENING_DATE',DB::raw('MAX(WORKING_BALANCE) AS WORKING_BALANCE'),DB::raw('MAX(CATEGORY) AS CATEGORY')) ->where('CUSTOMER_NO',$cif) - ->whereIn('ACCOUNT_NUMBER', $arrAccount) ->where('COMPANY_NAME', 'like', "%" .$uppercaseKodeCabang."%") ->whereBetween('OPENING_DATE', [$startDate, $endDate]) - ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660']) + ->whereIn('ACCOUNT_NUMBER', $arrAccount) + ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660','101']) ->groupBy('CUSTOMER_NO','ACCOUNT_NUMBER','SHORT_NAME','SHORT_TITLE','CURRENCY','COMPANY_NAME','OPENING_DATE'); + + // $data = DB::connection("db2")->table("STG_DB.VW_ACCOUNT") + // ->select( 'CUSTOMER_NO', 'ACCOUNT_NUMBER','SHORT_NAME','SHORT_TITLE','CURRENCY','COMPANY_NAME','OPENING_DATE',DB::raw('MAX(WORKING_BALANCE) AS WORKING_BALANCE'),DB::raw('MAX(CATEGORY) AS CATEGORY')) + // ->where('CUSTOMER_NO',$cif) + // // ->whereIn('ACCOUNT_NUMBER', $arrAccount) + // ->where('COMPANY_NAME', 'like', "%" .$uppercaseKodeCabang."%") + // ->whereBetween('OPENING_DATE', [$startDate, $endDate]) + // ->whereIn(DB::raw("LEFT(CATEGORY, 3)"),['100','600','660']) + // ->groupBy('CUSTOMER_NO','ACCOUNT_NUMBER','SHORT_NAME','SHORT_TITLE','CURRENCY','COMPANY_NAME','OPENING_DATE'); return $data; } public function getAAaccount($cus_no,$acc_no){ - $data = []; - $data = DB::connection("db2")->table("STG_DB.VW_AA_ACCOUNT")->select('ARRANGEMENT_ID','PRODUCT_LINE','PRODUCT','CUSTOMER','LINKED_APPL_ID','MATURITY_DATE') + $data = []; + $data = DB::connection("db2")->table("STG_DB.VW_AA_ARR_NEW")->select('ARRANGEMENT_ID','PRODUCT_LINE','PRODUCT','CUSTOMER','LINKED_APPL_ID','MATURITY_DATE') ->where('CUSTOMER', $cus_no) ->where('LINKED_APPL_ID', $acc_no) ->get(); @@ -121,7 +129,9 @@ class ViewAccount extends Model $data = DB::connection("db2")->table("STG_DB.VW_AA_ARR_NEW") ->select('*') ->where('CUSTOMER',$cus_no) + //->where(DB::raw("LEFT(CATEGORY, 1)") , 3) ->whereIn('ACCOUNT_NUMBER', $arrAccount); + return $data; } @@ -185,4 +195,4 @@ class ViewAccount extends Model return $data; } -} \ No newline at end of file +} diff --git a/Http/Controllers/KonfirmasiBankController.php b/Http/Controllers/KonfirmasiBankController.php index 40aaa37..65eef69 100644 --- a/Http/Controllers/KonfirmasiBankController.php +++ b/Http/Controllers/KonfirmasiBankController.php @@ -15,6 +15,7 @@ use Modules\Konfirmasibank\Entities\Company; use Modules\Konfirmasibank\Entities\TermAmount; use Dompdf\Dompdf; + use Dompdf\Options; use Carbon\Carbon; use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\Validator; @@ -77,20 +78,12 @@ $Accounts = $Account->getSearchAccount($request->cif,$arrAccount,$request->kodecabang,$request->startDate,$request->endDate)->get(); - + $maturityDate = ''; + $aaID= ''; + $product = ''; foreach ($Accounts as $key => $account) { $Arrangement = $Account->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER); - $maturityDate = ''; - $aaID= ''; - $product = ''; - foreach ($Arrangement as $key2 => $value) { - - $aaID = $value->ARRANGEMENT_ID; - $maturityDate = $value->MATURITY_DATE; - $product = $value->PRODUCT; - } - $data[$key]['CUSTOMER_NO'] = $account->CUSTOMER_NO; $data[$key]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER; $data[$key]['COMPANY_NAME'] = $account->COMPANY_NAME; @@ -98,11 +91,14 @@ $data[$key]['WORKING_BALANCE'] = $account->WORKING_BALANCE; $data[$key]['SHORT_NAME'] = $account->SHORT_NAME; $data[$key]['CURRENCY'] = $account->CURRENCY; - $data[$key]['OPENING_DATE'] = $account->OPENING_DATE; - $data[$key]['MATURITY_DATE'] = $maturityDate ?? '-'; - $data[$key]['PRODUCT'] = $product ?? '-'; + $data[$key]['OPENING_DATE'] = Carbon::parse($account->OPENING_DATE)->format('d-m-Y'); + $data[$key]['MATURITY_DATE'] = (count($Arrangement) > 0) ? date('d-m-Y',strtotime($Arrangement[0]->MATURITY_DATE)) : '-'; + $data[$key]['PRODUCT'] = (count($Arrangement) > 0) ? $Arrangement[0]->PRODUCT : '-'; + } + + return json_encode($data); } @@ -120,103 +116,85 @@ } $arrAccount = explode("," , $request['acc_no']); - - $ViewAccount = new ViewAccount; $data = []; $DataAccounts = []; $DataPinjaman = []; $DataLimit = []; $DataAA = []; - $ListAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'],$request->startDate,$request->endDate)->get(); - + $listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'],$request->startDate,$request->endDate)->get(); $GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first(); + $MaturityDate = ''; + $product = ''; + $AAID= ''; + foreach ($listAccount as $key1 => $account) { + $Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER); - - foreach ($ListAccount as $key1 => $account) { - $DataAA = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER); - - foreach ($DataAA as $key2 => $aa) { - $product = $aa->PRODUCT; - $AAID = $aa->ARRANGEMENT_ID; - $MaturityDate = $aa->MATURITY_DATE; - } $DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER; $DataAccounts[$key1]['CUSTOMER_NO'] = $account->CUSTOMER_NO; $DataAccounts[$key1]['SHORT_NAME'] = $account->SHORT_NAME; - // $DataAccounts[$key1]['RESIDENCE'] = $account->RESIDENCE; - //$DataAccounts[$key1]['ADDRESS'] = $account->ADDRESS; $DataAccounts[$key1]['CURRENCY'] = $account->CURRENCY; $DataAccounts[$key1]['PRODUCT'] = $product ?? '-'; $DataAccounts[$key1]['COMPANY_NAME'] = $account->COMPANY_NAME; $DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE; - // $DataAccounts[$key1]['BATCH_DATE'] = $account->BATCH_DATE; - $DataAccounts[$key1]['MATURITY_DATE'] = $MaturityDate ?? 'NIHIL'; - $DataAccounts[$key1]['ARRANGEMENT_ID'] = $AAID ?? 'NIHIL'; - $ListBunga =$ViewAccount->getInterest($AAID ?? ''); - $ListTenor =$ViewAccount->getTerm($AAID ?? ''); + $DataAccounts[$key1]['MATURITY_DATE'] = (count($Arrangement) > 0) ? date('d-m-Y',strtotime($Arrangement[0]->MATURITY_DATE)) : '-' ; + $DataAccounts[$key1]['ARRANGEMENT_ID'] = (count($Arrangement) > 0) ? $Arrangement[0]->ID : '-' ; + $ListBunga =$ViewAccount->getInterest((count($Arrangement) > 0) ? $Arrangement[0]->ID : ''); + $ListTenor =$ViewAccount->getTerm((count($Arrangement) > 0) ? $Arrangement[0]->ID : ''); foreach ($ListBunga as $bunga) { - if (strpos($bunga->ID ,$AAID ?? '') !== false) { + if (strpos($bunga->ID ,(count($Arrangement) > 0) ? $Arrangement[0]->ID : '') !== false) { $DataAccounts[$key1]['FIXED_RATE'] = $bunga->FIXED_RATE; } } foreach ($ListTenor as $tenor) { - if (strpos($tenor->ID ,$AAID ?? '') !== false) { + if (strpos($tenor->ID ,(count($Arrangement) > 0) ? $Arrangement[0]->ID : '') !== false) { $DataAccounts[$key1]['TERM'] = $tenor->TERM; } } } - - - $ListPinjaman =$ViewAccount->getPinjaman($ListAccount[0]->CUSTOMER_NO,$arrAccount )->get(); - - $pinjaman = []; - foreach ($ListPinjaman as $key => $item) { - $pinjaman[$key]['COMPANY_NAME'] = $item->COMPANY_NAME; - $pinjaman[$key]['CURRENCY'] = $item->CURRENCY; - $pinjaman[$key]['PRODUCT_LINE'] = $item->PRODUCT_LINE; - $pinjaman[$key]['PRODUCT'] = $item->PRODUCT; - $pinjaman[$key]['WORKING_BALANCE'] = $item->WORKING_BALANCE; - $pinjaman[$key]['MATURITY_DATE'] = $item->MATURITY_DATE; - $pinjaman[$key]['ARRANGEMENT_ID'] = $item->ARRANGEMENT_ID; - $pinjaman[$key]['FIXED_RATE'] = $item->FIXED_RATE; - $pinjaman[$key]['TERM'] = $item->TERM; - $pinjaman[$key]['CATEGORY'] = $item->CATEGORY; - } - + $ListPinjaman =$ViewAccount->getPinjaman($request['cus_no'],$arrAccount )->get(); $ListLimits = $ViewAccount->getLimit($request['cus_no'],$request['periode']); $fasilitas = Fasilitas::where('nomor_cif',$request['cus_no'] )->where('status',1)->get(); $signer = Signer::where('id', $request['signer'])->where('status',1)->get(); $currentDate = Carbon::now(); - $tanggalIndonesia = $currentDate->locale('id')->isoFormat('dddd, D MMMM YYYY'); + $tanggalIndonesia = $currentDate->locale('id')->isoFormat('D MMMM YYYY'); - $data['DataAccounts'] = $DataAccounts; - $data['DataPinjaman'] = $pinjaman; + $data['DataAccounts'] = $listAccount; + $data['DataPinjaman'] = $ListPinjaman; $data['DataLimit'] = $ListLimits; $data['DataFasilitas'] = $fasilitas; $data['DataSigner'] = $signer; $data['DataCustomer'] = $GetCustomer ?? ''; $data['localDate'] = $tanggalIndonesia; + + + // Inisialisasi DOMPDF + $options = new Options(); + $options->set('isHtml5ParserEnabled', true); + $options->set('isPhpEnabled', true); + $options->set(['padding-top' => 39, 'padding-right' => 10, 'padding-bottom' => 20, 'padding-left' => 15]); + $dompdf = new Dompdf($options); $html = View::make('konfirmasibank::exportPdf', ['data' => $data])->render(); + // Konfigurasi DOMPDF - $pdf = new Dompdf(); - - $pdf->loadHtml($html); + $dompdf->loadHtml($html); // Mengatur jenis kertas - $pdf->setPaper('f4', 'portrait')->set_option('defaultFont', 'Arial'); + $dompdf->setPaper('f4', 'portrait')->set_option('defaultFont', 'Arial'); + // Render HTML menjadi PDF - $pdf->render(); + $dompdf->render(); + // Keluarkan file PDF ke browser - $pdf->stream('"Konfirmasi_bank_"'.$data['DataCustomer']->SHORT_NAME.'"'. $currentDate.'".pdf"'); + $dompdf->stream('"Konfirmasi_bank_"'.$data['DataCustomer']->SHORT_NAME.'"'. $currentDate.'".pdf"'); return response()->download($pdf); @@ -552,4 +530,4 @@ } - } \ No newline at end of file + } diff --git a/Resources/views/exportPdf.blade.php b/Resources/views/exportPdf.blade.php index 0dccc1c..79791cb 100644 --- a/Resources/views/exportPdf.blade.php +++ b/Resources/views/exportPdf.blade.php @@ -5,15 +5,37 @@