Example #1
0
 public function _place(Mage_Sales_Model_Order_Payment $payment, $amount)
 {
     $order = $payment->getOrder();
     $items = Mage::helper('iugu')->getItemsFromOrder($payment->getOrder());
     $payer = Mage::helper('iugu')->getPayerInfoFromOrder($payment->getOrder());
     $data = new Varien_Object();
     $data->setMethod(Inovarti_Iugu_Model_Api::PAYMENT_METHOD_BOLETO)->setEmail($order->getCustomerEmail())->setItems($items)->setPayer($payer)->setNotificationUrl(Mage::getUrl('iugu/notification'));
     // Discount
     if ($order->getBaseDiscountAmount()) {
         $data->setDiscountCents(Mage::helper('iugu')->formatAmount(abs($order->getBaseDiscountAmount())));
     }
     // Tax
     if ($order->getBaseTaxAmount()) {
         $data->setTaxCents($this->formatAmount($order->getBaseTaxAmount()));
     }
     $result = Mage::getSingleton('iugu/api')->charge($data);
     if ($result->getErrors()) {
         $messages = array();
         if (is_array($result->getErrors())) {
             foreach ($result->getErrors() as $field => $errors) {
                 foreach ($errors as $error) {
                     $messages[] = $field . ': ' . $error . '.';
                 }
             }
         } else {
             $messages[] = $result->getErrors();
         }
         Mage::throwException(implode("\n", $messages));
     }
     // iugu info
     $payment->setIuguInvoiceId($result->getInvoiceId())->setIuguUrl($result->getUrl())->setIuguPdf($result->getPdf());
     return $this;
 }