// fix tax computation on orderslips pdf

This commit is contained in:
rGaillard
2012-10-04 15:04:16 +00:00
parent 84af018aa6
commit a8f2ccd4da
+20 -16
View File
@@ -96,7 +96,13 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice
$this->order->total_shipping_tax_incl = $this->order->total_shipping_tax_excl = 0; $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) 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_incl += $this->order->total_shipping_tax_incl;
$this->order->total_paid_tax_excl += $this->order->total_shipping_tax_excl; $this->order->total_paid_tax_excl += $this->order->total_shipping_tax_excl;
@@ -158,6 +164,11 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice
public function getProductTaxesBreakdown() public function getProductTaxesBreakdown()
{ {
$tmp_tax_infos = array(); $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) 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']); $tax_calculator = OrderDetail::getTaxCalculatorStatic((int)$order_slip_details['id_order_detail']);
@@ -176,33 +187,26 @@ class HTMLTemplateOrderSlipCore extends HTMLTemplateInvoice
} }
else else
{ {
$tmp_tax_infos[$tax->rate]['total_price_tax_excl'] += $order_slip_details['amount_tax_excl']; $tmp_tax_infos[$tax->rate]['total_price_tax_excl'] += $order_slip_details['amount_tax_excl'];
$tmp_tax_infos[$tax->rate]['total_amount'] += $amount; $tmp_tax_infos[$tax->rate]['total_amount'] += $amount;
} }
} }
} else { }
$infos = array( else
'total_price_tax_excl' => 0, {
'total_amount' => 0
);
$tax_rate = 0;
foreach ($tax_amount as $tax_id => $amount) foreach ($tax_amount as $tax_id => $amount)
{ {
$tax_rate = 0;
$tax = new Tax((int)$tax_id); $tax = new Tax((int)$tax_id);
$tax_rate = $tax->rate;
$tax_rate += $tax->rate; $infos['total_price_tax_excl'] += (float)Tools::ps_round($order_slip_details['amount_tax_excl'], 2);
$infos['total_price_tax_excl'] += $order_slip_details['amount_tax_excl']; $infos['total_amount'] += (float)Tools::ps_round($amount, 2);
$infos['total_amount'] += $amount;
} }
$tmp_tax_infos[(string)number_format($tax_rate, 3)] = $infos; $tmp_tax_infos[(string)number_format($tax_rate, 3)] = $infos;
} }
} }
return $tmp_tax_infos; return $tmp_tax_infos;
} }