From ac3033c3a9880417c1a5e35852a14b0161cdf65b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 8 Apr 2024 20:32:12 +1000 Subject: [PATCH] Fixes for surcharge taxes --- app/Helpers/Invoice/CustomValuer.php | 1 + app/Helpers/Invoice/InvoiceSumInclusive.php | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/app/Helpers/Invoice/CustomValuer.php b/app/Helpers/Invoice/CustomValuer.php index e12df5bcf0da..535a1369c698 100644 --- a/app/Helpers/Invoice/CustomValuer.php +++ b/app/Helpers/Invoice/CustomValuer.php @@ -27,6 +27,7 @@ trait CustomValuer public function valuerTax($custom_value, $has_custom_invoice_taxes) { + if (isset($custom_value) && is_numeric($custom_value) && $has_custom_invoice_taxes) { return round($custom_value * ($this->invoice->tax_rate1 / 100), 2) + round($custom_value * ($this->invoice->tax_rate2 / 100), 2) + round($custom_value * ($this->invoice->tax_rate3 / 100), 2); } diff --git a/app/Helpers/Invoice/InvoiceSumInclusive.php b/app/Helpers/Invoice/InvoiceSumInclusive.php index aae9c0848198..81028da5ebfa 100644 --- a/app/Helpers/Invoice/InvoiceSumInclusive.php +++ b/app/Helpers/Invoice/InvoiceSumInclusive.php @@ -135,6 +135,25 @@ class InvoiceSumInclusive $amount = $this->formatValue(($this->sub_total - ($this->sub_total * ($this->invoice->discount / 100))), 2); } + //Handles cases where the surcharge is not taxed + if(is_numeric($this->invoice->custom_surcharge1) && $this->invoice->custom_surcharge1 > 0 && !$this->invoice->custom_surcharge_tax1) { + $amount -= $this->invoice->custom_surcharge1; + } + + if(is_numeric($this->invoice->custom_surcharge2) && $this->invoice->custom_surcharge2 > 0 && !$this->invoice->custom_surcharge_tax2) { + $amount -= $this->invoice->custom_surcharge2; + } + + if(is_numeric($this->invoice->custom_surcharge3) && $this->invoice->custom_surcharge3 > 0 && !$this->invoice->custom_surcharge_tax3) { + $amount -= $this->invoice->custom_surcharge3; + } + + if(is_numeric($this->invoice->custom_surcharge4) && $this->invoice->custom_surcharge4 > 0 && !$this->invoice->custom_surcharge_tax4) { + $amount -= $this->invoice->custom_surcharge4; + } + + + if (is_string($this->invoice->tax_name1) && strlen($this->invoice->tax_name1) > 1) { $tax = $this->calcInclusiveLineTax($this->invoice->tax_rate1, $amount); $this->total_taxes += $tax;