close #1408 Fixed: Total discount saved as line discount

This commit is contained in:
Cihan Şentürk 2020-04-19 01:06:00 +03:00
parent 71b1cfa56a
commit 76cc091ce9
8 changed files with 28 additions and 20 deletions

View File

@ -179,15 +179,16 @@ class CreateBill extends Job
} }
foreach ((array) $this->request['items'] as $item) { 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)); $bill_item = $this->dispatch(new CreateBillItem($item, $this->bill));
$item_amount = (double) $item['price'] * (double) $item['quantity']; $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 // Calculate totals
$sub_total += $bill_item->total + $discount_amount; $sub_total += $bill_item->total + $discount_amount;

View File

@ -138,7 +138,7 @@ class CreateBillItem extends Job
'quantity' => (double) $this->request['quantity'], 'quantity' => (double) $this->request['quantity'],
'price' => (double) $this->request['price'], 'price' => (double) $this->request['price'],
'tax' => $item_tax_total, 'tax' => $item_tax_total,
'discount_rate' => $this->request['discount'], 'discount_rate' => !empty($this->request['discount']) ? $this->request['discount'] : 0,
'total' => $item_amount, 'total' => $item_amount,
]); ]);

View File

@ -193,15 +193,16 @@ class UpdateBill extends Job
$this->deleteRelationships($this->bill, ['items', 'item_taxes']); $this->deleteRelationships($this->bill, ['items', 'item_taxes']);
foreach ((array) $this->request['items'] as $item) { 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)); $bill_item = $this->dispatch(new CreateBillItem($item, $this->bill));
$item_amount = (double) $item['price'] * (double) $item['quantity']; $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 // Calculate totals
$sub_total += $bill_item->total + $discount_amount; $sub_total += $bill_item->total + $discount_amount;

View File

@ -179,15 +179,16 @@ class CreateInvoice extends Job
} }
foreach ((array) $this->request['items'] as $item) { 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)); $invoice_item = $this->dispatch(new CreateInvoiceItem($item, $this->invoice));
$item_amount = (double) $item['price'] * (double) $item['quantity']; $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 // Calculate totals
$sub_total += $invoice_item->total + $discount_amount; $sub_total += $invoice_item->total + $discount_amount;

View File

@ -138,7 +138,7 @@ class CreateInvoiceItem extends Job
'quantity' => (double) $this->request['quantity'], 'quantity' => (double) $this->request['quantity'],
'price' => (double) $this->request['price'], 'price' => (double) $this->request['price'],
'tax' => $item_tax_total, 'tax' => $item_tax_total,
'discount_rate' => $this->request['discount'], 'discount_rate' => !empty($this->request['discount']) ? $this->request['discount'] : 0,
'total' => $item_amount, 'total' => $item_amount,
]); ]);

View File

@ -193,15 +193,16 @@ class UpdateInvoice extends Job
$this->deleteRelationships($this->invoice, ['items', 'item_taxes']); $this->deleteRelationships($this->invoice, ['items', 'item_taxes']);
foreach ((array) $this->request['items'] as $item) { 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)); $invoice_item = $this->dispatch(new CreateInvoiceItem($item, $this->invoice));
$item_amount = (double) $item['price'] * (double) $item['quantity']; $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 // Calculate totals
$sub_total += $invoice_item->total + $discount_amount; $sub_total += $invoice_item->total + $discount_amount;

View File

@ -69,7 +69,9 @@ const app = new Vue({
if (typeof bill_items !== 'undefined' && bill_items) { if (typeof bill_items !== 'undefined' && bill_items) {
let items = []; let items = [];
let item_backup = this.form.item_backup[0];
let currency_code = this.form.currency_code; let currency_code = this.form.currency_code;
this.edit.status = true; this.edit.status = true;
bill_items.forEach(function(item) { bill_items.forEach(function(item) {
@ -81,7 +83,7 @@ const app = new Vue({
price: (item.price).toFixed(2), price: (item.price).toFixed(2),
quantity: item.quantity, quantity: item.quantity,
tax_id: item.tax_id, tax_id: item.tax_id,
discount: item.discount_rate, discount: (typeof item_backup.discount !== 'undefined') ? item.discount_rate : 0,
total: (item.total).toFixed(2) total: (item.total).toFixed(2)
}); });
}); });

View File

@ -69,7 +69,9 @@ const app = new Vue({
if (typeof invoice_items !== 'undefined' && invoice_items) { if (typeof invoice_items !== 'undefined' && invoice_items) {
let items = []; let items = [];
let item_backup = this.form.item_backup[0];
let currency_code = this.form.currency_code; let currency_code = this.form.currency_code;
this.edit.status = true; this.edit.status = true;
invoice_items.forEach(function(item) { invoice_items.forEach(function(item) {
@ -81,7 +83,7 @@ const app = new Vue({
price: (item.price).toFixed(2), price: (item.price).toFixed(2),
quantity: item.quantity, quantity: item.quantity,
tax_id: item.tax_id, tax_id: item.tax_id,
discount: item.discount_rate, discount: (typeof item_backup.discount !== 'undefined') ? item.discount_rate : 0,
total: (item.total).toFixed(2) total: (item.total).toFixed(2)
}); });
}); });