From 4d19aa72d61488ceaec03cefbdab43b960c32f01 Mon Sep 17 00:00:00 2001 From: Glenn Hermans Date: Sat, 21 May 2022 12:55:48 +0200 Subject: [PATCH] fixed #6430 --- .../DataGrids/OrderTransactionsDataGrid.php | 29 ++++++-- .../Sales/TransactionController.php | 66 ++++++++++--------- .../Admin/src/Resources/lang/ar/app.php | 1 + .../Admin/src/Resources/lang/ben/app.php | 1 + .../Admin/src/Resources/lang/de/app.php | 31 ++++----- .../Admin/src/Resources/lang/en/app.php | 1 + .../Admin/src/Resources/lang/es/app.php | 1 + .../Admin/src/Resources/lang/fa/app.php | 1 + .../Admin/src/Resources/lang/fr/app.php | 1 + .../Admin/src/Resources/lang/he/app.php | 1 + .../Admin/src/Resources/lang/hi_IN/app.php | 1 + .../Admin/src/Resources/lang/it/app.php | 1 + .../Admin/src/Resources/lang/ja/app.php | 1 + .../Admin/src/Resources/lang/nl/app.php | 1 + .../Admin/src/Resources/lang/pl/app.php | 1 + .../Admin/src/Resources/lang/pt_BR/app.php | 1 + .../Admin/src/Resources/lang/ru/app.php | 1 + .../Admin/src/Resources/lang/sin/app.php | 1 + .../Admin/src/Resources/lang/tr/app.php | 1 + .../Admin/src/Resources/lang/zh_CN/app.php | 1 + 20 files changed, 93 insertions(+), 50 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/OrderTransactionsDataGrid.php b/packages/Webkul/Admin/src/DataGrids/OrderTransactionsDataGrid.php index 252778b78..769baffda 100644 --- a/packages/Webkul/Admin/src/DataGrids/OrderTransactionsDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/OrderTransactionsDataGrid.php @@ -15,7 +15,7 @@ class OrderTransactionsDataGrid extends DataGrid { $queryBuilder = DB::table('order_transactions') ->leftJoin('orders as ors', 'order_transactions.order_id', '=', 'ors.id') - ->select('order_transactions.id as id', 'order_transactions.transaction_id as transaction_id', 'order_transactions.invoice_id as invoice_id', 'ors.increment_id as order_id', 'order_transactions.created_at as created_at'); + ->select('order_transactions.id as id', 'order_transactions.transaction_id as transaction_id', 'order_transactions.invoice_id as invoice_id', 'ors.increment_id as order_id', 'order_transactions.created_at as created_at', 'order_transactions.amount as amount', 'order_transactions.status as status'); $this->addFilter('id', 'order_transactions.id'); $this->addFilter('transaction_id', 'order_transactions.transaction_id'); @@ -34,7 +34,7 @@ class OrderTransactionsDataGrid extends DataGrid 'type' => 'number', 'searchable' => false, 'sortable' => true, - 'filterable' => true, + 'filterable' => false, ]); $this->addColumn([ @@ -45,6 +45,24 @@ class OrderTransactionsDataGrid extends DataGrid 'sortable' => true, 'filterable' => true, ]); + + $this->addColumn([ + 'index' => 'created_at', + 'label' => trans('admin::app.datagrid.transaction-date'), + 'type' => 'datetime', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); + + $this->addColumn([ + 'index' => 'amount', + 'label' => trans('admin::app.sales.transactions.transaction-amount'), + 'type' => 'price', + 'searchable' => true, + 'sortable' => true, + 'filterable' => true, + ]); $this->addColumn([ 'index' => 'invoice_id', @@ -54,6 +72,7 @@ class OrderTransactionsDataGrid extends DataGrid 'sortable' => true, 'filterable' => true, ]); + $this->addColumn([ 'index' => 'order_id', @@ -65,9 +84,9 @@ class OrderTransactionsDataGrid extends DataGrid ]); $this->addColumn([ - 'index' => 'created_at', - 'label' => trans('admin::app.datagrid.transaction-date'), - 'type' => 'datetime', + 'index' => 'status', + 'label' => trans('admin::app.datagrid.status'), + 'type' => 'string', 'searchable' => true, 'sortable' => true, 'filterable' => true, diff --git a/packages/Webkul/Admin/src/Http/Controllers/Sales/TransactionController.php b/packages/Webkul/Admin/src/Http/Controllers/Sales/TransactionController.php index c4d9f7525..273907b64 100644 --- a/packages/Webkul/Admin/src/Http/Controllers/Sales/TransactionController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Sales/TransactionController.php @@ -87,40 +87,46 @@ class TransactionController extends Controller return redirect(route('admin.sales.transactions.index')); } - $order = $this->orderRepository->find($invoice->order_id); + if ($request->amount > $invoice->base_grand_total) { + session()->flash('info', trans('admin::app.sales.transactions.response.transaction-amount-exceeds')); - $randomId = random_bytes(20); + return redirect(route('admin.sales.transactions.create')); + } else { + $order = $this->orderRepository->find($invoice->order_id); - $this->orderTransactionRepository->create([ - 'transaction_id' => bin2hex($randomId), - 'type' => $request->payment_method, - 'payment_method' => $request->payment_method, - 'invoice_id' => $invoice->id, - 'order_id' => $invoice->order_id, - 'amount' => $request->amount, - 'status' => 'paid', - 'data' => json_encode([ - 'paidAmount' => $request->amount, - ]), - ]); - - $transactionTotal = $this->orderTransactionRepository->where('invoice_id', $invoice->id)->sum('amount'); - - if ($transactionTotal >= $invoice->base_grand_total) { - $shipments = $this->shipmentRepository->where('order_id', $invoice->order_id)->first(); - - if (isset($shipments)) { - $this->orderRepository->updateOrderStatus($order, 'completed'); - } else { - $this->orderRepository->updateOrderStatus($order, 'processing'); + $randomId = random_bytes(20); + + $this->orderTransactionRepository->create([ + 'transaction_id' => bin2hex($randomId), + 'type' => $request->payment_method, + 'payment_method' => $request->payment_method, + 'invoice_id' => $invoice->id, + 'order_id' => $invoice->order_id, + 'amount' => $request->amount, + 'status' => 'paid', + 'data' => json_encode([ + 'paidAmount' => $request->amount, + ]), + ]); + + $transactionTotal = $this->orderTransactionRepository->where('invoice_id', $invoice->id)->sum('amount'); + + if ($transactionTotal >= $invoice->base_grand_total) { + $shipments = $this->shipmentRepository->where('order_id', $invoice->order_id)->first(); + + if (isset($shipments)) { + $this->orderRepository->updateOrderStatus($order, 'completed'); + } else { + $this->orderRepository->updateOrderStatus($order, 'processing'); + } + + $this->invoiceRepository->updateState($invoice, 'paid'); } - - $this->invoiceRepository->updateState($invoice, 'paid'); + + session()->flash('success', trans('admin::app.sales.transactions.response.transaction-saved')); + + return redirect(route('admin.sales.transactions.index')); } - - session()->flash('success', trans('admin::app.sales.transactions.response.transaction-saved')); - - return redirect(route('admin.sales.transactions.index')); } session()->flash('error', trans('admin::app.sales.transactions.response.invoice-missing')); diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index e4d1d32be..5b128dcf6 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -522,6 +522,7 @@ return [ 'invoice-missing' => 'معرف الفاتورة هذا غير موجود', 'transaction-saved' => 'تم حفظ الصفقة', 'already-paid' => 'تم دفع هذه الفاتورة بالفعل', + 'transaction-amount-exceeds' => 'المبلغ المحدد لهذه المعاملة أكبر من المبلغ الإجمالي للفاتورة.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/ben/app.php b/packages/Webkul/Admin/src/Resources/lang/ben/app.php index 00bd643d0..fcc3a9294 100755 --- a/packages/Webkul/Admin/src/Resources/lang/ben/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ben/app.php @@ -525,6 +525,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index be6e8a208..f53b01907 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -497,24 +497,25 @@ return [ ], 'transactions' => [ - 'title' => 'Transactions', - 'create-title' => 'Add transaction', + 'title' => 'Transaktionen', + 'create-title' => 'Transaktion hinzufügen', 'id' => 'Id', - 'transaction-id' => 'Transaction Id', - 'payment-method' => 'Payment method', - 'transaction-amount' => 'Transaction amount', - 'action' => 'Action', - 'view-title' => 'Transaction #:transaction_id', - 'transaction-data' => 'Transaction Data', - 'order-id' => 'Order Id', - 'invoice-id' => 'Invoice Id', + 'transaction-id' => 'Transaktions-ID', + 'payment-method' => 'Bezahlverfahren', + 'transaction-amount' => 'Transaktionshöhe', + 'action' => 'Handlung', + 'view-title' => 'Transaktion #:transaction_id', + 'transaction-data' => 'Transaktionsdaten', + 'order-id' => 'Auftragsnummer', + 'invoice-id' => 'Rechnungs-ID', 'status' => 'Status', - 'created-at' => 'Created At', - 'transaction-details' => 'Transaction Details', + 'created-at' => 'Hergestellt in', + 'transaction-details' => 'Transaktionsdetails', 'response' => [ - 'invoice-missing' => 'This invoice id does not exist', - 'transaction-saved' => 'The transaction has been saved', - 'already-paid' => 'This invoice has already been paid', + 'invoice-missing' => 'Diese Rechnungs-ID existiert nicht', + 'transaction-saved' => 'Die Transaktion wurde gespeichert', + 'already-paid' => 'Diese Rechnung wurde bereits bezahlt', + 'transaction-amount-exceeds' => 'Der angegebene Betrag dieser Transaktion übersteigt den Gesamtbetrag der Rechnung.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 00bd643d0..fcc3a9294 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -525,6 +525,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index 8e0294983..88d69a4d8 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -523,6 +523,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index 1d2c084f0..b4d804758 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -520,6 +520,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php index 045762bed..ce483fa45 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php @@ -524,6 +524,7 @@ return [ 'invoice-missing' => 'Cet identifiant de facture n\'existe pas', 'transaction-saved' => 'La transaction a été enregistrée', 'already-paid' => 'Cette facture a déjà été payée', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/he/app.php b/packages/Webkul/Admin/src/Resources/lang/he/app.php index b402589e8..6c1dfc0ee 100755 --- a/packages/Webkul/Admin/src/Resources/lang/he/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/he/app.php @@ -525,6 +525,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php b/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php index 9d8e77997..084a35ca5 100644 --- a/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php @@ -522,6 +522,7 @@ return [ 'invoice-missing' => 'यह चालान आईडी मौजूद नहीं है', 'transaction-saved' => 'लेन-देन सहेजा गया है', 'already-paid' => 'इस चालान का भुगतान पहले ही किया जा चुका है', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index 2324e4c29..e3ed5e2a6 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -520,6 +520,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/ja/app.php b/packages/Webkul/Admin/src/Resources/lang/ja/app.php index 00bd643d0..fcc3a9294 100755 --- a/packages/Webkul/Admin/src/Resources/lang/ja/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ja/app.php @@ -525,6 +525,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index 5c6a0e880..9dd17092c 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -516,6 +516,7 @@ return [ 'invoice-missing' => 'Dit factuurnummer bestaat niet', 'transaction-saved' => 'De transactie is geregistreerd', 'already-paid' => 'Dit factuur is al voldaan', + 'transaction-amount-exceeds' => 'Het opgegeven bedrag van deze transactie overschrijdt het totaalbedrag van de factuur.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index 2afc850a9..feed3a577 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -516,6 +516,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index 659f139c9..f827aaf72 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -515,6 +515,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/ru/app.php b/packages/Webkul/Admin/src/Resources/lang/ru/app.php index b402589e8..6c1dfc0ee 100755 --- a/packages/Webkul/Admin/src/Resources/lang/ru/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ru/app.php @@ -525,6 +525,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/sin/app.php b/packages/Webkul/Admin/src/Resources/lang/sin/app.php index b402589e8..6c1dfc0ee 100755 --- a/packages/Webkul/Admin/src/Resources/lang/sin/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/sin/app.php @@ -525,6 +525,7 @@ return [ 'invoice-missing' => 'This invoice id does not exist', 'transaction-saved' => 'The transaction has been saved', 'already-paid' => 'This invoice has already been paid', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 173e3496c..a43eb0d77 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -516,6 +516,7 @@ return [ 'invoice-missing' => 'Bu fatura kimliği mevcut değil', 'transaction-saved' => 'İşlem kaydedildi', 'already-paid' => 'Bu fatura zaten ödendi', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php b/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php index 3b7874bf6..4de663efd 100644 --- a/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php @@ -516,6 +516,7 @@ return [ 'invoice-missing' => '此发票ID不存在', 'transaction-saved' => '交易已保存', 'already-paid' => '此发票已支付', + 'transaction-amount-exceeds' => 'The specified amount of this transaction exceeds the total amount of the invoice.', ], ], ],