fix error export pdf

This commit is contained in:
KhatamNugraha
2024-03-04 14:52:04 +07:00
parent 5c79b3938f
commit 809b315838
5 changed files with 542 additions and 502 deletions

View File

@ -17,8 +17,9 @@
use Modules\Konfirmasibank\Entities\Account;
use Modules\Konfirmasibank\Entities\Arrangement;
use Modules\Konfirmasibank\Entities\TermAmount;
use Dompdf\Dompdf;
use Dompdf\Options;
//use Dompdf\Dompdf;
use PDF;
//use Dompdf\Options;
use Carbon\Carbon;
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\IOFactory;
@ -96,12 +97,10 @@
$data = [];
$Account = new ViewAccount;
$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();
return json_encode($Accounts );
}
@ -109,381 +108,73 @@
/*
----- export pdf -----
*/
public function export2(Request $request) {
if (is_null($this->user) || !$this->user->can('konfirmasibank.report')) {
abort(403, 'Sorry !! You are Unauthorized to view any master data !');
}
$arrAccount = explode("," , $request['acc_no']);
$startDate = Carbon::parse($request['startDate']);
$dateCore = $startDate->subDays(2);
$ViewAccount = new ViewAccount;
$data = [];
$DataAccounts = [];
$ListPinjaman = [];
$ListLimits = [];
$DataAA = [];
$fasilitas = [];
//get No Surat
$noSurat = $this->generateNomorSurat();
$this->postInfoSurat($request ,$noSurat);
$listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'], $dateCore)->get();
$GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first();
foreach ($listAccount as $key1 => $account) {
//$Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER);
$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$months = '';
if($Arrangement != null && $Arrangement->TERM != null){
$arrTerm = substr($Arrangement->TERM,-1);
if($arrTerm[1] = 'Y'){
$monthsInYear = 12;
$months = int($arrTerm[0]) * $monthsInYear;
// $term = $days;
}elseif ($arrTerm[1] = 'D') {
$averageDaysInMonth = 30.44;
$months = int($arrTerm[0]) / $averageDaysInMonth;
// return $days;
}
}
$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'] = $Arrangement->PRODUCT ?? '';
$DataAccounts[$key1]['COMPANY_NAME'] = $account->COMPANY_NAME;
$DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE;
$DataAccounts[$key1]['MATURITY_DATE'] = $Arrangement->MATURITY_DATE ?? '' ;
$DataAccounts[$key1]['ARRANGEMENT_ID'] = $Arrangement->ARRANGEMENT_ID ?? '';
$DataAccounts[$key1]['FIXED_RATE'] = $Arrangement->FIXED_RATE ?? '';
$DataAccounts[$key1]['TERM'] = $months;
}
$ListPinjaman =$ViewAccount->getPinjaman($request['cus_no'],$arrAccount , $dateCore )->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('D MMMM YYYY');
$letter = new Letters;
$infoSuratNew = $letter->where('no_cif',$request['cus_no'])->orderBy('created_at','desc')->first();
$infoSuratOld = $letter->where('no_cif',$request['cus_no'])->orderBy('created_at','asc')->first();
$data['DataAccounts'] = $DataAccounts;
$data['DataPinjaman'] = $ListPinjaman;
$data['DataLimit'] = $ListLimits;
$data['DataFasilitas'] = $fasilitas;
$data['DataSigner'] = $signer;
$data['DataCustomer'] = $GetCustomer ?? '';
$data['localDate'] = $tanggalIndonesia;
$data['infoSuratOld'] = $infoSuratOld;
$data['infoSuratNew'] = $infoSuratNew;
//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
$dompdf->loadHtml($html);
// Mengatur jenis kertas
$dompdf->setPaper('f4', 'portrait')->set_option('defaultFont', 'Arial');
// Render HTML menjadi PDF
$dompdf->render();
// Keluarkan file PDF ke browser
$dompdf->stream('"Konfirmasi_bank_".pdf"');
return response()->download($dompdf);
}
private function postInfoSurat($request, $noSurat){
// $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']
// ]);
$currentDate = Carbon::now();
$tglSurat = $currentDate->format('Y-m-d');
$letter = new Letters();
$letter->no_cif = $request->cus_no;
$letter->no_surat = $noSurat;
$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();
}
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)
{
// 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 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, 'Sorry !! You are Unauthorized to create any konfirmasibank.create !');
}
$currentDate = Carbon::now();
$validated = $request->validate([
'deputy_director' => 'required|string',
'executive_officer' => 'required|string',
'signer_type' => 'required|string'
]);
if ($validated) {
try {
// Create New User
$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 = $currentDate;
$signer->status = 1;
$signer->save();
// return redirect()->route('konfirmasibank.addFasilitas')->with('success', 'Data berhasil ditambahkan');
echo json_encode(['status' => 'success', 'message' => ' Add signer successfully .']);
} catch (Exception $e) {
return json_encode([
'status' => 'error',
'message' => $e->getMessage()
]);
}
}
return false;
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
*
* @return Response
*/
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 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 = [];
$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']);
$Category = Category::all();
$Company = Company::all();
// dd($fasilitas);
$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 updateSigner(Request $request)
{
if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) {
abort(403, 'Sorry !! You are Unauthorized to edit any role !');
}
$today = Carbon::now();
$validator = Validator::make($request->all(), [
'deputy_director' => 'required|string',
'executive_officer' => 'required|string',
'signer_type' => 'required|string'
]);
if ($validator->fails()) {
return response()->json(['errors' => $validator->errors()], 422); // Return validation errors as JSON
}
if ($validator) {
try {
$signer = Signer::findOrFail($request->id);
$signer->deputy_director_name = $request->deputy_director;
$signer->executive_officer_name = $request->executive_officer;
$signer->signer_type = $request->signer_type;
$signer->updated_at = $today;
$signer->save();
echo json_encode(['status' => 'success', 'message' => ' signer updated successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => ' signer updated failed.']);
}
return;
}
echo json_encode(['status' => 'error', 'message' => ' signer updated failed.']);
}
public function export(Request $request){
$arrAccount = explode("," , $request['acc_no']);
$startDate = Carbon::parse($request['startDate']);
$arrAccount = explode("," , $request['accNo']);
$startDate = Carbon::parse($request['startDate2']);
$dateCore = $startDate->subDays(2);
$ViewAccount = new ViewAccount;
$listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'], $dateCore)->get();
$Account = new Account;
$data = [];
$DataAccounts = [];
$DataPinjaman = [];
// dd($listAccount);
$GetCustomer = $Account->getCustomer($request['cusNo'])->first();
$listAccount = $Account->getAccount($request['cusNo'], $dateCore )->get();
// $Arrangement = $Account->getPinjaman($request['cusNo'],$startDate)->get();
foreach ($listAccount as $key1 => $account) {
//$Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER);
$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$Arrangement = $Account->getPinjaman($request['cusNo'],$startDate)->get();
//dd($Arrangement);
$months = '';
$PRODUCTFIXED_RATE = '' ;
$MATURITY_DATE ='';
$PRODUCT = '' ;
$ARRANGEMENT_ID ='' ;
if($Arrangement){
foreach ($Arrangement as $key2 => $pinjaman) {
$MaturityDate = $Account->getMaturityDate($pinjaman->ARRANGEMENT_ID, $startDate )->first();
$TermAmount = $Account->getTermAmount($pinjaman->ARRANGEMENT_ID,$startDate)->first();
$FixedRate = $Account->getFixedRate($pinjaman->ARRANGEMENT_ID,$startDate)->first();
// String asli
$StringTerm = $TermAmount->TERM;
// Panjang string
$panjang_string = strlen($StringTerm);
// Panjang bagian yang ingin dihapus dari kanan
$panjang_hapus = 1;
// Menghapus bagian dari kanan string
$string_baru = substr($StringTerm, 0, $panjang_string - $panjang_hapus);
$Term1 = substr($TermAmount->TERM, -1);
if($TermAmount){
if( $Term1 = 'Y'){
$monthsInYear = 12;
$months = intval( $string_baru) * $monthsInYear;
$PRODUCTFIXED_RATE = $FixedRate ? $FixedRate->FIXED_RATE : '';
$PRODUCT = $pinjaman->PRODUCT_LINE ;
$MATURITY_DATE = $MaturityDate ? $MaturityDate->MATURITY_DATE : '';
$ARRANGEMENT_ID = $pinjaman->ARRANGEMENT_ID ;
// $term = $days;
}elseif($Term1 = 'M') {
$averageDaysInMonth = 30.44;
$months = intval($string_baru) / $averageDaysInMonth;
// return $days;
}else{
$months = $TermAmount->TERM;
}
}
$DataPinjaman[$key2]['ARRANGEMENT_ID'] = $pinjaman->ARRANGEMENT_ID;
$DataPinjaman[$key2]['START_DATE'] = $pinjaman->START_DATE;
$DataPinjaman[$key2]['CURRENCY'] = $pinjaman->CURRENCY;
$DataPinjaman[$key2]['PRODUCT_LINE'] = $pinjaman->PRODUCT_LINE;
$DataPinjaman[$key2]['WORKING_BALANCE'] = number_format($account->WORKING_BALANCE, 2, ',', '.') ?? '';
$DataPinjaman[$key2]['TERM'] = $months . ' D';
$DataPinjaman[$key2]['FIXED_RATE'] = $FixedRate ? $FixedRate->FIXED_RATE : '';
$DataPinjaman[$key2]['MATURITY_DATE'] = $MaturityDate ? $MaturityDate->MATURITY_DATE : '' ;
$DataPinjaman[$key2]['ACCOUNT_NUMBER'] = $pinjaman->LINKED_APPL_ID;
}
}
$months = '';
$PRODUCTFIXED_RATE = '' ;
$PRODUCT = '' ;
$MATURITY_DATE = '' ;
$ARRANGEMENT_ID ='' ;
if($Arrangement != null && $Arrangement->TERM != null){
//$arrTerm = substr($Arrangement->TERM,-1);
$PRODUCTFIXED_RATE = $Arrangement->PRODUCTFIXED_RATE ;
$PRODUCT = $Arrangement->PRODUCT ;
$MATURITY_DATE = $Arrangement->MATURITY_DATE ;
$ARRANGEMENT_ID = $Arrangement->ARRANGEMENT_ID ;
// if($arrTerm[1] = 'Y'){
// $monthsInYear = 12;
// $months = int($arrTerm[0]) * $monthsInYear;
// // $term = $days;
// }elseif ($arrTerm[1] = 'D') {
// $averageDaysInMonth = 30.44;
// $months = int($arrTerm[0]) / $averageDaysInMonth;
// // return $days;
// }
}
$DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER;
$DataAccounts[$key1]['OPENING_DATE'] = $account->OPENING_DATE;
@ -493,39 +184,37 @@
$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]['MATURITY_DATE'] = $MATURITY_DATE;
$DataAccounts[$key1]['ARRANGEMENT_ID'] = $ARRANGEMENT_ID;
$DataAccounts[$key1]['FIXED_RATE'] = $PRODUCTFIXED_RATE;
$DataAccounts[$key1]['TERM'] = '';
$DataAccounts[$key1]['WORKING_BALANCE'] = number_format($account->WORKING_BALANCE, 2, ',', '.');
$DataAccounts[$key1]['MATURITY_DATE'] = '';
$DataAccounts[$key1]['ARRANGEMENT_ID'] = '';
$DataAccounts[$key1]['FIXED_RATE'] = '';
$DataAccounts[$key1]['TERM'] = '' ;
}
$ListLimits = $Account->getLimit($request['cusNo'],$request['startDate2'])->get();
$fasilitas = Fasilitas::where('nomor_cif',$request['cusNo'] )->where('status',1)->get();
$signer = Signer::where('id', $request['signerId'])->where('status',1)->get();
$currentDate = Carbon::now();
$tanggalIndonesia = $currentDate->locale('id')->isoFormat('D MMMM YYYY');
$letter = new Letters;
$infoSuratNew = $letter->where('no_cif',$request['cusNo'])->orderBy('id','DESC')->first();
$infoSuratOld = $letter->where('no_cif',$request['cusNo'])->orderBy('id','ASC')->first();
$data['DataAccounts'] = $DataAccounts;
$data['DataPinjaman'] = $DataPinjaman;
//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
$dompdf->loadHtml($html);
// Mengatur jenis kertas
$dompdf->setPaper('f4', 'portrait')->set_option('defaultFont', 'Arial');
// Render HTML menjadi PDF
$dompdf->render();
// Keluarkan file PDF ke browser
$dompdf->stream('"Konfirmasi_bank_".pdf"');
return response()->download($dompdf);
$data['DataLimit'] = $ListLimits;
$data['DataFasilitas'] = $fasilitas;
$data['DataSigner'] = $signer;
$data['DataCustomer'] = $GetCustomer ?? '';
$data['localDate'] = $tanggalIndonesia;
$data['infoSuratOld'] = $infoSuratOld;
$data['infoSuratNew'] = $infoSuratNew;
$pdf = PDF::loadview('konfirmasibank::exportPdf',['data'=>$data]);
return $pdf->stream();
}
@ -533,7 +222,6 @@
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 !');
}