feat(shoraka): defer gadai persistence until commodity confirmation and add simulation support
This commit is contained in:
@@ -48,7 +48,7 @@ class ShorakaController extends Controller
|
||||
|
||||
try {
|
||||
// The unique norujukan index is the atomic claim for concurrent submissions.
|
||||
$transaction = ShorakaTransaction::create([
|
||||
$attributes = [
|
||||
'norujukan' => $validated['norujukan'],
|
||||
'kodcaw' => $request->attributes->get('shoraka_kodcaw'),
|
||||
'status' => 'PENDING',
|
||||
@@ -58,9 +58,15 @@ class ShorakaController extends Controller
|
||||
'ownership_doc_no' => $payload['ownership_doc_no'],
|
||||
'order_amount' => $payload['order_amount'],
|
||||
'murabaha_amount' => $payload['murabaha_amount'],
|
||||
'request_payload' => $payload,
|
||||
'request_payload' => $request->attributes->get('shoraka_new')
|
||||
? array_merge($payload, ['_new_gadai' => true]) : $payload,
|
||||
'attempt_count' => 1,
|
||||
]);
|
||||
];
|
||||
$create = function () use ($attributes) { return ShorakaTransaction::create($attributes); };
|
||||
$transaction = $request->attributes->get('shoraka_new')
|
||||
? app(\App\Services\ShorakaNewGadaiService::class)->claim(
|
||||
$request->attributes->get('shoraka_kodcaw'), $validated['norujukan'], $payload, $create
|
||||
) : $create();
|
||||
} catch (QueryException $exception) {
|
||||
$existing = ShorakaTransaction::where('norujukan', $validated['norujukan'])->first();
|
||||
if ($existing) {
|
||||
|
||||
Reference in New Issue
Block a user