Preço redondo após aplicação de impostos
-
29-09-2020 - |
Pergunta
Na minha loja, CE 1.9.2.2, gostaria de arredondar os preços após a aplicação dos impostos.Exemplo:Tenho um produto com preço 160,50 sem impostos aplicados.Para alguns clientes a loja aplica uma regra fiscal que aumenta o preço em 22%.Assim, após o cálculo do imposto, o preço daquele determinado produto passa a ser 195,81.Para esses clientes eu gostaria que o produto custasse 196,00 deixando 160,50 para clientes que não possuem o cálculo do imposto aplicado.
É possível conseguir isso de alguma forma no Magento?
Solução
Eu consegui fazer isso.Foi assim que consegui.
tive que estender o Mage_Tax_Model_Calculation
classe e reescrever a lógica na calcTaxAmount
método.
public function calcTaxAmount($price, $taxRate, $priceIncludeTax = false, $round = true)
{
$taxRate = $taxRate / 100;
if ($priceIncludeTax) {
$amount = $price * (1 - 1 / (1 + $taxRate));
} else {
$amount = $price * $taxRate;
}
$taxedPrice = $price + $amount;
$amount += round($taxedPrice) - $taxedPrice;
if ($round) {
return $this->round($amount);
}
return $amount;
}
Acabei de adicionar as duas linhas:
$taxedPrice = $price + $amount;
$amount += round($taxedPrice) - $taxedPrice;
somar ao valor do imposto a diferença entre o preço tributado e o preço tributado arredondado.