feat(shoraka): integrate transactions with Shoraka API

This commit is contained in:
nurafrinaalimi16
2026-10-08 12:39:20 +08:00
parent 464d3e8dbb
commit 1d6baf3b1f
25 changed files with 780 additions and 157 deletions
+25 -7
View File
@@ -285,6 +285,11 @@ class GadaianController extends Controller
public function store(Request $request)
{
$auth_user = Auth::user();
$shoraka = app(\App\Services\ShorakaFinancingService::class);
if ($shoraka->local($request->norujukan_gadai)) {
return $shoraka->pendingResponse($request, $request->norujukan_gadai);
}
$shoraka->ensureReady();
$caraTerima = strtoupper((string) $request->input('cara_terima', 'TUNAI'));
$pinjamanAmt = round((float) $request->pinjaman, 2);
@@ -342,16 +347,20 @@ class GadaianController extends Controller
'nokp' => $request->nokp,
'kadar_rebate' => $this->parseMoney($request->kadar_rebate),
'rebate' => $this->parseMoney($request->rebate),
])->json();
])->throw()->json();
$komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/komuditi/transaksi', [
'unit_komuditi' => round($request->pinjaman, 2),
'norujukan' => $request->norujukan_gadai,
'kodcaw' => $auth_user['cawangan'],
'teller' => $auth_user['name']
return $shoraka->hold($request, $request->norujukan_gadai, 'gadai', [
'cara_terima' => $caraTerima,
'pinjaman' => $pinjamanAmt,
]);
}
public function completeShorakaFinancing(Request $request)
{
$auth_user = Auth::user();
$caraTerima = $request->cara_terima;
$pinjamanAmt = round((float) $request->pinjaman, 2);
if ($caraTerima === 'ONLINE') {
$online = Http::withOptions(['verify' => config('app.api_verify')])
->asForm()
@@ -374,7 +383,7 @@ class GadaianController extends Controller
$msg = is_array($body) && isset($body['message'])
? $body['message']
: 'Gagal daftar pembiayaan online. Sila cuba lagi.';
return redirect()->back()->with('error', $msg);
throw new \RuntimeException($msg);
}
$this->notifyPcPembiayaanOnlinePending($auth_user, $request, $pinjamanAmt);
@@ -594,6 +603,7 @@ class GadaianController extends Controller
public function cetakSAG(Request $request)
{
app(\App\Services\ShorakaFinancingService::class)->printData($request->norujukan_modal);
$auth_user = Auth::user();
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $request->norujukan_modal);
@@ -614,6 +624,7 @@ class GadaianController extends Controller
}
foreach ($arraynorujukan as $index => $norujukan) {
app(\App\Services\ShorakaFinancingService::class)->printData($norujukan);
$gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/serah/' . $auth_user['cawangan'] . '/' . $norujukan);
if ($gadai->failed()) {
@@ -671,6 +682,12 @@ class GadaianController extends Controller
// $pembayaran_segera = "https://spare.arrahn.com.my/pembayaransegera";
$pembayaran_segera = "https://pay.arrahn.com.my";
$shorakaPrint = app(\App\Services\ShorakaFinancingService::class)->printData($gadai_detail['norujukan']);
if ($shorakaPrint) {
$komoditi = $shorakaPrint['komoditi'];
$product = $shorakaPrint['product'];
$kuantiti = $shorakaPrint['kuantiti'];
} else {
$komoditi = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/komuditi/check')
->json();
@@ -678,6 +695,7 @@ class GadaianController extends Controller
->get($api_url . '/api/komuditi/description', ['kodproduk' => $komoditi['kodproduct']])
->json();
$kuantiti = $gadai_detail['pinjaman'] / $komoditi['nilai'];
}
if ($gadai_detail['tagbaru'] == 1) {
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])