From a8f2ccd4da3eef756432f92df8d223e35bda7128 Mon Sep 17 00:00:00 2001 From: rGaillard Date: Thu, 4 Oct 2012 15:04:16 +0000 Subject: [PATCH] // fix tax computation on orderslips pdf --- classes/pdf/HTMLTemplateOrderSlip.php | 36 +++++++++++++++------------ 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/classes/pdf/HTMLTemplateOrderSlip.php b/classes/pdf/HTMLTemplateOrderSlip.php index e03637132..a19ac7302 100644 --- a/classes/pdf/HTMLTemplateOrderSlip.php +++ b/classes/pdf/HTMLTemplateOrderSlip.php @@ -96,7 +96,13 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice $this->order->total_shipping_tax_incl = $this->order->total_shipping_tax_excl = 0; if ($this->order_slip->partial == 1 && $this->order_slip->shipping_cost_amount > 0) - $this->order->total_shipping_tax_incl = $this->order->total_shipping_tax_excl = $this->order_slip->shipping_cost_amount; + $this->order->total_shipping_tax_incl = $this->order_slip->shipping_cost_amount; + + $tax = new Tax(); + $tax->rate = $this->order->carrier_tax_rate; + $tax_calculator = new TaxCalculator(array($tax)); + $this->order->total_shipping_tax_excl = Tools::ps_round($tax_calculator->removeTaxes($this->order_slip->shipping_cost_amount), 2); + $this->order->total_paid_tax_incl += $this->order->total_shipping_tax_incl; $this->order->total_paid_tax_excl += $this->order->total_shipping_tax_excl; @@ -158,6 +164,11 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice public function getProductTaxesBreakdown() { $tmp_tax_infos = array(); + $infos = array( + 'total_price_tax_excl' => 0, + 'total_amount' => 0 + ); + foreach ($this->order_slip->getOrdersSlipDetail((int)$this->order_slip->id) as $order_slip_details) { $tax_calculator = OrderDetail::getTaxCalculatorStatic((int)$order_slip_details['id_order_detail']); @@ -176,33 +187,26 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice } else { - $tmp_tax_infos[$tax->rate]['total_price_tax_excl'] += $order_slip_details['amount_tax_excl']; $tmp_tax_infos[$tax->rate]['total_amount'] += $amount; } } - } else { - $infos = array( - 'total_price_tax_excl' => 0, - 'total_amount' => 0 - ); - - $tax_rate = 0; - + } + else + { foreach ($tax_amount as $tax_id => $amount) { + $tax_rate = 0; + $tax = new Tax((int)$tax_id); - - $tax_rate += $tax->rate; - $infos['total_price_tax_excl'] += $order_slip_details['amount_tax_excl']; - $infos['total_amount'] += $amount; + $tax_rate = $tax->rate; + $infos['total_price_tax_excl'] += (float)Tools::ps_round($order_slip_details['amount_tax_excl'], 2); + $infos['total_amount'] += (float)Tools::ps_round($amount, 2); } - $tmp_tax_infos[(string)number_format($tax_rate, 3)] = $infos; } } - return $tmp_tax_infos; }