Co-authored-by: ISMAIL MASSERAN <topaz@Mac.dlinkrouter.local> Co-authored-by: ISMAIL MASSERAN <topaz@ISMAILs-Macbook.local> Co-authored-by: nurafrinaalimi16 <nurafrinaalimi16@gmail.com> Reviewed-on: #15
This commit was merged in pull request #15.
This commit is contained in:
@@ -211,17 +211,169 @@ class GadaianController extends Controller
|
||||
'teller' => $auth_user['name']
|
||||
]);
|
||||
|
||||
$this->AliranTunaiController->alirantunaiGadai($request, $auth_user['name']);
|
||||
$caraTerima = strtoupper((string) $request->input('cara_terima', 'TUNAI'));
|
||||
$pinjamanAmt = round((float) $request->pinjaman, 2);
|
||||
|
||||
// Online only for RM5k–50k; otherwise force cash path.
|
||||
if ($caraTerima === 'ONLINE' && ($pinjamanAmt < 5000 || $pinjamanAmt > 50000)) {
|
||||
$caraTerima = 'TUNAI';
|
||||
}
|
||||
|
||||
if ($caraTerima === 'ONLINE') {
|
||||
$online = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->asForm()
|
||||
->post(config('api.url') . '/api/pembiayaan-online/' . $auth_user['cawangan'], [
|
||||
'norujukan' => $request->norujukan_gadai,
|
||||
'nokp' => $request->nokp,
|
||||
'pinjaman' => $pinjamanAmt,
|
||||
'kodbank' => $request->kodbank,
|
||||
'noakaun' => $request->noakaun,
|
||||
'nama_bank' => $request->nama_bank,
|
||||
'nama_akaun' => $request->nama_akaun ?: $request->nama_pelanggan,
|
||||
'nama_pelanggan' => $request->nama_pelanggan,
|
||||
'nopelanggan' => $request->nopelanggan,
|
||||
'created_by' => $auth_user['name'],
|
||||
'update_customer_bank' => true,
|
||||
]);
|
||||
|
||||
if (!$online->successful()) {
|
||||
$body = $online->json();
|
||||
$msg = is_array($body) && isset($body['message'])
|
||||
? $body['message']
|
||||
: 'Gagal daftar pembiayaan online. Sila cuba lagi.';
|
||||
return redirect()->back()->with('error', $msg);
|
||||
}
|
||||
} else {
|
||||
$this->AliranTunaiController->alirantunaiGadai($request, $auth_user['name']);
|
||||
}
|
||||
|
||||
event(new GadaiNotify('lulus', $auth_user['cawangan']));
|
||||
|
||||
$request->session()->forget('page_reload');
|
||||
$request->session()->forget('norujukan');
|
||||
$request->session()->flash('activate_tab', 'SAG_baru');
|
||||
if ($caraTerima === 'ONLINE') {
|
||||
$request->session()->flash('message', 'Gadai berjaya. Pembiayaan online menunggu semakan PC.');
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user