Beispiel #1
0
 /**
  * Set entity
  *
  * @param Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @return $this
  */
 public function setEntity($object)
 {
     $this->setEntityId($object->getId());
     $this->setEntityIncrementId($object->getIncrementId());
     $this->setStoreId($object->getStoreId());
     return $this;
 }
Beispiel #2
0
 /**
  * Save order in AvaTax system
  *
  * @see OnePica_AvaTax_Model_Observer_SalesOrderInvoiceSaveAfter::execute()
  * @param Mage_Sales_Model_Order_Invoice $invoice
  * @param OnePica_AvaTax_Model_Records_Queue $queue
  * @return OnePica_AvaTax_Model_Service_Result_Invoice
  */
 public function invoice($invoice, $queue)
 {
     $this->_lines = array();
     $order = $invoice->getOrder();
     $storeId = $order->getStoreId();
     $invoiceDate = $this->_convertGmtDate($invoice->getCreatedAt(), $storeId);
     $orderDate = $this->_convertGmtDate($order->getCreatedAt(), $storeId);
     $statusDate = $this->_convertGmtDate($queue->getUpdatedAt(), $storeId);
     $shippingAddress = $order->getShippingAddress() ? $order->getShippingAddress() : $order->getBillingAddress();
     $this->_request = new GetTaxRequest();
     $this->_request->setDocCode($invoice->getIncrementId());
     $this->_request->setDocType(DocumentType::$SalesInvoice);
     $this->_addGeneralInfo($order);
     $this->_addShipping($invoice);
     $items = $invoice->getItemsCollection();
     $this->_initProductCollection($items);
     $this->_initTaxClassCollection($invoice);
     //Added code for calculating tax for giftwrap items
     $this->_addGwOrderAmount($invoice);
     $this->_addGwItemsAmount($invoice);
     $this->_addGwPrintedCardAmount($invoice);
     $this->_setOriginAddress($order->getStoreId());
     $this->_setDestinationAddress($shippingAddress);
     $this->_request->setDocDate($invoiceDate);
     $this->_request->setPaymentDate($invoiceDate);
     $this->_request->setTaxDate($orderDate);
     $this->_request->setStatusDate($statusDate);
     $configAction = Mage::getStoreConfig('tax/avatax/action', $order->getStoreId());
     $commitAction = OnePica_AvaTax_Model_Service_Abstract_Config::ACTION_CALC_SUBMIT_COMMIT;
     $this->_request->setCommit($configAction == $commitAction ? true : false);
     foreach ($items as $item) {
         /** @var Mage_Sales_Model_Order_Invoice_Item $item */
         $this->_newLine($item);
     }
     $this->_request->setLines($this->_lines);
     //send to AvaTax
     $result = $this->_send($order->getStoreId());
     /** @var OnePica_AvaTax_Model_Service_Result_Invoice $invoiceResult */
     $invoiceResult = Mage::getModel('avatax/service_result_invoice');
     $resultHasError = $result->getResultCode() != SeverityLevel::$Success;
     $invoiceResult->setHasError($resultHasError);
     //if successful
     if (!$resultHasError) {
         $totalTax = $result->getTotalTax();
         $invoiceResult->setTotalTax($totalTax);
         $documentCode = $result->getDocCode();
         $invoiceResult->setDocumentCode($documentCode);
         //if not successful
     } else {
         $messages = array();
         foreach ($result->getMessages() as $message) {
             $messages[] = $message->getSummary();
         }
         $invoiceResult->setErrors($messages);
     }
     return $invoiceResult;
 }
