public function assignData($data) { if (!$data instanceof Varien_Object) { $data = new Varien_Object($data); } $info = $this->getInfoInstance(); //zera os juros para evitar erros $info->getQuote()->setJuros(0.0); $info->getQuote()->setBaseJuros(0.0); $info->getQuote()->getShippingAddress()->setJuros(0.0); $info->getQuote()->getShippingAddress()->setBaseJuros(0.0); $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals(); //zera o valor do desconto para evitar erros $info->getQuote()->setDesconto(0.0); $info->getQuote()->setBaseDesconto(0.0); $info->getQuote()->getShippingAddress()->setDesconto(0.0); $info->getQuote()->getShippingAddress()->setBaseDesconto(0.0); $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals(); $info->setCcType($data->getBandeiraCielo())->setAdditionalData($data->getParcelasCielo())->setCcOwner($data->getPortadorCielo())->setCcLast4(substr($data->getNumeroCartaoCielo(), -4))->setCcExpMonth($data->getExpiracaoMesCielo())->setCcExpYear($data->getExpiracaoAnoCielo())->setCcCid($info->encrypt($data->getCodigoSegurancaCielo()))->setCcNumber($info->encrypt(str_replace(' ', '', $data->getNumeroCartaoCielo()))); $parcela = $data->getParcelasCielo(); $valorTotal = $info->getQuote()->getGrandTotal(); // $valorDesconto = Mage::helper('apelidocielo')->getDiscountAmount($parcela,$valorTotal); /* if($valorDesconto > 0): // Mage::helper('apelidocielo')->setDiscountQuote($info,$valorDesconto); endif;*/ //verifica se tem juros e aplica no carrinho. Se o retorno do getJurosAmount for maior que 0, aplica no quote. $valorJuros = Mage::helper('apelidocielo')->getJurosAmount($parcela, $valorTotal); $valorDesconto = -Mage::helper('apelidocielo')->getDiscountAmount($parcela, $valorTotal); if ($valorJuros > 0) { $info->getQuote()->setJuros($valorJuros); $info->getQuote()->setBaseJuros($valorJuros); $info->getQuote()->getShippingAddress()->setJuros($valorJuros); $info->getQuote()->getShippingAddress()->setBaseJuros($valorJuros); $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals(); } else { $info->getQuote()->setJuros(0.0); $info->getQuote()->setBaseJuros(0.0); $info->getQuote()->getShippingAddress()->setJuros(0.0); $info->getQuote()->getShippingAddress()->setBaseJuros(0.0); $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals(); } if ($valorDesconto < 0) { $info->getQuote()->setDesconto($valorDesconto); $info->getQuote()->setBaseDesconto($valorDesconto); $info->getQuote()->getShippingAddress()->setDesconto($valorDesconto); $info->getQuote()->getShippingAddress()->setBaseDesconto($valorDesconto); $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals(); } else { $info->getQuote()->setDesconto(0.0); $info->getQuote()->setBaseDesconto(0.0); $info->getQuote()->getShippingAddress()->setDesconto(0.0); $info->getQuote()->getShippingAddress()->setBaseDesconto(0.0); $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals(); } $info->getQuote()->save(); return $this; }