/** * 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; }
/** * 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; }
/** * 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; }
/** * 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(); }
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; } }
/** * @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; }