526 lines
20 KiB
PHP
526 lines
20 KiB
PHP
<?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\TermAmount;
|
|
use Dompdf\Dompdf;
|
|
use Dompdf\Options;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Support\Facades\View;
|
|
use Illuminate\Support\Facades\Validator;
|
|
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 = [];
|
|
// Tanggal awal
|
|
// Contoh tanggal saat ini
|
|
$today = Carbon::now();
|
|
// dd( $today->format());
|
|
|
|
// 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();
|
|
|
|
$data['currentYear'] = $currentYear;
|
|
$data['pastYear'] = $pastYear;
|
|
$data['signer'] = $signer;
|
|
// dd($data);
|
|
|
|
return view('konfirmasibank::pages.index',compact('data'));
|
|
|
|
}
|
|
|
|
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);
|
|
// $endtDate = Carbon::parse($request->endDate);
|
|
// $startDateCore = $startDate->subDays(2)->format("Y-m-d");
|
|
// $endDateCore = $endDate->subDays(2)->format("Y-m-d");
|
|
|
|
|
|
$Accounts = $Account->getSearchAccount($request->cif,$arrAccount,$request->kodecabang, $request->startDate)->get();
|
|
$Arrangement = $Account->getAAaccount($request->cif)->get();
|
|
|
|
$maturityDate = '';
|
|
$aaID= '';
|
|
$product = '';
|
|
foreach ($Accounts as $key => $account) {
|
|
|
|
|
|
$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]['OPENING_DATE'] = Carbon::parse($account->OPENING_DATE)->format('d-m-Y');
|
|
$data[$key]['MATURITY_DATE'] = $Arrangement[$key]->MATURITY_DATE ?? 'NIHIL';
|
|
$data[$key]['PRODUCT'] = $Arrangement[$key]->PRODUCT ?? 'NIHIL';
|
|
|
|
}
|
|
|
|
return json_encode($data );
|
|
}
|
|
|
|
/*
|
|
----- 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']);
|
|
$ViewAccount = new ViewAccount;
|
|
$data = [];
|
|
$DataAccounts = [];
|
|
$DataPinjaman = [];
|
|
$DataLimit = [];
|
|
$DataAA = [];
|
|
$listAccount = $ViewAccount->getAccount($request['cus_no'],$arrAccount,$request['kode_cabang'],$request->startDate)->get();
|
|
$GetCustomer = $ViewAccount->getCustomer($request['cus_no'])->first();
|
|
$Arrangement = $ViewAccount->getAAaccount($request['cus_no'])->get();
|
|
// dd( $Arrangement);
|
|
|
|
$MaturityDate = '';
|
|
$product = '';
|
|
$AAID= '';
|
|
foreach ($listAccount as $key1 => $account) {
|
|
//$Arrangement = $ViewAccount->getAAaccount($account->CUSTOMER_NO,$account->ACCOUNT_NUMBER);
|
|
|
|
$DataAccounts[$key1]['ACCOUNT_NUMBER'] = $account->ACCOUNT_NUMBER;
|
|
$DataAccounts[$key1]['CUSTOMER_NO'] = $account->CUSTOMER_NO;
|
|
$DataAccounts[$key1]['SHORT_NAME'] = $account->SHORT_NAME;
|
|
$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'] = (count($Arrangement) > 0) ? date('d-m-Y',strtotime($Arrangement[$key1]->MATURITY_DATE)) : 'NIHIL' ;
|
|
$DataAccounts[$key1]['ARRANGEMENT_ID'] = (count($Arrangement) > 0) ? $Arrangement[$key1]->ARRANGEMENT_ID : 'NIHIL' ;
|
|
$DataAccounts[$key1]['FIXED_RATE'] = $Arrangement[$key1]->FIXED_RATE ?? 'NIHIL';
|
|
$DataAccounts[$key1]['TERM'] = $Arrangement[$key1]->TERM ?? 'NIHIL';
|
|
}
|
|
|
|
$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('D MMMM YYYY');
|
|
|
|
$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
|
|
|
|
$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($pdf);
|
|
|
|
}
|
|
|
|
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 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)->paginate(10)->appends($request->query()['cus_no_fasilitas'],$request->query()['company_name'],$request->query()['startDateFasilitas'],$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) {
|
|
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.']);
|
|
}
|
|
}
|
|
|
|
|
|
} |