Files
konfirmasibank/Http/Controllers/KonfirmasiBankController.php
2023-12-15 16:14:25 +07:00

893 lines
41 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
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\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 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;
class KonfirmasiBankController extends Controller
{
public $user;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::guard('web')->user();
return $next($request);
});
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 !');
}
// dd($request);
$data = [];
// Contoh tanggal saat ini
$today = Carbon::now();
// Menambahkan 1 tahun ke tanggal saat ini
$currentYear = $today->format("Y");
// Menambahkan 5 tahun ke tanggal saat ini
$pastYear = $today->subYear(3)->format('Y');
$signer = Signer::where('status',1)->get();
$company = Company::all();
$data['currentYear'] = $currentYear;
$data['pastYear'] = $pastYear;
$data['signer'] = $signer;
$data['company'] = $company;
// dd($data);
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 ViewAccount;
$arrAccount = [];
$startDate = Carbon::parse($request->startDate);
$dateCore = $startDate->subDays(2)->format('m/d/Y');
$Accounts = $Account->getSearchAccount($request->cif,$arrAccount,$request->kodecabang, $dateCore)->get();
// $product = '';
// foreach ($Accounts as $key => $account) {
// $Arrangement = $Account->getAAaccount($request->cif , $account->ACCOUNT_NUMBER)->first();
// $data[$key]['CUSTOMER_NO'] = $account->CUSTOMER_NO;
// $data[$key]['INACTIV_MARKER'] = $account->INACTIV_MARKER;
// $data[$key]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER;
// $data[$key]['COMPANY_NAME'] = $account->COMPANY_NAME;
// $data[$key]['SHORT_TITLE'] = $account->SHORT_TITLE;
// $data[$key]['WORKING_BALANCE'] = $account->WORKING_BALANCE;
// $data[$key]['SHORT_NAME'] = $account->SHORT_NAME;
// $data[$key]['CURRENCY'] = $account->CURRENCY;
// $data[$key]['BATCH_DATE'] = $account->BATCH_DATE;
// $data[$key]['OPENING_DATE'] = '';
// $data[$key]['MATURITY_DATE'] = '';
// $data[$key]['PRODUCT'] = '';
// }
return json_encode($Accounts );
}
/*
----- export pdf -----
*/
public function export(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 = [];
$DataPinjaman = [];
$DataLimit = [];
$DataAA = [];
$listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'], $dateCore)->get();
$GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first();
// dd( $Arrangement);
$MaturityDate = '';
$product = '';
$AAID= '';
foreach ($listAccount as $key1 => $account) {
//$Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER);
$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER;
$DataAccounts[$key1]['OPENING_DATE'] = $account->OPENING_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 ?? 'NIHIL';
$DataAccounts[$key1]['COMPANY_NAME'] = $account->COMPANY_NAME;
$DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE;
$DataAccounts[$key1]['MATURITY_DATE'] = $Arrangement->MATURITY_DATE ?? 'NIHIL' ;
$DataAccounts[$key1]['ARRANGEMENT_ID'] = $Arrangement->ARRANGEMENT_ID ?? 'NIHIL';
$DataAccounts[$key1]['FIXED_RATE'] = $Arrangement->FIXED_RATE ?? 'NIHIL';
$DataAccounts[$key1]['TERM'] = $Arrangement->TERM ?? 'NIHIL';
}
$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');
$data['DataAccounts'] = $DataAccounts;
$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
$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_"'.$data['DataCustomer']->SHORT_NAME.'"'. $currentDate.'".pdf"');
return response()->download($dompdf);
}
public function exportWord2(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 = [];
$DataPinjaman = [];
$DataLimit = [];
$DataAA = [];
$listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'], $dateCore)->get();
$GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first();
// dd( $Arrangement);
$MaturityDate = '';
$product = '';
$AAID= '';
foreach ($listAccount as $key1 => $account) {
//$Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER);
$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER;
$DataAccounts[$key1]['COMPANY_NAME'] = $account->COMPANY_NAME;
$DataAccounts[$key1]['SHORT_NAME'] = $account->SHORT_NAME;
// $DataAccounts[$key1]['CUSTOMER_NO'] = $account->CUSTOMER_NO;
$DataAccounts[$key1]['CURRENCY'] = $account->CURRENCY;
// $DataAccounts[$key1]['PRODUCT'] = $Arrangement->PRODUCT ?? 'NIHIL';
$DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE;
// $DataAccounts[$key1]['ARRANGEMENT_ID'] = $Arrangement->ARRANGEMENT_ID ?? 'NIHIL';
$DataAccounts[$key1]['TERM'] = $Arrangement->TERM ?? 'NIHIL';
$DataAccounts[$key1]['FIXED_RATE'] = $Arrangement->FIXED_RATE ?? 'NIHIL';
$DataAccounts[$key1]['OPENING_DATE'] = $account->OPENING_DATE;
$DataAccounts[$key1]['MATURITY_DATE'] = $Arrangement->MATURITY_DATE ?? 'NIHIL' ;
}
$ListPinjaman =$ViewAccount->getPinjaman($request['cus_no'],$arrAccount , $dateCore )->get();
foreach ($ListPinjaman as $key2 => $pinjaman) {
//$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$DataPinjaman[$key2]['JENIS_PINJAMAN'] = $pinjaman->PRODUCT_LINE;
$DataPinjaman[$key2]['TGL_REALISASI'] = $pinjaman->START_DATE;
$DataPinjaman[$key2]['SALDO'] = $pinjaman->WORKING_BALANCE;
$DataPinjaman[$key2]['JANGKA_WAKTU'] = $pinjaman->TERM ?? 'NIHIL';
$DataPinjaman[$key2]['FIXED_RATE'] = $pinjaman->FIXED_RATE ?? 'NIHIL';
$DataPinjaman[$key2]['MATURITY_DATE'] = $pinjaman->MATURITY_DATE ?? 'NIHIL' ;
$DataPinjaman[$key2]['KET'] = '';
}
// $ListLimits = $Viewpinjaman->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)->first();
$currentDate = Carbon::now();
$tanggalIndonesia = $currentDate->locale('id')->isoFormat('D MMMM YYYY');
//You can get xml code of your table and insert it insite template
//Create table
$document_with_table = new PhpWord();
$section = $document_with_table->addSection();
$table = $section->addTable(array('borderSize' => 12, 'fontSize' =>10, 'borderColor' => 'green', 'width' => 11200, 'unit' => TblWidth::TWIP));
//Add Tablle 1
// Add header row with custom styling Table1
$headerRow = $table->addRow();
$headerRow->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Rekening');
$headerRow->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Cabang');
$headerRow->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Jenis Rekening');
$headerRow->addCell(1000, ['bgColor' => 'CCCCCC'])->addText('Mata Uang');
$headerRow->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Saldo');
$headerRow->addCell(1000, ['bgColor' => 'CCCCCC'])->addText('Jangka Waktu');
$headerRow->addCell(1000, ['bgColor' => 'CCCCCC'])->addText('Suku Bunga');
$headerRow->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Tgl Realisasi');
$headerRow->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Jatuh Tempo');
// Add a row to the table
// Add data rows dynamically
foreach ($DataAccounts as $key => $rowData) {
$dataRow = $table->addRow();
foreach ($rowData as $cellData) {
$dataRow->addCell()->addText($cellData);
}
}
// Membuat tabel kedua
$section->addTextBreak(1);
// // $section->addText("");
// $table2 = $section->addTable(array('borderSize' => 12, 'fontSize' =>10, 'borderColor' => 'green', 'width' => 11200, 'unit' => TblWidth::TWIP));
// $headerRow2 = $table2->addRow();
// $headerRow2->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Rekening');
// $headerRow2->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Cabang');
// $headerRow2->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Jenis Rekening');
// $headerRow2->addCell(1000, ['bgColor' => 'CCCCCC'])->addText('Mata Uang');
// $headerRow2->addCell(2000, ['bgColor' => 'CCCCCC'])->addText('Saldo');
// $headerRow2->addCell(1000, ['bgColor' => 'CCCCCC'])->addText('Jangka Waktu');
// $headerRow2->addCell(1000, ['bgColor' => 'CCCCCC'])->addText('Suku Bunga');
// foreach ($DataPinjaman as $key2 => $rowData2) {
// $dataRow2 = $table2->addRow();
// foreach ($rowData2 as $cellData2) {
// $dataRow2->addCell()->addText($cellData2);
// }
// }
// Set border properties for the entire table
$table->getStyle()->setBorderSize(1); // Set border size in pt
$table->getStyle()->setBorderColor('000000'); // Set border color (black)
// Alternatively, you can set border properties for individual cells
foreach ($table->getRows() as $row) {
foreach ($row->getCells() as $cell) {
$cell->getStyle()->setBorderSize(1);
$cell->getStyle()->setBorderColor('000000');
}
}
// Create writer to convert document to xml
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($document_with_table, 'Word2007');
// Get all document xml code
$fullxml = $objWriter->getWriterPart('Document')->write();
// Get only table xml code
$tablexml = preg_replace('/^[\s\S]*(<w:tbl\b.*<\/w:tbl>).*/', '$1', $fullxml);
//Open template with ${table}
$template_document = new \PhpOffice\PhpWord\TemplateProcessor('konfirmasibank_template.docx');
// Replace mark by xml code of table
$template_document->setValues([
'table1'=> $tablexml,
'street'=> $GetCustomer->ADDRESS,
'address'=> $GetCustomer->STREET,
'customerName'=> $GetCustomer->SHORT_NAME,
'customerNo'=> $GetCustomer->CUSTOMER_NO,
'director'=> $signer->deputy_director_name,
'executiveOfficer'=> $signer->executive_officer_name,
'date' => $tanggalIndonesia
]);
$template_document->saveAs("Konfirmasibank_".$currentDate->format('YmdHis').".docx");
return json_encode(['status' => 'success', 'message' => ' Download Surat 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 !');
}
$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 exportWord(Request $request){
//ob_start();
$currentDate = Carbon::now();
$arrAccount = explode("," , $request['acc_no']);
$startDate = Carbon::parse($request['startDate']);
$dateCore = $startDate->subDays(2);
$ViewAccount = new ViewAccount;
$data = [];
$DataAccounts = [];
$DataPinjaman = [];
$DataLimit = [];
$DataAA = [];
$listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'], $dateCore)->get();
$GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first();
// dd( $Arrangement);
$MaturityDate = '';
$product = '';
$AAID= '';
foreach ($listAccount as $key1 => $account) {
//$Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER);
$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$DataAccounts[$key1]['SHORT_NAME'] = $account->SHORT_NAME;
$DataAccounts[$key1]['OPENING_DATE'] = $account->OPENING_DATE;
$DataAccounts[$key1]['WORKING_BALANCE'] = $account->WORKING_BALANCE;
$DataAccounts[$key1]['TERM'] = $Arrangement->TERM ?? 'NIHIL';
$DataAccounts[$key1]['FIXED_RATE'] = $Arrangement->FIXED_RATE ?? 'NIHIL';
$DataAccounts[$key1]['MATURITY_DATE'] = $Arrangement->MATURITY_DATE ?? 'NIHIL' ;
}
$ListPinjaman =$ViewAccount->getPinjaman($request['cus_no'],$arrAccount , $dateCore )->get();
foreach ($ListPinjaman as $key2 => $pinjaman) {
//$Arrangement = $ViewAccount->getAAaccount($request['cus_no'] , $account->ACCOUNT_NUMBER)->first();
$DataPinjaman[$key2]['JENIS_PINJAMAN'] = $pinjaman->PRODUCT_LINE;
$DataPinjaman[$key2]['TGL_REALISASI'] = $pinjaman->START_DATE;
$DataPinjaman[$key2]['SALDO'] = $pinjaman->WORKING_BALANCE;
$DataPinjaman[$key2]['JANGKA_WAKTU'] = $pinjaman->TERM ?? 'NIHIL';
$DataPinjaman[$key2]['FIXED_RATE'] = $pinjaman->FIXED_RATE ?? 'NIHIL';
$DataPinjaman[$key2]['MATURITY_DATE'] = $pinjaman->MATURITY_DATE ?? 'NIHIL' ;
$DataPinjaman[$key2]['KET'] = '';
}
$signer = Signer::where('id', $request['signer'])->where('status',1)->first();
$currentDate = Carbon::now();
$tanggalIndonesia = $currentDate->locale('id')->isoFormat('D MMMM YYYY');
$GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first();
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection(array('marginLeft' => 600, 'marginRight' => 600, 'marginTop' => 2500, 'marginBottom' => 600) );
$header = array('size' => 10, 'bold' => false);
$styleTable = array('borderSize' => 2, 'borderColor' => '00000');
$styleFirstRow = array('bgColor' => 'CCCCCC','cellMargin' => 0, 'spaceBefore' => 0,'spaceAfter' => 0,'spacing' => 0);
$styleCell = array('valign' => 'center','spaceBefore' => 0,'spaceAfter' => 0,'spacing' => 0, 'bgColor' => 'CCCCCC');
$styleCellBTLR = array('valign' => 'center', 'textDirection' => \PhpOffice\PhpWord\Style\Cell::TEXT_DIR_BTLR);
$fontStyle = array('align' => 'center', 'size' => 10, );
$section->addText(htmlspecialchars('NOMOR : --------------------------'), $fontStyle);
$section->addText(htmlspecialchars('TANGGAL : --------------------------'), $fontStyle);
$section->addTextBreak(1);
$section->addText(htmlspecialchars($GetCustomer->STREET), $fontStyle);
$section->addText(htmlspecialchars($GetCustomer->ADDRESS), $fontStyle);
$section->addText(htmlspecialchars('Sesuai dengan surat saudara Nomor --------------------------- tanggal ----------------------- dengan ini kami sampaikan data data nasabah sesuai permintaan saudara sebagai berikut :'), $fontStyle);
$section->addText(htmlspecialchars('NAMA NASABAH : '.$GetCustomer->SHORT_NAME.''), $fontStyle);
$section->addText(htmlspecialchars('NOMOR CIF : '.$GetCustomer->CUSTOMER_NO.''), $fontStyle);
$section->addTextBreak(1);
// $phpWord->addTableStyle('Fancy Table', $styleTable, $styleFirstRow);
$section->addText(htmlspecialchars('SIMPANAN NASABAH YANG BERSANGKUTAN PADA BANK'), $header);
$section->addText(htmlspecialchars("{$tanggalIndonesia}"), $header);
$table = $section->addTable(array('borderSize' => 6, 'fontSize' =>10, 'borderColor' => 'black', 'width' => 10500, 'unit' => TblWidth::TWIP));
$table->addRow(300);
$table->addCell(600, $styleCell)->addText(htmlspecialchars("NO"), $fontStyle, array('align' => 'center','spaceAfter'=>0));
$table->addCell(2000, $styleCell)->addText(htmlspecialchars('JENIS REKENING'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$table->addCell(1500, $styleCell)->addText(htmlspecialchars('TGL REALISASI'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$table->addCell(1000, $styleCell)->addText(htmlspecialchars('SALDO'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$table->addCell(1500, $styleCell)->addText(htmlspecialchars('JANGKA WAKTU'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$table->addCell(1000, $styleCell)->addText(htmlspecialchars('SUKU BUNGA'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$table->addCell(1500, $styleCell)->addText(htmlspecialchars('TGL JT TEMPO'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$table->addCell(1000, $styleCell)->addText(htmlspecialchars('KET'), $fontStyle,array('align' => 'center','spaceAfter'=>0));
$no = 1;
foreach ($DataAccounts as $key1 => $value1) {
$rupiah = $this->convertToRupiah($value1['WORKING_BALANCE']);
$table->addRow();
$table->addCell(600)->addText(htmlspecialchars($no++), $fontStyle, array('align' => 'center','spaceAfter'=>0));
$table->addCell(2000)->addText(htmlspecialchars(" {$value1['SHORT_NAME']}"), array('align' => 'left','spaceAfter'=>0));
$table->addCell(1500)->addText(htmlspecialchars(" {$value1['OPENING_DATE']}"), array('align' => 'center','spaceAfter'=>0));
$table->addCell(1000)->addText(htmlspecialchars(" {$rupiah}"), array('align' => 'left','spaceAfter'=>0));
$table->addCell(1500)->addText(htmlspecialchars(" {$value1['TERM']}"), array('align' => 'center','spaceAfter'=>0));
$table->addCell(1000)->addText(htmlspecialchars(" {$value1['FIXED_RATE']}"), array('align' => 'center','spaceAfter'=>0));
$table->addCell(1500)->addText(htmlspecialchars(" {$value1['MATURITY_DATE']}"), array('align' => 'center','spaceAfter'=>0));
$table->addCell(1000)->addText(htmlspecialchars(""), array('align' => 'center','spaceAfter'=>0));
}
// 3. Table Pinjaman
$section->addTextBreak(1);
$section->addText(htmlspecialchars('PINJAMAN YANG DIBERIKAN BANK KEPADA NASABAH'), $header);
$section->addText(htmlspecialchars("{$tanggalIndonesia}"), $header);
$table2 = $section->addTable(array('borderSize' => 6, 'fontSize' =>10, 'borderColor' => 'black', 'width' => 10500, 'unit' => TblWidth::TWIP));
$table2->addRow(300);
$table2->addCell(600, $styleCell)->addText(htmlspecialchars("NO"), $fontStyle, array('align' => 'center','spaceAfter'=>0));
$table2->addCell(2000, $styleCell)->addText(htmlspecialchars('JENIS REKENING'), $fontStyle, array('align' => 'center'));
$table2->addCell(1500, $styleCell)->addText(htmlspecialchars('TGL REALISASI'), $fontStyle, array('align' => 'center'));
$table2->addCell(1000, $styleCell)->addText(htmlspecialchars('SALDO'), $fontStyle, array('align' => 'center'));
$table2->addCell(1500, $styleCell)->addText(htmlspecialchars('JANGKA WAKTU'), $fontStyle, array('align' => 'center'));
$table2->addCell(1000, $styleCell)->addText(htmlspecialchars('SUKU BUNGA'), $fontStyle, array('align' => 'center'));
$table2->addCell(1500, $styleCell)->addText(htmlspecialchars('TGL JT TEMPO'), $fontStyle, array('align' => 'center'));
$table2->addCell(1000, $styleCell)->addText(htmlspecialchars('KET'), $fontStyle, array('align' => 'center'));
$no = 1;
foreach ($DataPinjaman as $key2 => $value2) {
$rupiah = $this->convertToRupiah($value2['SALDO']);
$table2->addRow();
$table2->addCell(600)->addText(htmlspecialchars($no++), $fontStyle, array('align' => 'center'));
$table2->addCell(1500)->addText(htmlspecialchars(" {$value2['JENIS_PINJAMAN']}"), array('align' => 'center'));
$table2->addCell(1000)->addText(htmlspecialchars(" {$value2['TGL_REALISASI']}"), array('align' => 'center'));
$table2->addCell(1500)->addText(htmlspecialchars(" {$rupiah}"), array('align' => 'right'));
$table2->addCell(1000)->addText(htmlspecialchars(" {$value2['JANGKA_WAKTU']}"), array('align' => 'center'));
$table2->addCell(1500)->addText(htmlspecialchars(" {$value2['FIXED_RATE']}"), array('align' => 'center'));
$table2->addCell(1500)->addText(htmlspecialchars(" {$value2['MATURITY_DATE']}"), array('align' => 'center'));
$table2->addCell(1000)->addText(htmlspecialchars(""));
}
//Table Signature
$section->addTextBreak(1);
$section->addText(htmlspecialchars('Demikian data ini kami sampaikan agar dapat digunakan sebagaimana mestinya'), $header);
$signatureStyle = array('size'=>10, 'align' =>'center' );
$table3 = $section->addTable(array('width' => 2000, 'unit' => 'pct', 'align' => 'left'));
$table3->addRow(1000);
$table3->addCell(2000)->addText(htmlspecialchars(''));
$table3->addCell(2000)->addText(htmlspecialchars(''), $signatureStyle);
$table3->addRow();
$table3->addCell(2000)->addText(htmlspecialchars('Frangky'), array('marginLeft' => 600,'size'=>10, ));
$table3->addCell(2000)->addText(htmlspecialchars('Sifera Officer'), $signatureStyle);
$table3->addRow();
$table3->addCell(2000)->addText(htmlspecialchars('Director'), array('marginLeft' => 600,'size'=>10, ));
$table3->addCell(2000)->addText(htmlspecialchars('Executive Officer'), $signatureStyle);
$filename = 'KonfirmasiBank_'.$currentDate->format('YmdHis').'.docx';
// Create writer to convert document to xml
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save($filename);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
flush();
readfile($filename);
unlink($filename); // deletes the temporary file
$objWriter->save($filename);
}
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 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;
$fasilitas->nomor_rekening = $request->nomor_rekening;
$fasilitas->cabang = $request->cabang;
$fasilitas->jenis_fasilitas = $request->jenis_fasilitas;
$fasilitas->jenis_rekening = $request->jenis_rekening;
$fasilitas->mata_uang = $request->mata_uang;
$fasilitas->saldo = $request->saldo;
$fasilitas->start_date = $request->start_date;
$fasilitas->due_date = $request->due_date;
$fasilitas->jangka_waktu = $jangkaWaktu;
$fasilitas->fixed_rate = $request->fixed_rate;
$fasilitas->keterangan = $request->keterangan;
$fasilitas->save();
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()
// ]);
}
}
return false;
}
/**
* 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 !');
}
$fasilitas = Fasilitas::find($request->id);
return json_encode( $fasilitas);
}
/**
* 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 !');
}
$today = Carbon::now();
// Menambahkan 1 tahun ke tanggal saat ini
// $currentYear = $today->format("YYYY-MM-DD");
// 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.']);
}
/**
* 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);
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.']);
}
}
}