feat(pembiayaan-online): let PC upload the signed gadai online confirmation form
This commit is contained in:
@@ -62,6 +62,7 @@ class PembiayaanOnlineController extends Controller
|
|||||||
'kodbank', 'noakaun', 'nama_bank', 'nama_akaun', 'nota',
|
'kodbank', 'noakaun', 'nama_bank', 'nama_akaun', 'nota',
|
||||||
'bukti_akaun_file_id', 'borang_file_id', 'update_customer_bank',
|
'bukti_akaun_file_id', 'borang_file_id', 'update_customer_bank',
|
||||||
'bukti_akaun_data', 'bukti_akaun_filename', 'bukti_akaun_type',
|
'bukti_akaun_data', 'bukti_akaun_filename', 'bukti_akaun_type',
|
||||||
|
'borang_data', 'borang_filename', 'borang_type',
|
||||||
] as $key) {
|
] as $key) {
|
||||||
if ($request->has($key)) {
|
if ($request->has($key)) {
|
||||||
$input[$key] = $request->input($key);
|
$input[$key] = $request->input($key);
|
||||||
@@ -214,6 +215,14 @@ class PembiayaanOnlineController extends Controller
|
|||||||
return $this->respond($this->service->getBuktiAkaun($kodcaw, $id));
|
return $this->respond($this->service->getBuktiAkaun($kodcaw, $id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GET /api/pembiayaan-online/{kodcaw}/lines/{id}/borang
|
||||||
|
*/
|
||||||
|
public function getBorang($kodcaw, $id)
|
||||||
|
{
|
||||||
|
return $this->respond($this->service->getBorang($kodcaw, $id));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GET /api/pembiayaan-online/{kodcaw}/paid?blast_sent=0
|
* GET /api/pembiayaan-online/{kodcaw}/paid?blast_sent=0
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -415,6 +415,19 @@ class PembiayaanOnlineService
|
|||||||
$fields['bukti_akaun_file_id'] = $saved['payload']['id'];
|
$fields['bukti_akaun_file_id'] = $saved['payload']['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($input['borang_data'])) {
|
||||||
|
$saved = $this->storeBuktiFile([
|
||||||
|
'data' => $input['borang_data'],
|
||||||
|
'filename' => $input['borang_filename'] ?? null,
|
||||||
|
'type' => $input['borang_type'] ?? null,
|
||||||
|
]);
|
||||||
|
if (!$saved['ok']) {
|
||||||
|
$saved['payload']['message'] = 'Borang pengesahan diperlukan: fail, nama fail dan jenis fail.';
|
||||||
|
return $saved;
|
||||||
|
}
|
||||||
|
$fields['borang_file_id'] = $saved['payload']['id'];
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($fields)) {
|
if (empty($fields)) {
|
||||||
return [
|
return [
|
||||||
'ok' => false,
|
'ok' => false,
|
||||||
@@ -1759,6 +1772,65 @@ class PembiayaanOnlineService
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get attached signed online-financing confirmation form (borang_file_id).
|
||||||
|
*
|
||||||
|
* @return array{ok:bool,status:int,payload:mixed}
|
||||||
|
*/
|
||||||
|
public function getBorang($kodcaw, $id)
|
||||||
|
{
|
||||||
|
$resolved = $this->resolveMysql($kodcaw);
|
||||||
|
if (!$resolved['ok']) {
|
||||||
|
return $resolved;
|
||||||
|
}
|
||||||
|
|
||||||
|
$line = PembiayaanOnline::on($resolved['mysql'])
|
||||||
|
->where('kodcaw', $kodcaw)
|
||||||
|
->where('id', $id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$line) {
|
||||||
|
return [
|
||||||
|
'ok' => false,
|
||||||
|
'status' => 404,
|
||||||
|
'payload' => ['message' => 'Pembiayaan online tidak dijumpai'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($line->borang_file_id)) {
|
||||||
|
return [
|
||||||
|
'ok' => false,
|
||||||
|
'status' => 404,
|
||||||
|
'payload' => ['message' => 'Borang pengesahan belum dimuat naik'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = ARFiles::on('mysql7')->where('id', $line->borang_file_id)->first();
|
||||||
|
if (!$file) {
|
||||||
|
return [
|
||||||
|
'ok' => false,
|
||||||
|
'status' => 404,
|
||||||
|
'payload' => ['message' => 'Fail borang pengesahan tidak dijumpai'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'ok' => true,
|
||||||
|
'status' => 200,
|
||||||
|
'payload' => [
|
||||||
|
'pembiayaan_online_id' => $line->id,
|
||||||
|
'norujukan' => $line->norujukan,
|
||||||
|
'file' => [
|
||||||
|
'id' => $file->id,
|
||||||
|
'filename' => $file->filename,
|
||||||
|
'type' => $file->type,
|
||||||
|
'tarikhmasa' => $file->tarikhmasa,
|
||||||
|
'data' => $file->data,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PC list of PAID lines awaiting blast / tally.
|
* PC list of PAID lines awaiting blast / tally.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -723,6 +723,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
|||||||
$router->post('pembiayaan-online/{kodcaw}/lines/{id}/unverify', ['uses' => 'PembiayaanOnlineController@unverifyLine']);
|
$router->post('pembiayaan-online/{kodcaw}/lines/{id}/unverify', ['uses' => 'PembiayaanOnlineController@unverifyLine']);
|
||||||
$router->get('pembiayaan-online/{kodcaw}/lines/{id}/bukti', ['uses' => 'PembiayaanOnlineController@getBukti']);
|
$router->get('pembiayaan-online/{kodcaw}/lines/{id}/bukti', ['uses' => 'PembiayaanOnlineController@getBukti']);
|
||||||
$router->get('pembiayaan-online/{kodcaw}/lines/{id}/bukti-akaun', ['uses' => 'PembiayaanOnlineController@getBuktiAkaun']);
|
$router->get('pembiayaan-online/{kodcaw}/lines/{id}/bukti-akaun', ['uses' => 'PembiayaanOnlineController@getBuktiAkaun']);
|
||||||
|
$router->get('pembiayaan-online/{kodcaw}/lines/{id}/borang', ['uses' => 'PembiayaanOnlineController@getBorang']);
|
||||||
$router->get('pembiayaan-online/{kodcaw}/lines/{id}', ['uses' => 'PembiayaanOnlineController@showLine']);
|
$router->get('pembiayaan-online/{kodcaw}/lines/{id}', ['uses' => 'PembiayaanOnlineController@showLine']);
|
||||||
$router->get('pembiayaan-online/{kodcaw}/batches', ['uses' => 'PembiayaanOnlineController@listBatches']);
|
$router->get('pembiayaan-online/{kodcaw}/batches', ['uses' => 'PembiayaanOnlineController@listBatches']);
|
||||||
$router->get('pembiayaan-online/{kodcaw}/batches/{batchId}', ['uses' => 'PembiayaanOnlineController@showBatch']);
|
$router->get('pembiayaan-online/{kodcaw}/batches/{batchId}', ['uses' => 'PembiayaanOnlineController@showBatch']);
|
||||||
|
|||||||
Reference in New Issue
Block a user