From 0e436b0680c21ed385beaf14c6e596814b6d9524 Mon Sep 17 00:00:00 2001
From: Nurmuhammet Allanov
Date: Fri, 18 Oct 2024 19:29:44 +0500
Subject: [PATCH] wip
---
.../Api/FetchLoanHistoryController.php | 50 +++++++++++++++
.../Loan/LoanOrderMobileFieldsForDetail.php | 12 +++-
lang/tk.json | 3 +-
resources/js/vendor/nova/js/additional.js | 63 +++++++++++++++++++
.../orders/loan/mobile/loan-history.blade.php | 20 ++++++
routes/api.php | 4 ++
6 files changed, 149 insertions(+), 3 deletions(-)
create mode 100644 app/Http/Controllers/Api/FetchLoanHistoryController.php
create mode 100644 resources/views/orders/loan/mobile/loan-history.blade.php
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 = `
+ // Müşderi: ${result.clientName}
+ // Şahamça: ${result.depName}
+ // Şertnama belgisi: ${result.cardAccountNumber}
+
+ //
+ //
+ // ${Array.from(result.transactions).map(transaction => {
+ // return `-
+ // ${transaction['actionName']} ${transaction['opersum']} ${transaction['currency']}
+
+ // ${transaction['opername']}
+
+ //
${
+ // new Date(transaction['trandate']).toLocaleDateString('en-GB', {
+ // year: 'numeric',
+ // month: '2-digit',
+ // day: '2-digit',
+ // }).replaceAll('/', '.')
+ // }
+ // `;
+ // })}
+ //
+ //
+ // `;
+
+ })
+ .catch(error => console.log('error', error))
+ .finally(() => {
+ Nova.$progress.done()
+ });
+}
+
async function fetchCardHistory(passport_serie, passport_id, card_number, card_expiry_date, containerID) {
if (! passport_serie || ! passport_id || ! card_number || ! card_expiry_date) {
Nova.error('Maglumat ýetmezçiligi bar');
diff --git a/resources/views/orders/loan/mobile/loan-history.blade.php b/resources/views/orders/loan/mobile/loan-history.blade.php
new file mode 100644
index 0000000..0fdd78e
--- /dev/null
+++ b/resources/views/orders/loan/mobile/loan-history.blade.php
@@ -0,0 +1,20 @@
+@php
+
+@endphp
+
+
+
+
+
+
+
+
diff --git a/routes/api.php b/routes/api.php
index 00d052a..8739c77 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -1,5 +1,6 @@