From 618027dcd80ec657920a84c50c27519cf3f8e398 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 15 Sep 2021 10:00:29 +1000 Subject: [PATCH] Add gross line and subtotals --- app/DataMapper/CompanySettings.php | 3 +++ app/Helpers/Invoice/InvoiceItemSum.php | 4 ++-- app/Helpers/Invoice/InvoiceItemSumInclusive.php | 5 +++++ app/Utils/HtmlEngine.php | 2 ++ app/Utils/Traits/MakesInvoiceValues.php | 1 + tests/Unit/InvoiceTest.php | 2 ++ 6 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/DataMapper/CompanySettings.php b/app/DataMapper/CompanySettings.php index 288a0a60a8d0..8b7bf4c6ff30 100644 --- a/app/DataMapper/CompanySettings.php +++ b/app/DataMapper/CompanySettings.php @@ -654,6 +654,7 @@ class CompanySettings extends BaseSettings '$product.discount', '$product.tax', '$product.line_total', + '$product.gross_line_total', ], 'task_columns' =>[ '$task.service', @@ -663,9 +664,11 @@ class CompanySettings extends BaseSettings '$task.discount', '$task.tax', '$task.line_total', + '$task.gross_line_total', ], 'total_columns' => [ '$net_subtotal', + '$gross_subtotal', '$subtotal', '$discount', '$custom_surcharge1', diff --git a/app/Helpers/Invoice/InvoiceItemSum.php b/app/Helpers/Invoice/InvoiceItemSum.php index e796e98aea4c..ba20fb2712b1 100644 --- a/app/Helpers/Invoice/InvoiceItemSum.php +++ b/app/Helpers/Invoice/InvoiceItemSum.php @@ -150,7 +150,6 @@ class InvoiceItemSum if($item_tax_rate3_total != 0) $this->groupTax($this->item->tax_name3, $this->item->tax_rate3, $item_tax_rate3_total); - $this->setTotalTaxes($this->formatValue($item_tax, $this->currency->precision)); @@ -223,7 +222,7 @@ class InvoiceItemSum public function getGrossSubTotal() { - return $this->gross_line_total; + return $this->gross_sub_total; } public function setSubTotal($value) @@ -281,6 +280,7 @@ class InvoiceItemSum if ($item_tax_rate3_total != 0) { $this->groupTax($this->item->tax_name3, $this->item->tax_rate3, $item_tax_rate3_total); } + } $this->setTotalTaxes($item_tax); diff --git a/app/Helpers/Invoice/InvoiceItemSumInclusive.php b/app/Helpers/Invoice/InvoiceItemSumInclusive.php index c65d0a520a9f..469603f9cbe3 100644 --- a/app/Helpers/Invoice/InvoiceItemSumInclusive.php +++ b/app/Helpers/Invoice/InvoiceItemSumInclusive.php @@ -199,6 +199,11 @@ class InvoiceItemSumInclusive return $this->sub_total; } + public function getGrossSubTotal() + { + return $this->sub_total; + } + public function setSubTotal($value) { $this->sub_total = $value; diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index f8cd26f91acb..a678ce62721e 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -381,6 +381,7 @@ class HtmlEngine $data['$product.tax_name2'] = ['value' => '', 'label' => ctrans('texts.tax')]; $data['$product.tax_name3'] = ['value' => '', 'label' => ctrans('texts.tax')]; $data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')]; + $data['$product.gross_line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')]; $data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')]; $data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')]; $data['$product.product1'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'product1')]; @@ -400,6 +401,7 @@ class HtmlEngine $data['$task.tax_name2'] = ['value' => '', 'label' => ctrans('texts.tax')]; $data['$task.tax_name3'] = ['value' => '', 'label' => ctrans('texts.tax')]; $data['$task.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')]; + $data['$task.gross_line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')]; $data['$task.service'] = ['value' => '', 'label' => ctrans('texts.service')]; $data['$task.task1'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'task1')]; $data['$task.task2'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'task2')]; diff --git a/app/Utils/Traits/MakesInvoiceValues.php b/app/Utils/Traits/MakesInvoiceValues.php index c51486aa3237..f9813ef96595 100644 --- a/app/Utils/Traits/MakesInvoiceValues.php +++ b/app/Utils/Traits/MakesInvoiceValues.php @@ -311,6 +311,7 @@ trait MakesInvoiceValues $data[$key][$table_type.'.cost'] = Number::formatMoney($item->cost, $this->client); $data[$key][$table_type.'.line_total'] = Number::formatMoney($item->line_total, $this->client); + $data[$key][$table_type.'.gross_line_total'] = Number::formatMoney($item->gross_line_total, $this->client); if (isset($item->discount) && $item->discount > 0) { if ($item->is_amount_discount) { diff --git a/tests/Unit/InvoiceTest.php b/tests/Unit/InvoiceTest.php index 034d27a16c7c..233403634f28 100644 --- a/tests/Unit/InvoiceTest.php +++ b/tests/Unit/InvoiceTest.php @@ -123,6 +123,7 @@ class InvoiceTest extends TestCase $this->invoice_calc->build(); $this->assertEquals($this->invoice_calc->getSubTotal(), 20); + // $this->assertEquals($this->invoice_calc->getGrossSubTotal(), 22); //$this->assertEquals($this->invoice_calc->getTotal(), 21.5); //$this->assertEquals($this->invoice_calc->getBalance(), 21.5); //$this->assertEquals($this->invoice_calc->getTotalTaxes(), 1.5); @@ -216,6 +217,7 @@ class InvoiceTest extends TestCase $this->invoice_calc->build(); $this->assertEquals($this->invoice_calc->getSubTotal(), 20); + $this->assertEquals($this->invoice_calc->getGrossSubTotal(), 22); //$this->assertEquals($this->invoice_calc->getTotal(), 26); //$this->assertEquals($this->invoice_calc->getBalance(), 26); //$this->assertEquals($this->invoice_calc->getTotalTaxes(), 4);