Beispiel #3
0
 /**
  * Save order in AvaTax system
  *
  * @see OnePica_AvaTax_Model_Observer::salesOrderPlaceAfter()
  * @param Mage_Sales_Model_Order_Invoice     $invoice
  * @param OnePica_AvaTax_Model_Records_Queue $queue
  * @return bool
  * @throws OnePica_AvaTax_Exception
  * @throws OnePica_AvaTax_Model_Avatax_Exception_Commitfailure
  * @throws OnePica_AvaTax_Model_Avatax_Exception_Unbalanced
  */
 public function invoice($invoice, $queue)
 {
     $order = $invoice->getOrder();
     $storeId = $order->getStoreId();
     $invoiceDate = $this->_convertGmtDate($invoice->getCreatedAt(), $storeId);
     $orderDate = $this->_convertGmtDate($order->getCreatedAt(), $storeId);
     $statusDate = $this->_convertGmtDate($queue->getUpdatedAt(), $storeId);
     $shippingAddress = $order->getShippingAddress() ? $order->getShippingAddress() : $order->getBillingAddress();
     if (!$shippingAddress) {
         throw new OnePica_AvaTax_Exception($this->__('There is no address attached to this order'));
     }
     $this->_request = new GetTaxRequest();
     $this->_request->setDocCode($invoice->getIncrementId());
     $this->_request->setDocType(DocumentType::$SalesInvoice);
     $this->_addGeneralInfo($order);
     $this->_addShipping($invoice);
     $items = $invoice->getItemsCollection();
     $this->_initProductCollection($items);
     $this->_initTaxClassCollection($invoice);
     //Added code for calculating tax for giftwrap items
     $this->_addGwOrderAmount($invoice);
     $this->_addGwItemsAmount($invoice);
     $this->_addGwPrintedCardAmount($invoice);
     $this->_setOriginAddress($order->getStoreId());
     $this->_setDestinationAddress($shippingAddress);
     $this->_request->setDocDate($invoiceDate);
     $this->_request->setPaymentDate($invoiceDate);
     $this->_request->setTaxDate($orderDate);
     $this->_request->setStatusDate($statusDate);
     $configAction = Mage::getStoreConfig('tax/avatax/action', $order->getStoreId());
     $commitAction = OnePica_AvaTax_Model_Config::ACTION_CALC_SUBMIT_COMMIT;
     $this->_request->setCommit($configAction == $commitAction ? true : false);
     foreach ($items as $item) {
         /** @var Mage_Sales_Model_Order_Invoice_Item $item */
         $this->_newLine($item);
     }
     $this->_request->setLines($this->_lines);
     //send to AvaTax
     $result = $this->_send($order->getStoreId());
     //if successful
     if ($result->getResultCode() == SeverityLevel::$Success) {
         $message = Mage::helper('avatax')->__('Invoice #%s was saved to AvaTax', $result->getDocCode());
         $this->_addStatusHistoryComment($order, $message);
         if ($result->getTotalTax() != $invoice->getBaseTaxAmount()) {
             throw new OnePica_AvaTax_Model_Avatax_Exception_Unbalanced('Collected: ' . $invoice->getBaseTaxAmount() . ', Actual: ' . $result->getTotalTax());
         }
         //if not successful
     } else {
         $messages = array();
         foreach ($result->getMessages() as $message) {
             $messages[] = $message->getSummary();
         }
         throw new OnePica_AvaTax_Model_Avatax_Exception_Commitfailure(implode(' // ', $messages));
     }
     return true;
 }
Beispiel #4
0
 /**
  * Get document code for invoice
  *
  * @param Mage_Sales_Model_Order_Invoice $invoice
  * @return string
  */
 protected function _getInvoiceDocumentCode($invoice)
 {
     return self::DOCUMENT_CODE_INVOICE_PREFIX . $invoice->getIncrementId();
 }
Beispiel #5
0
 public function getInvoiceDocCode(Mage_Sales_Model_Order_Invoice $invoice)
 {
     $prefix = trim($this->getConfig('invoice_prefix', $invoice->getStore()), self::DOC_CODE_SEPARATOR);
     $prefix = (empty($prefix) ? 'I' : $prefix) . self::DOC_CODE_SEPARATOR;
     if ($invoice->getAvataxDocument()) {
         return $invoice->getAvataxDocument();
     } elseif ($invoice->getIncrementId()) {
         return $prefix . $invoice->getIncrementId();
     } else {
         return null;
     }
 }
Beispiel #6
0
 /**
  * @param Mage_Sales_Model_Order_Invoice $invoice
  *
  * @return Bronto_Common_Model_Email_Template_Filter
  */
 protected function _filterInvoice(Mage_Sales_Model_Order_Invoice $invoice)
 {
     if (!in_array('invoice', $this->_filteredObjects)) {
         $index = 1;
         foreach ($invoice->getAllItems() as $item) {
             $_item = $item->getOrderItem();
             if (!$_item->getParentItem()) {
                 $this->_filterOrderItem($_item, $index);
                 $index++;
             }
         }
         // Add Related Content
         $this->_items = $invoice->getAllItems();
         $this->setField('invoiceIncrementId', $invoice->getIncrementId());
         $this->setField('invoiceItems', $this->_filterInvoiceItems($invoice));
         $this->_filteredObjects[] = 'invoice';
     }
     return $this;
 }