diff --git a/admin-dev/themes/default/template/controllers/products/combinations.tpl b/admin-dev/themes/default/template/controllers/products/combinations.tpl
index 4640b42ae..b6fcb46c5 100644
--- a/admin-dev/themes/default/template/controllers/products/combinations.tpl
+++ b/admin-dev/themes/default/template/controllers/products/combinations.tpl
@@ -202,7 +202,7 @@
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_ecotax" type="default"}
-
+
|
{if $currency->format % 2 != 0}{$currency->sign}{/if}
diff --git a/classes/order/OrderDetail.php b/classes/order/OrderDetail.php
index b8b4aa73f..1854bde8a 100644
--- a/classes/order/OrderDetail.php
+++ b/classes/order/OrderDetail.php
@@ -472,7 +472,7 @@ class OrderDetailCore extends ObjectModel
$tax_manager = TaxManagerFactory::getManager($this->vat_address, $id_tax_rules);
$this->tax_calculator = $tax_manager->getTaxCalculator();
- $this->reduction_amount_tax_incl = $this->reduction_amount;
+ $this->reduction_amount_tax_incl = $this->reduction_amount;
$this->reduction_amount_tax_excl = Tools::ps_round($this->tax_calculator->removeTaxes($this->reduction_amount_tax_incl), 2);
break;
}
diff --git a/classes/order/OrderInvoice.php b/classes/order/OrderInvoice.php
index f64b19002..d8bb629e2 100644
--- a/classes/order/OrderInvoice.php
+++ b/classes/order/OrderInvoice.php
@@ -302,7 +302,7 @@ class OrderInvoiceCore extends ObjectModel
{
// sum by order details in order to retrieve real taxes rate
$taxes_infos = Db::getInstance()->executeS('
- SELECT odt.`id_order_detail`, t.`rate` AS `name`, SUM(od.`total_price_tax_excl`) AS total_price_tax_excl, SUM(t.`rate`) AS rate, SUM(`total_amount`) AS `total_amount`
+ SELECT odt.`id_order_detail`, t.`rate` AS `name`, SUM(od.`total_price_tax_excl`) AS total_price_tax_excl, SUM(t.`rate`) AS rate, SUM(`total_amount`) AS `total_amount`, od.`ecotax`, od.`ecotax_tax_rate`
FROM `'._DB_PREFIX_.'order_detail_tax` odt
LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = odt.`id_tax`)
LEFT JOIN `'._DB_PREFIX_.'order_detail` od ON (od.`id_order_detail` = odt.`id_order_detail`)
@@ -324,10 +324,9 @@ class OrderInvoiceCore extends ObjectModel
$ratio = $tax_infos['total_price_tax_excl'] / $this->total_products;
$order_reduction_amount = $this->total_discount_tax_excl * $ratio;
-
- $tmp_tax_infos[$tax_infos['rate']]['total_amount'] += $tax_infos['total_amount'];
+ $tmp_tax_infos[$tax_infos['rate']]['total_amount'] += ($tax_infos['total_amount'] - Tools::ps_round($tax_infos['ecotax'] * $tax_infos['ecotax_tax_rate'] / 100, 2));
$tmp_tax_infos[$tax_infos['rate']]['name'] = $tax_infos['name'];
- $tmp_tax_infos[$tax_infos['rate']]['total_price_tax_excl'] += ($tax_infos['total_price_tax_excl'] - $order_reduction_amount);
+ $tmp_tax_infos[$tax_infos['rate']]['total_price_tax_excl'] += ($tax_infos['total_price_tax_excl'] - $order_reduction_amount - $tax_infos['ecotax']);
}
}
@@ -381,7 +380,7 @@ class OrderInvoiceCore extends ObjectModel
*/
public function getEcoTaxTaxesBreakdown()
{
- return Db::getInstance()->executeS('
+ $res = Db::getInstance()->executeS('
SELECT `ecotax_tax_rate` as `rate`, SUM(`ecotax`) as `ecotax_tax_excl`, SUM(`ecotax`) as `ecotax_tax_incl`
FROM `'._DB_PREFIX_.'order_detail`
WHERE `id_order` = '.(int)$this->id_order.'
@@ -389,6 +388,11 @@ class OrderInvoiceCore extends ObjectModel
GROUP BY `ecotax_tax_rate`'
);
+ if ($res)
+ foreach ($res as &$row)
+ $row['ecotax_tax_incl'] = Tools::ps_round($row['ecotax_tax_excl'] + ($row['ecotax_tax_excl'] * $row['rate'] / 100), 2);
+
+ return $res;
}
/**
|