diff --git a/app/Http/Controllers/Api/FetchLoanHistoryController.php b/app/Http/Controllers/Api/FetchLoanHistoryController.php new file mode 100644 index 0000000..84048fd --- /dev/null +++ b/app/Http/Controllers/Api/FetchLoanHistoryController.php @@ -0,0 +1,50 @@ +validate([ + 'passport_serie' => ['required', 'string', 'max:255'], + 'passport_id' => ['required', 'string', 'max:255'], + ]); + + $curl = curl_init(); + + curl_setopt_array($curl, [ + CURLOPT_URL => 'http://10.3.158.102:9999/api/loan/history/info', + CURLOPT_RETURNTRANSFER => true, + CURLOPT_ENCODING => '', + CURLOPT_MAXREDIRS => 10, + CURLOPT_TIMEOUT => 0, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS => sprintf('{ + "idSeria": "%s", + "idNo": "%s" + }', + $request->passport_serie, + $request->passport_id, + ), + CURLOPT_HTTPHEADER => [ + 'Accept: application/json', + 'Content-Type: application/json', + ], + ]); + + $response = curl_exec($curl); + + curl_close($curl); + + return $response; + } +} diff --git a/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php b/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php index 58b264e..93b7163 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php +++ b/app/Nova/Resources/Order/Loan/LoanOrderMobileFieldsForDetail.php @@ -91,10 +91,18 @@ class LoanOrderMobileFieldsForDetail new Panel(__('Card'), [ NovaCustomHtml::make(__('Data'), 'card_name') + ->canSeeWhen('systemUser', $resource) ->html(view('orders.loan.mobile.card-history', [ 'resource' => $resource, - ])->render()) - ->fillUsing(NovaForm::fillEmpty()), + ])->render()), + ]), + + new Panel(__('Karz taryhy'), [ + NovaCustomHtml::make(__('Karz taryhy'), 'loan_history') + ->canSeeWhen('systemUser', $resource) + ->html(view('orders.loan.mobile.loan-history', [ + 'resource' => $resource, + ])->render()), ]), new Panel(__('Contact data'), [ diff --git a/lang/tk.json b/lang/tk.json index 3fe9564..a4b098e 100644 --- a/lang/tk.json +++ b/lang/tk.json @@ -321,5 +321,6 @@ "Loan Card": "Karz karty", "Send payment": "Tölegi geçir", "Currencies": "Walýutalar", - "Passport number": "Pasport nomeri" + "Passport number": "Pasport nomeri", + "Fetch loan history": "Karz taryhyny görmek" } diff --git a/resources/js/vendor/nova/js/additional.js b/resources/js/vendor/nova/js/additional.js index f4ec0c2..0de2d0b 100644 --- a/resources/js/vendor/nova/js/additional.js +++ b/resources/js/vendor/nova/js/additional.js @@ -3,6 +3,69 @@ function csrf_token() return document.querySelector('meta[name="csrf-token"]')?.getAttribute('content'); } +async function fetchLoanHistory(containerID, passport_serie, passport_id) { + if (! passport_serie || ! passport_id) { + Nova.error('Maglumat ýetmezçiligi bar'); + return; + } + + let cardHistoryDetailContainer = document.getElementById(containerID); + + var headers = new Headers(); + headers.append('Accept', 'application/json'); + + var formdata = new FormData(); + formdata.append('passport_serie', passport_serie); + formdata.append('passport_id', passport_id); + + Nova.$progress.start() + + fetch('/api/fetch-loan-history', { + method: 'POST', + headers: headers, + body: formdata, + redirect: 'follow' + }) + .then(response => response.json()) + .then(result => { + console.log({result: result}) + if (result.errCode != 0) { + Nova.error(result.message) + } + + // cardHistoryDetailContainer.innerHTML = ` + //
+ //
${ + // new Date(transaction['trandate']).toLocaleDateString('en-GB', { + // year: 'numeric', + // month: '2-digit', + // day: '2-digit', + // }).replaceAll('/', '.') + // }
+ //