Example #1
0
 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;
 }