DONE: confirmation and list online form

This commit is contained in:
ISMAIL MASSERAN
2026-09-03 15:34:52 +08:00
parent 6f4507dc08
commit effe268e3b
15 changed files with 1976 additions and 87 deletions
+115
View File
@@ -259,6 +259,121 @@ class GadaianController extends Controller
return redirect()->route('customer_info');
}
public function printBorangPengesahanOnline($norujukan)
{
$auth_user = Auth::user();
$kodcaw = $auth_user['cawangan'];
$onlineResp = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/pembiayaan-online/' . $kodcaw . '/by-norujukan/' . $norujukan);
if (!$onlineResp->successful()) {
abort(404, 'Pembiayaan online tidak dijumpai.');
}
$line = $onlineResp->json();
if (!is_array($line) || empty($line['norujukan'])) {
abort(404, 'Pembiayaan online tidak dijumpai.');
}
return $this->renderBorangPengesahanOnline($line, $kodcaw);
}
public function previewBorangPengesahanOnline(Request $request)
{
$auth_user = Auth::user();
$kodcaw = $auth_user['cawangan'];
$line = [
'norujukan' => $request->input('norujukan'),
'nokp' => $request->input('nokp'),
'nopelanggan' => $request->input('nopelanggan'),
'nama_pelanggan' => $request->input('nama_pelanggan'),
'pinjaman' => $request->input('pinjaman'),
'kodbank' => $request->input('kodbank'),
'nama_bank' => $request->input('nama_bank'),
'noakaun' => $request->input('noakaun'),
'nama_akaun' => $request->input('nama_akaun'),
'created_by' => $auth_user['name'] ?? '',
'created_at' => Carbon::now()->toDateTimeString(),
];
if (empty($line['norujukan']) || empty($line['noakaun'])) {
abort(422, 'Sila lengkapkan maklumat bank sebelum cetak borang.');
}
return $this->renderBorangPengesahanOnline($line, $kodcaw);
}
private function renderBorangPengesahanOnline(array $line, $kodcaw)
{
$auth_user = Auth::user();
$cawanganResp = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/cawangan/detail/' . $kodcaw)
->json();
$cawangan_detail = (is_array($cawanganResp) && isset($cawanganResp[0]))
? $cawanganResp[0]
: (is_array($cawanganResp) ? $cawanganResp : []);
$nokpRaw = $line['nokp'] ?? '';
$customer = [];
if ($nokpRaw !== '') {
$customerResp = Http::withOptions(['verify' => config('app.api_verify')])
->get(config('api.url') . '/api/customers/' . $nokpRaw)
->json();
if (is_array($customerResp)) {
$customer = $customerResp;
}
}
$cawangan = $cawangan_detail['namacaw']
?? $cawangan_detail['details_caw']
?? $kodcaw;
$alamat1 = $cawangan_detail['alamat1'] ?? '';
$alamat2 = $cawangan_detail['alamat2'] ?? '';
$notel = $cawangan_detail['notel'] ?? '';
$nama = $line['nama_pelanggan'] ?? ($customer['nama'] ?? '');
$nokp = !empty($customer['kpbaru']) ? $customer['kpbaru'] : ($customer['kplama'] ?? $nokpRaw);
$nopelanggan = $line['nopelanggan'] ?? ($customer['nopelanggan'] ?? '');
$telefon = $customer['telefon'] ?? '';
$teller = $line['created_by'] ?? ($auth_user['name'] ?? '');
$bank = $line['nama_bank'] ?? ($line['kodbank'] ?? '');
$noakaun = $line['noakaun'] ?? '';
$nama_akaun = $line['nama_akaun'] ?? $nama;
$pinjaman = number_format((float) ($line['pinjaman'] ?? 0), 2);
$norujukan = $line['norujukan'] ?? '';
$tarikhSumber = $line['created_at'] ?? null;
try {
$tarikh = $tarikhSumber
? Carbon::parse($tarikhSumber)->format('d/m/Y')
: Carbon::now()->format('d/m/Y');
} catch (\Exception $e) {
$tarikh = Carbon::now()->format('d/m/Y');
}
return view('print.borang_pengesahan_online', compact(
'cawangan',
'kodcaw',
'alamat1',
'alamat2',
'notel',
'norujukan',
'tarikh',
'teller',
'nama',
'nokp',
'nopelanggan',
'telefon',
'pinjaman',
'bank',
'noakaun',
'nama_akaun'
));
}
public function editstore(Request $request)
{
$auth_user = Auth::user();