From 76cc091ce9d3e5a60e925c0038a3b661d1d17e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihan=20=C5=9Eent=C3=BCrk?= Date: Sun, 19 Apr 2020 01:06:00 +0300 Subject: [PATCH] close #1408 Fixed: Total discount saved as line discount --- app/Jobs/Purchase/CreateBill.php | 9 +++++---- app/Jobs/Purchase/CreateBillItem.php | 2 +- app/Jobs/Purchase/UpdateBill.php | 9 +++++---- app/Jobs/Sale/CreateInvoice.php | 9 +++++---- app/Jobs/Sale/CreateInvoiceItem.php | 2 +- app/Jobs/Sale/UpdateInvoice.php | 9 +++++---- resources/assets/js/views/purchases/bills.js | 4 +++- resources/assets/js/views/sales/invoices.js | 4 +++- 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/app/Jobs/Purchase/CreateBill.php b/app/Jobs/Purchase/CreateBill.php index 873ce7521..7d8ec7406 100644 --- a/app/Jobs/Purchase/CreateBill.php +++ b/app/Jobs/Purchase/CreateBill.php @@ -179,15 +179,16 @@ class CreateBill extends Job } foreach ((array) $this->request['items'] as $item) { - if (empty($item['discount'])) { - $item['discount'] = !empty($this->request['discount']) ? !empty($this->request['discount']) : 0; - } $bill_item = $this->dispatch(new CreateBillItem($item, $this->bill)); $item_amount = (double) $item['price'] * (double) $item['quantity']; - $discount_amount = ($item_amount * ($item['discount'] / 100)); + $discount_amount = 0; + + if (!empty($item['discount'])) { + $discount_amount = ($item_amount * ($item['discount'] / 100)); + } // Calculate totals $sub_total += $bill_item->total + $discount_amount; diff --git a/app/Jobs/Purchase/CreateBillItem.php b/app/Jobs/Purchase/CreateBillItem.php index 99307d45f..a6071e824 100644 --- a/app/Jobs/Purchase/CreateBillItem.php +++ b/app/Jobs/Purchase/CreateBillItem.php @@ -138,7 +138,7 @@ class CreateBillItem extends Job 'quantity' => (double) $this->request['quantity'], 'price' => (double) $this->request['price'], 'tax' => $item_tax_total, - 'discount_rate' => $this->request['discount'], + 'discount_rate' => !empty($this->request['discount']) ? $this->request['discount'] : 0, 'total' => $item_amount, ]); diff --git a/app/Jobs/Purchase/UpdateBill.php b/app/Jobs/Purchase/UpdateBill.php index 96c45c685..9c20c8746 100644 --- a/app/Jobs/Purchase/UpdateBill.php +++ b/app/Jobs/Purchase/UpdateBill.php @@ -193,15 +193,16 @@ class UpdateBill extends Job $this->deleteRelationships($this->bill, ['items', 'item_taxes']); foreach ((array) $this->request['items'] as $item) { - if (empty($item['discount'])) { - $item['discount'] = !empty($this->request['discount']) ? !empty($this->request['discount']) : 0; - } $bill_item = $this->dispatch(new CreateBillItem($item, $this->bill)); $item_amount = (double) $item['price'] * (double) $item['quantity']; - $discount_amount = ($item_amount * ($item['discount'] / 100)); + $discount_amount = 0; + + if (!empty($item['discount'])) { + $discount_amount = ($item_amount * ($item['discount'] / 100)); + } // Calculate totals $sub_total += $bill_item->total + $discount_amount; diff --git a/app/Jobs/Sale/CreateInvoice.php b/app/Jobs/Sale/CreateInvoice.php index b551d4051..4ceb98812 100644 --- a/app/Jobs/Sale/CreateInvoice.php +++ b/app/Jobs/Sale/CreateInvoice.php @@ -179,15 +179,16 @@ class CreateInvoice extends Job } foreach ((array) $this->request['items'] as $item) { - if (empty($item['discount'])) { - $item['discount'] = !empty($this->request['discount']) ? !empty($this->request['discount']) : 0; - } $invoice_item = $this->dispatch(new CreateInvoiceItem($item, $this->invoice)); $item_amount = (double) $item['price'] * (double) $item['quantity']; - $discount_amount = ($item_amount * ($item['discount'] / 100)); + $discount_amount = 0; + + if (!empty($item['discount'])) { + $discount_amount = ($item_amount * ($item['discount'] / 100)); + } // Calculate totals $sub_total += $invoice_item->total + $discount_amount; diff --git a/app/Jobs/Sale/CreateInvoiceItem.php b/app/Jobs/Sale/CreateInvoiceItem.php index fc6994dd2..78ba82747 100644 --- a/app/Jobs/Sale/CreateInvoiceItem.php +++ b/app/Jobs/Sale/CreateInvoiceItem.php @@ -138,7 +138,7 @@ class CreateInvoiceItem extends Job 'quantity' => (double) $this->request['quantity'], 'price' => (double) $this->request['price'], 'tax' => $item_tax_total, - 'discount_rate' => $this->request['discount'], + 'discount_rate' => !empty($this->request['discount']) ? $this->request['discount'] : 0, 'total' => $item_amount, ]); diff --git a/app/Jobs/Sale/UpdateInvoice.php b/app/Jobs/Sale/UpdateInvoice.php index 738208aa5..66a1d1258 100644 --- a/app/Jobs/Sale/UpdateInvoice.php +++ b/app/Jobs/Sale/UpdateInvoice.php @@ -193,15 +193,16 @@ class UpdateInvoice extends Job $this->deleteRelationships($this->invoice, ['items', 'item_taxes']); foreach ((array) $this->request['items'] as $item) { - if (empty($item['discount'])) { - $item['discount'] = !empty($this->request['discount']) ? !empty($this->request['discount']) : 0; - } $invoice_item = $this->dispatch(new CreateInvoiceItem($item, $this->invoice)); $item_amount = (double) $item['price'] * (double) $item['quantity']; - $discount_amount = ($item_amount * ($item['discount'] / 100)); + $discount_amount = 0; + + if (!empty($item['discount'])) { + $discount_amount = ($item_amount * ($item['discount'] / 100)); + } // Calculate totals $sub_total += $invoice_item->total + $discount_amount; diff --git a/resources/assets/js/views/purchases/bills.js b/resources/assets/js/views/purchases/bills.js index 1a1fc8c61..3a1f4ebfe 100644 --- a/resources/assets/js/views/purchases/bills.js +++ b/resources/assets/js/views/purchases/bills.js @@ -69,7 +69,9 @@ const app = new Vue({ if (typeof bill_items !== 'undefined' && bill_items) { let items = []; + let item_backup = this.form.item_backup[0]; let currency_code = this.form.currency_code; + this.edit.status = true; bill_items.forEach(function(item) { @@ -81,7 +83,7 @@ const app = new Vue({ price: (item.price).toFixed(2), quantity: item.quantity, tax_id: item.tax_id, - discount: item.discount_rate, + discount: (typeof item_backup.discount !== 'undefined') ? item.discount_rate : 0, total: (item.total).toFixed(2) }); }); diff --git a/resources/assets/js/views/sales/invoices.js b/resources/assets/js/views/sales/invoices.js index f4c42462c..175ee6644 100644 --- a/resources/assets/js/views/sales/invoices.js +++ b/resources/assets/js/views/sales/invoices.js @@ -69,7 +69,9 @@ const app = new Vue({ if (typeof invoice_items !== 'undefined' && invoice_items) { let items = []; + let item_backup = this.form.item_backup[0]; let currency_code = this.form.currency_code; + this.edit.status = true; invoice_items.forEach(function(item) { @@ -81,7 +83,7 @@ const app = new Vue({ price: (item.price).toFixed(2), quantity: item.quantity, tax_id: item.tax_id, - discount: item.discount_rate, + discount: (typeof item_backup.discount !== 'undefined') ? item.discount_rate : 0, total: (item.total).toFixed(2) }); });