fixed document total issue
This commit is contained in:
parent
3af0787775
commit
c3c866580a
@ -159,7 +159,7 @@ class CreateDocumentItem extends Job implements HasOwner, HasSource, ShouldCreat
|
|||||||
$this->request['quantity'] = (double) $this->request['quantity'];
|
$this->request['quantity'] = (double) $this->request['quantity'];
|
||||||
$this->request['price'] = round($this->request['price'], $precision);
|
$this->request['price'] = round($this->request['price'], $precision);
|
||||||
$this->request['tax'] = round($item_tax_total, $precision);
|
$this->request['tax'] = round($item_tax_total, $precision);
|
||||||
$this->request['discount_type'] = !empty($this->request['discount_type']) ? $this->request['discount_type'] : 'percentage';
|
$this->request['discount_type'] = ! empty($this->request['discount_type']) ? $this->request['discount_type'] : null;
|
||||||
$this->request['discount_rate'] = !empty($this->request['discount']) ? $this->request['discount'] : 0;
|
$this->request['discount_rate'] = !empty($this->request['discount']) ? $this->request['discount'] : 0;
|
||||||
$this->request['total'] = round($actual_price_item, $precision);
|
$this->request['total'] = round($actual_price_item, $precision);
|
||||||
$this->request['created_from'] = $this->request['created_from'];
|
$this->request['created_from'] = $this->request['created_from'];
|
||||||
|
@ -68,7 +68,7 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
$sort_order++;
|
$sort_order++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($this->request['discount'])) {
|
if (! empty($this->request['discount'])) {
|
||||||
if ($this->request['discount_type'] === 'percentage') {
|
if ($this->request['discount_type'] === 'percentage') {
|
||||||
$discount_total = ($sub_total - $discount_amount_total) * ($this->request['discount'] / 100);
|
$discount_total = ($sub_total - $discount_amount_total) * ($this->request['discount'] / 100);
|
||||||
} else {
|
} else {
|
||||||
@ -91,7 +91,7 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add taxes
|
// Add taxes
|
||||||
if (!empty($taxes)) {
|
if (! empty($taxes)) {
|
||||||
foreach ($taxes as $tax) {
|
foreach ($taxes as $tax) {
|
||||||
DocumentTotal::create([
|
DocumentTotal::create([
|
||||||
'company_id' => $this->document->company_id,
|
'company_id' => $this->document->company_id,
|
||||||
@ -112,7 +112,7 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add extra totals, i.e. shipping fee
|
// Add extra totals, i.e. shipping fee
|
||||||
if (!empty($this->request['totals'])) {
|
if (! empty($this->request['totals'])) {
|
||||||
foreach ($this->request['totals'] as $total) {
|
foreach ($this->request['totals'] as $total) {
|
||||||
$total['company_id'] = $this->document->company_id;
|
$total['company_id'] = $this->document->company_id;
|
||||||
$total['type'] = $this->document->type;
|
$total['type'] = $this->document->type;
|
||||||
@ -166,14 +166,14 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
return [$sub_total, $actual_total, $discount_amount_total, $taxes];
|
return [$sub_total, $actual_total, $discount_amount_total, $taxes];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($this->request['discount']) && $this->request['discount_type'] !== 'percentage') {
|
if (! empty($this->request['discount']) && $this->request['discount_type'] !== 'percentage') {
|
||||||
$for_fixed_discount = $this->fixedDiscountCalculate();
|
$for_fixed_discount = $this->fixedDiscountCalculate();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ((array) $this->request['items'] as $key => $item) {
|
foreach ((array) $this->request['items'] as $key => $item) {
|
||||||
$item['global_discount'] = 0;
|
$item['global_discount'] = 0;
|
||||||
|
|
||||||
if (!empty($this->request['discount'])) {
|
if (! empty($this->request['discount'])) {
|
||||||
if (isset($for_fixed_discount)) {
|
if (isset($for_fixed_discount)) {
|
||||||
$item['global_discount'] = ($for_fixed_discount[$key] / ($for_fixed_discount['total'] / 100)) * ($this->request['discount'] / 100);
|
$item['global_discount'] = ($for_fixed_discount[$key] / ($for_fixed_discount['total'] / 100)) * ($this->request['discount'] / 100);
|
||||||
$item['global_discount_type'] = '';
|
$item['global_discount_type'] = '';
|
||||||
@ -198,7 +198,7 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
'enabled' => '1',
|
'enabled' => '1',
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!empty($item['tax_ids'])) {
|
if (! empty($item['tax_ids'])) {
|
||||||
$new_item_request['tax_ids'] = $item['tax_ids'];
|
$new_item_request['tax_ids'] = $item['tax_ids'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
|
|
||||||
$discount_amount = 0;
|
$discount_amount = 0;
|
||||||
|
|
||||||
if (!empty($item['discount'])) {
|
if (! empty($item['discount'])) {
|
||||||
if ($item['discount_type'] === 'percentage') {
|
if ($item['discount_type'] === 'percentage') {
|
||||||
$discount_amount = ($item_amount * ($item['discount'] / 100));
|
$discount_amount = ($item_amount * ($item['discount'] / 100));
|
||||||
} else {
|
} else {
|
||||||
@ -227,7 +227,18 @@ class CreateDocumentItemsAndTotals extends Job implements HasOwner, HasSource, S
|
|||||||
|
|
||||||
$discount_amount_total += $discount_amount;
|
$discount_amount_total += $discount_amount;
|
||||||
|
|
||||||
if (!$document_item->item_taxes) {
|
// Calculate global discount total
|
||||||
|
if (! empty($item['global_discount'])) {
|
||||||
|
if ($item['global_discount_type'] === 'percentage') {
|
||||||
|
$global_discount_amount = $document_item->total * ($item['global_discount'] / 100);
|
||||||
|
} else {
|
||||||
|
$global_discount_amount = $item['global_discount'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$actual_total -= $global_discount_amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $document_item->item_taxes) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user