- 09 Jun 2015, 10:14
#59977
Olá, tudo bem?
Eu comprei um módulo para descontos chamado Special Promotions, porém ele não estava aplicando os descontos, ai fui atras de descobrir o motivo, mas também não consegui, ai um amigo meu programador fez uma alteração no módulo que ele começou a funcionar, porém, quando aplicava o desconto, ele estava aplicando duplicadamente, por exemplo, se fosse pra ele descontar R$50,00 ele descontava R$100,00 e eu não estou sabendo onde encontrar este erro.
Eu vi que existem 3 lugares onde este módulo faz contas, um deles é a página do produto. Onde esta sendo inserido o seguinte código:
Obrigado
Eu comprei um módulo para descontos chamado Special Promotions, porém ele não estava aplicando os descontos, ai fui atras de descobrir o motivo, mas também não consegui, ai um amigo meu programador fez uma alteração no módulo que ele começou a funcionar, porém, quando aplicava o desconto, ele estava aplicando duplicadamente, por exemplo, se fosse pra ele descontar R$50,00 ele descontava R$100,00 e eu não estou sabendo onde encontrar este erro.
Eu vi que existem 3 lugares onde este módulo faz contas, um deles é a página do produto. Onde esta sendo inserido o seguinte código:
Código: Selecionar todos
Você tem ideia se existe algum erro ai?$this->load->model('module/special_promotions');
$sp_hints = $this->model_module_special_promotions->getHints($result['product_id']);
if ($sp_hints) {
foreach ($sp_hints as $sp_hint) {
if ($sp_hint['show_as_special']) {
if ($special) {
$price = $special;
if ($sp_hint['discount_method'] == '1') {
$special = $this->currency->format($this->tax->calculate(max(0, $result['special'] - $sp_hint['discount_amount']), $result['tax_class_id'], $this->config->get('config_tax')));
if (!empty($tax)) {
$tax = $this->currency->format((float)max(0, $result['special'] - $sp_hint['discount_amount']));
}
} elseif ($sp_hint['discount_method'] == '2') {
$special = $this->currency->format($this->tax->calculate(max(0, $sp_hint['discount_amount']), $result['tax_class_id'], $this->config->get('config_tax')));
if (!empty($tax)) {
$tax = $this->currency->format((float)max(0, $sp_hint['discount_amount']));
}
} else {
$special = $this->currency->format($this->tax->calculate(max(0, $result['special'] - $result['special'] / 100 * $sp_hint['discount_amount']), $result['tax_class_id'], $this->config->get('config_tax')));
if (!empty($tax)) {
$tax = $this->currency->format((float)max(0, $result['special'] - $result['special'] / 100 * $sp_hint['discount_amount']));
}
}
} elseif ($price) {
if ($sp_hint['discount_method'] == '1') {
$special = $this->currency->format($this->tax->calculate(max(0, $result['price'] - $sp_hint['discount_amount']), $result['tax_class_id'], $this->config->get('config_tax')));
if (!empty($tax)) {
$tax = $this->currency->format((float)max(0, $result['price'] - $sp_hint['discount_amount']));
}
} elseif ($sp_hint['discount_method'] == '2') {
$special = $this->currency->format($this->tax->calculate(max(0, $sp_hint['discount_amount']), $result['tax_class_id'], $this->config->get('config_tax')));
if (!empty($tax)) {
$tax = $this->currency->format((float)max(0, $sp_hint['discount_amount']));
}
} else {
$special = $this->currency->format($this->tax->calculate(max(0, $result['price'] - $result['price'] / 100 * $sp_hint['discount_amount']), $result['tax_class_id'], $this->config->get('config_tax')));
if (!empty($tax)) {
$tax = $this->currency->format((float)max(0, $result['price'] - $result['price'] / 100 * $sp_hint['discount_amount']));
}
}
}
break;
}
}
}
Obrigado