public function canReorder(Mage_Sales_Model_Order $order) { if (!$this->isAllow()) { return false; } return $order->canReorder(); }
/** * Add the items from the given order to the Order Sync queue. Does nothing if * Order Sync is disabled for the store that the order was placed in. * * @param Mage_Sales_Model_Order $order * @param bool $force Skip enabled check * * @return $this */ public function addOrderToQueue(Mage_Sales_Model_Order $order, $force = false) { if (!$this->isEnabled($order->getStoreId()) && !$force) { return $this; } $items = array(); foreach ($order->getAllVisibleItems() as $item) { /** @var Mage_Sales_Model_Order_Item $item */ // For configurable products add children items only, for all other products add parents if ($item->getProductType() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) { foreach ($item->getChildrenItems() as $child) { if ($child->getId() != null) { $items[] = $child->getId(); } } } else { if ($item->getId() != null) { $items[] = $item->getId(); } } } // in case of multiple addresses used for shipping // its possible that items object here is empty // if so, we do not add to the item. if (!empty($items)) { $this->addItemsToQueue($items); } return $this; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ public function setOrder(Mage_Sales_Model_Order $order) { if ($order && $order->getId()) { $this->_order = $order; } return $this; }
public function filterValidForOrder(Mage_Sales_Model_Order $order) { $this->addFieldToFilter('is_active', '1'); $this->addFieldToFilter('website_ids', ['finset' => $order->getStore()->getWebsiteId()]); $this->addOrder('sort_order', 'DESC'); return $this; }
/** * Processes payment for specified order * @param Mage_Sales_Model_Order $Order * @return */ public function processOrder(Mage_Sales_Model_Order $PrimaryOrder, Mage_Sales_Model_Order $Order = null) { $amount = $Order->getGrandTotal(); $increment = $Order->getIncrementId(); $VendorTxCode = $increment . "-" . date("y-m-d-H-i-s", time()) . "-" . rand(0, 1000000); $model = Mage::getModel('sarp/protxDirect')->load($this->getSubscription()->getId(), 'subscription_id'); $data = array('VPSProtocol' => self::PROTOCOL_VERSION, 'TxType' => self::REPEAT, 'Vendor' => Mage::getStoreConfig(self::VENDOR), 'VendorTxCode' => $VendorTxCode, 'Amount' => $amount, 'Currency' => $Order->getOrderCurrencyCode(), 'Description' => 'Order', 'RelatedVPSTxId' => $model->getVpsTxId(), 'RelatedVendorTxCode' => $model->getVendorTxCode(), 'RelatedSecurityKey' => $model->getSecurityKey(), 'RelatedTxAuthNo' => $model->getTxAuthNo()); $ready = array(); foreach ($data as $key => $value) { $ready[] = $key . '=' . $value; } $str = implode('&', $ready); switch (Mage::getStoreConfig(self::MODE)) { case 'test': $url = self::TEST_REPEAT_URL; break; case 'live': $url = self::LIVE_REPEAT_URL; break; default: $url = self::SIMULATOR_REPEAT_URL; } $ready = $this->requestPost($url, $str); if (empty($ready)) { throw new AW_Sarp_Exception($this->__("Order cannot be completed. Unknown error")); } if ($ready['Status'] != 'OK') { throw new AW_Sarp_Exception($ready['Status'] . " - " . $ready['StatusDetail']); } }
/** * Generate and return order secret * * @param Mage_Sales_Model_Order $order * @return string */ public function getOrderSecret($order) { $email = $order->getCustomerEmail(); $orderId = $order->getRealOrderId(); $storeSecret = $this->getSBSecret(); return md5($email . $orderId . $storeSecret); }
/** * Load a Quote object from an Order object * @param Mage_Sales_Model_Order $order * @return Mage_Sales_Model_Quote */ protected function _getQuoteFromOrder($order) { if (!$this->_quote instanceof Mage_Sales_Model_Quote) { $this->_quote = Mage::getModel('sales/quote')->load($order->getQuoteId()); } return $this->_quote; }
/** * @throws Payone_Core_Exception_InvoicePreparationNoItems|Payone_Core_Exception_InvoiceSave * @param Mage_Sales_Model_Order $order * @param array $itemsQty * @param null $invoiceIncrementId * @return Mage_Sales_Model_Order_Invoice */ protected function create(Mage_Sales_Model_Order $order, array $itemsQty = array(), $invoiceIncrementId = null) { /* @var $invoice Mage_Sales_Model_Order_Invoice */ $invoice = $order->prepareInvoice($itemsQty); if ($invoiceIncrementId) { $invoice->setIncrementId($invoiceIncrementId); } $invoice->setTransactionId($order->getPayment()->getLastTransId()); if (count($invoice->getAllItems()) <= 0) { throw new Payone_Core_Exception_InvoicePreparationNoItems($order->getIncrementId()); } if ($invoice) { $invoice->register(); $invoice->setEmailSent(false); $invoice->getOrder()->setIsInProcess(true); try { $transactionSave = $this->getFactory()->getModelResourceTransaction(); $transactionSave->addObject($invoice); $transactionSave->addObject($invoice->getOrder()); $transactionSave->save(); } catch (Mage_Core_Exception $e) { throw new Payone_Core_Exception_InvoiceSave($e->getMessage()); } return $invoice; } return null; }
/** * @param Mage_Sales_Model_Order $order * @return bool */ protected function is_aplazame_payment($order) { $code = Aplazame_Aplazame_Model_Payment::METHOD_CODE; /** @var Mage_Sales_Model_Order $parentOrder */ $parentOrder = Mage::getModel('sales/order')->loadByIncrementId($order->getIncrementId()); return $code == $parentOrder->getPayment()->getMethod(); }
/** * Adiciona o Link do meio de pagamento a página de sucesso. * @param $observer */ public function orderSuccessEvent($observer) { try { $order = new Mage_Sales_Model_Order(); $lastOrderId = Mage::getSingleton('checkout/session')->getLastRealOrderId(); $order->loadByIncrementId($lastOrderId); $quoteId = $order->getQuoteId(); $quote = Mage::getModel("sales/quote")->loadByIdWithoutStore($quoteId); $type = null; $payment_method_bcash = $quote->getPaymentMethodBcash(); if ($payment_method_bcash) { $helper = new Bcash_Pagamento_Helper_PaymentMethod(); $type = $helper->getPaymentMethod($payment_method_bcash); } $layout = Mage::app()->getLayout(); $block = $layout->createBlock('Mage_Core_Block_Template', 'link_pagamento_bcash', array('template' => 'bcash/pagamento/checkout/success.phtml')); $block->setOrder($order); $block->setQuote($quote); $block->setType($type); $layout->getBlock('content')->append($block); $bcashTransacation = $order->getTransactionIdBcash(); Mage::helper("bcash")->saveLog("Pedido '" . $lastOrderId . "' realizado com sucesso. Transacao: " . $bcashTransacation); } catch (Exception $e) { Mage::helper("bcash")->saveLog($e->getMessage()); } }
public function checkRelation(Mage_Sales_Model_Order $order) { /** * Check customer existing */ $customer = Mage::getModel('customer/customer')->load($order->getCustomerId()); if (!$customer->getId()) { $this->_getSession()->addNotice(Mage::helper('adminhtml')->__(' The customer does not exist in the system anymore.')); } /** * Check Item products existing */ $productIds = array(); foreach ($order->getAllItems() as $item) { $productIds[] = $item->getProductId(); } $productCollection = Mage::getModel('catalog/product')->getCollection()->addIdFilter($productIds)->load(); $hasBadItems = false; foreach ($order->getAllItems() as $item) { if (!$productCollection->getItemById($item->getProductId())) { $this->_getSession()->addError(Mage::helper('adminhtml')->__('The item %s (SKU %s) does not exist in the catalog anymore.', $item->getName(), $item->getSku())); $hasBadItems = true; } } if ($hasBadItems) { $this->_getSession()->addError(Mage::helper('adminhtml')->__('Some of the ordered items do not exist in the catalog anymore and will be removed if you try to edit the order.')); } return $this; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ protected function _redirectByOrder(Mage_Sales_Model_Order $order) { if (!$order->getId()) { $this->_redirectCart(); return $this; } if ($order->isCanceled()) { $this->_redirectPaymentError(); return $this; } switch ($order->getState()) { case Mage_Sales_Model_Order::STATE_NEW: $this->_redirectOrderPending(); break; case Mage_Sales_Model_Order::STATE_CANCELED: $this->_redirectPaymentError(); break; case Mage_Sales_Model_Order::STATE_PROCESSING: case Mage_Sales_Model_Order::STATE_COMPLETE: case Mage_Sales_Model_Order::STATE_CLOSED: case Mage_Sales_Model_Order::STATE_HOLDED: case Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW: default: $this->_redirectOrderState(); break; } return $this; }
public function applyOrder(Mage_Sales_Model_Order $order, $sendEmail = false) { $this->_order = $order; $timestamp = new Zend_Date(); $this->setOrderId($order->getId())->setIsNotified($sendEmail ? 1 : 0)->setAssignTime($timestamp->toString(Zend_Date::ISO_8601))->save(); return $this; }
public function prepareValues(Mage_Sales_Model_Order $order) { $billing_address = $order->getBillingAddress(); $additional_data = unserialize($order->getPayment()->getAdditionalData()); $code_banco = $additional_data['code_banco']; $data_vencimento = $additional_data['data_vencimento']; $numero_boleto = str_replace('-', '', $order->getIncrementId()); $strtotime = strtotime($order->getCreatedAt()); $data = array('logoempresa' => $this->getConfig('logoempresa'), 'nosso_numero' => $numero_boleto, 'numero_documento' => $numero_boleto, 'data_vencimento' => $data_vencimento, 'data_documento' => date('d/m/Y', $strtotime), 'data_processamento' => date('d/m/Y', $strtotime), 'valor_boleto' => number_format($order->getGrandTotal() + $this->getLayoutConfig($code_banco, 'valor_adicional'), 2, ',', ''), 'valor_unitario' => number_format($order->getGrandTotal() + $this->getLayoutConfig($code_banco, 'valor_adicional'), 2, ',', ''), 'sacado' => $billing_address->getFirstname() . ' ' . $billing_address->getLastname(), 'sacadocpf' => $order->getCustomerTaxvat(), 'endereco1' => implode(' ', $billing_address->getStreet()), 'endereco2' => $billing_address->getCity() . ' - ' . $billing_address->getRegion() . ' - CEP: ' . $billing_address->getPostcode(), 'identificacao' => $this->getLayoutConfig($code_banco, 'identificacao'), 'cpf_cnpj' => $this->getLayoutConfig($code_banco, 'cpf_cnpj'), 'endereco' => $this->getLayoutConfig($code_banco, 'endereco'), 'cidade_uf' => $this->getLayoutConfig($code_banco, 'cidade_uf'), 'cedente' => $this->getLayoutConfig($code_banco, 'cedente'), 'agencia' => $this->getLayoutConfig($code_banco, 'agencia'), 'agencia_dv' => $this->getLayoutConfig($code_banco, 'agencia_dv'), 'conta' => $this->getLayoutConfig($code_banco, 'conta'), 'conta_dv' => $this->getLayoutConfig($code_banco, 'conta_dv'), 'carteira' => $this->getLayoutConfig($code_banco, 'carteira'), 'especie' => $this->getLayoutConfig($code_banco, 'especie'), 'especie_doc' => $this->getLayoutConfig($code_banco, 'especie_doc'), 'aceite' => $this->getLayoutConfig($code_banco, 'aceite'), 'quantidade' => $this->getLayoutConfig($code_banco, 'quantidade')); if ($code_banco == 'santander_banespa') { $data['ponto_venda'] = $this->getLayoutConfig($code_banco, 'ponto_venda'); $data['carteira_descricao'] = $this->getLayoutConfig($code_banco, 'carteira_descricao'); $data['codigo_cliente'] = $this->getLayoutConfig($code_banco, 'codigo_cliente'); } if ($code_banco == 'bradesco') { $data['conta_cedente'] = $this->getLayoutConfig($code_banco, 'conta_cedente'); $data['conta_cedente_dv'] = $this->getLayoutConfig($code_banco, 'conta_cedente_dv'); } if ($code_banco == 'cef' || $code_banco == 'cef_sinco' || $code_banco == 'cef_sigcb') { $data['conta_cedente_caixa'] = $this->getLayoutConfig($code_banco, 'conta_cedente_caixa'); $data['conta_cedente_dv_caixa'] = $this->getLayoutConfig($code_banco, 'conta_cedente_dv_caixa'); $data['inicio_nosso_numero'] = $this->getLayoutConfig($code_banco, 'inicio_nosso_numero'); } if ($code_banco == 'bb') { $data['convenio'] = $this->getLayoutConfig($code_banco, 'convenio'); $data['contrato'] = $this->getLayoutConfig($code_banco, 'contrato'); $data['variacao_carteira'] = $this->getLayoutConfig($code_banco, 'variacao_carteira'); $data['formatacao_convenio'] = $this->getLayoutConfig($code_banco, 'formatacao_convenio'); $data['formatacao_nosso_numero'] = $this->getLayoutConfig($code_banco, 'formatacao_nosso_numero'); } if ($code_banco == 'hsbc') { $data['codigo_cedente'] = $this->getLayoutConfig($code_banco, 'codigo_cedente'); } if ($code_banco == 'cef_sinco') { $data['campo_fixo_obrigatorio'] = $this->getLayoutConfig($code_banco, 'campo_fixo_obrigatorio'); } if ($code_banco == 'cef_sigcb') { $data['nosso_numero1'] = $this->getLayoutConfig($code_banco, 'nosso_numero1'); $data['nosso_numero_const1'] = $this->getLayoutConfig($code_banco, 'nosso_numero_const1'); $data['nosso_numero2'] = $this->getLayoutConfig($code_banco, 'nosso_numero2'); $data['nosso_numero_const2'] = $this->getLayoutConfig($code_banco, 'nosso_numero_const2'); $data['nosso_numero3'] = $numero_boleto; } if ($code_banco == 'sicoob') { $data['convenio'] = $this->getLayoutConfig($code_banco, 'codigo_cedente'); $data["numero_parcela"] = '001'; } $instrucoes = explode("\n", $this->getLayoutConfig($code_banco, 'instrucoes_boleto')); for ($i = 0; $i < 4; $i++) { $instrucao = isset($instrucoes[$i]) ? $instrucoes[$i] : ''; $data['instrucoes' . ($i + 1)] = $instrucao; } $info = sprintf($this->getLayoutConfig($code_banco, 'informacoes'), $order->getIncrementId()); $informacoes = explode("\n", $info); for ($i = 0; $i < 3; $i++) { $informacao = isset($informacoes[$i]) ? $informacoes[$i] : ''; $data['demonstrativo' . ($i + 1)] = $informacao; } return $data; }
/** * Retrieve order item value by key * * @param Mage_Sales_Model_Order $order * @param string $key * @return string */ public function getOrderItemValue(Mage_Sales_Model_Order $order, $key) { $escape = true; switch ($key) { case 'order_increment_id': $value = $order->getIncrementId(); break; case 'created_at': $value = $this->helper('core')->formatDate($order->getCreatedAt(), 'short', true); break; case 'shipping_address': $value = $order->getShippingAddress() ? $this->escapeHtml($order->getShippingAddress()->getName()) : $this->__('N/A'); break; case 'order_total': $value = $order->formatPrice($order->getGrandTotal()); $escape = false; break; case 'status_label': $value = $order->getStatusLabel(); break; case 'view_url': $value = $this->getUrl('*/order/view', array('order_id' => $order->getId())); break; default: $value = $order->getData($key) ? $order->getData($key) : $this->__('N/A'); } return $escape ? $this->escapeHtml($value) : $value; }
/** * Get the original order's increment ID * * @return string */ public function getOrderIncrementId() { if (!is_null($this->_storedOrder)) { return $this->_storedOrder->getIncrementId(); } return ''; }
public function createReservationDocument($event) { $order = new Mage_Sales_Model_Order(); $incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId(); $order->loadByIncrementId($incrementId); $orderData = $order->getData(); $customerID = sprintf("WEBC%010d", $order['customer_id']); $orderDate = date('Y-m-d H:i:s'); $XML = "\n <TrumpasPardRezDok>\n <sKlientas>{$customerID}</sKlientas>\n <tData>{$orderDate}</tData>\n <sSerija></sSerija>\n <sDokumentas></sDokumentas>\n <sValiuta>{$orderData['order_currency_code']}</sValiuta>"; $VAT = 21; foreach ($order->getAllItems() as $item) { $children = $item->getChildrenItems(); if (!empty($children)) { continue; // bundle } $itemData = $item->getData(); $priceVat = round($itemData['price_incl_tax'], 4); $priceNoVat = round($priceVat / ($VAT / 100 + 1), 4); $priceVatValue = round($priceVat - $priceNoVat, 4); $qty = intval($itemData['qty_ordered']); $XML .= "\n <PardDokPrekeDetEil>\n <sKodas>{$itemData['sku']}</sKodas>\n <sPavadinimas>{$itemData['name']}</sPavadinimas>\n <sSandelis>CENTR.</sSandelis>\n <nKiekis>{$qty}</nKiekis>\n <dSumaL>{$priceNoVat}</dSumaL>\n <dSumaV>{$priceNoVat}</dSumaV>\n <dSumaPVMV>{$priceVatValue}</dSumaPVMV>\n <dSumaPVML>{$priceVatValue}</dSumaPVML>\n </PardDokPrekeDetEil>"; } $shippingAmountVat = round($order->getShippingAmount(), 4); $shippingAmountNoVat = round($shippingAmountVat / ($VAT / 100 + 1), 4); $shippingVatValue = round($shippingAmountVat - $shippingAmountNoVat, 4); $XML .= "\n <PardDokPaslaugaDetEil>\n <sKodas>TRANSPORTAV</sKodas>\n <nKiekis>100</nKiekis>\n <dSumaV>{$shippingAmountNoVat}</dSumaV>\n <dSumaL>{$shippingAmountNoVat}</dSumaL>\n <dSumaPVMV>{$shippingVatValue}</dSumaPVMV>\n <dSumaPVML>{$shippingVatValue}</dSumaPVML>\n \t </PardDokPaslaugaDetEil>\n "; $XML .= "</TrumpasPardRezDok>"; /** @var $fvs Srautas_Finvalda_Webservice */ $fvs = Mage::getSingleton('finvalda/webservice'); $fvs->InsertNewOperation(array('ItemClassName' => 'TrumpasPardRezDok', 'sParametras' => 'PIRMAS', 'xmlString' => $XML)); return $this; }
protected function _getButtonsHtml(SM_Vendors_Model_Order $vendorOrder, Mage_Sales_Model_Order $order, $vendorId) { $buttonGroups = array(); $urlParams = array('order_id' => $order->getId(), 'do_as_vendor' => $vendorId); if ($vendorOrder->canCancel()) { $message = Mage::helper('sales')->__('Are you sure you want to cancel this order?'); $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_cancel_' . $vendorId, 'label' => Mage::helper('sales')->__('Cancel'), 'onclick' => 'deleteConfirm(\'' . $message . '\', \'' . $this->getUrl('*/vendors_order/cancel', $urlParams) . '\')')); $buttonGroups[] = $button->toHtml(); } if ($vendorOrder->canInvoice()) { $_label = $order->getForcedDoShipmentWithInvoice() ? Mage::helper('sales')->__('Invoice and Ship') : Mage::helper('sales')->__('Invoice'); $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_invoice_' . $vendorId, 'label' => $_label, 'onclick' => 'setLocation(\'' . $this->getUrl('*/vendors_order_invoice/start', $urlParams) . '\')', 'class' => 'go')); $buttonGroups[] = $button->toHtml(); } if ($vendorOrder->canShip() && !$order->getForcedDoShipmentWithInvoice()) { $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_ship_' . $vendorId, 'label' => Mage::helper('sales')->__('Ship'), 'onclick' => 'setLocation(\'' . $this->getUrl('*/vendors_order_shipment/new', $urlParams) . '\')', 'class' => 'go')); $buttonGroups[] = $button->toHtml(); } if ($vendorOrder->canCreditmemo()) { $message = Mage::helper('sales')->__('This will create an offline refund. To create an online refund, open an invoice and create credit memo for it. Do you wish to proceed?'); $urlParams['_current'] = true; $creditMemoUrl = $this->getUrl('*/vendors_order_creditmemo/new', $urlParams); $onClick = "setLocation('{$creditMemoUrl}')"; if ($order->getPayment()->getMethodInstance()->isGateway()) { $onClick = "confirmSetLocation('{$message}', '{$creditMemoUrl}')"; } $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_creditmemo_' . $vendorId, 'label' => Mage::helper('sales')->__('Credit Memo'), 'onclick' => $onClick, 'class' => 'go')); $buttonGroups[] = $button->toHtml(); } if (!empty($buttonGroups)) { return '<p class="form-buttons">' . implode("\n", $buttonGroups) . '</p>'; } else { return ''; } }
/** * Gets the Nosto ID for an order model. * The Nosto ID represents the customer who placed to the order on Nosto's * side. * * @param Mage_Sales_Model_Order $order the order to get the Nosto ID for. * * @return bool|string the Nosto ID or false if not found for order. */ public function getNostoId(Mage_Sales_Model_Order $order) { /** @var Nosto_Tagging_Model_Customer $customer */ $customer = Mage::getModel('nosto_tagging/customer'); $customer->load($order->getQuoteId(), 'quote_id'); return $customer->hasData('nosto_id') ? $customer->getNostoId() : false; }
/** * Processes payment for specified order * @param Mage_Sales_Model_Order $Order * @return */ public function processOrder(Mage_Sales_Model_Order $PrimaryOrder, Mage_Sales_Model_Order $Order = null) { // Set order as pending $Order->addStatusToHistory('pending', '', false)->save(); // Throw exception to suspend subscription throw new AW_Sarp_Exception("Suspending subscription till order status change to completed"); }
protected function _shipOrder(Mage_Sales_Model_Order $order) { $itemQty = $order->getItemsCollection()->count(); $shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($itemQty); $shipment = new Mage_Sales_Model_Order_Shipment_Api(); $shipmentId = $shipment->create($order->getIncrementId()); }
/** * @magentoDataFixture Mage/Sales/_files/order.php */ public function testOrderViewAction() { $order = new Mage_Sales_Model_Order(); $order->load('100000001', 'increment_id'); $this->dispatch('admin/sales_order/view/order_id/' . $order->getId()); $this->assertContains('Los Angeles', $this->getResponse()->getBody()); }
/** * Check if last order is PayPalPlus * @return bool */ public function isPPP() { if ($this->_order->getPayment()->getMethodInstance()->getCode() == self::IWAYS_PAYPALPLUS_PAYMENT) { return true; } return false; }
/** * @param Mage_Sales_Model_Order $magentoOrder * @throws Reverb_ReverbSync_Model_Exception_Data_Order_Update */ protected function _inspectWhyCanNotUpdateAndThrowException(Mage_Sales_Model_Order $magentoOrder) { if ($magentoOrder->isPaymentReview()) { $this->_throwCanNotUpdateException($magentoOrder, self::REASON_PAYMENT_REVIEW); } if ($magentoOrder->canUnhold()) { $this->_throwCanNotUpdateException($magentoOrder, self::REASON_HOLD); } if ($magentoOrder->isCanceled()) { $this->_throwCanNotUpdateException($magentoOrder, self::REASON_CANCELLED); } $state = $magentoOrder->getState(); if ($state === Mage_Sales_Model_Order::STATE_COMPLETE) { $this->_throwCanNotUpdateException($magentoOrder, self::REASON_COMPLETE); } if ($state === Mage_Sales_Model_Order::STATE_CLOSED) { $this->_throwCanNotUpdateException($magentoOrder, self::REASON_CLOSED); } $allInvoiced = true; foreach ($magentoOrder->getAllItems() as $item) { if ($item->getQtyToInvoice()) { $allInvoiced = false; break; } } if ($allInvoiced) { $this->_throwCanNotUpdateException($magentoOrder, self::REASON_INVOICED); } $this->_throwCanNotUpdateException($magentoOrder, self::REASON_DEFAULT); }
/** * @param Varien_Event_Observer $observer * @return $this */ public function salesOrderSaveAfter($observer) { $event = $observer->getEvent(); /** @noinspection PhpUndefinedMethodInspection */ /** @var Mage_Sales_Model_Order $order_after */ $order_after = $event->getOrder(); if ($order_after && $this->_temp_order_before && $order_after->getId() == $this->_temp_order_before->getId()) { $order_before = $this->_temp_order_before; if ($order_after && $order_before) { $status_before = $order_before->getStatus(); $status_after = $order_after->getStatus(); $state_before = $order_before->getState(); $state_after = $order_after->getState(); $state_changed = $status_before != $status_after || $state_before != $state_after; /** @var Payin7_Payments_Model_Payin7orderhistory $mh */ $mh = Mage::getModel('payin7payments/payin7orderhistory'); if ($state_changed) { $mh->markOrderStateChanged($order_after); } else { $mh->markOrderUpdated($order_after); } $this->_flushFastOrderHistory(); } $this->_temp_order_before = null; } return $this; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ public function setOrder(Mage_Sales_Model_Order $order) { if (!$order || !$order->getId()) { return $this; } $this->_order = $order; return $this; }
/** * Returns the current customers email adress. * @param Mage_Sales_Model_Quote|Mage_Sales_Model_Order $object * @return string the customers email adress */ public function getCustomerEmail($object) { $email = $object->getCustomerEmail(); if (empty($email)) { $email = $object->getBillingAddress()->getEmail(); } return $email; }
/** * Check order view availability * * @param Mage_Sales_Model_Order $order * @return bool */ protected function _canViewOrder($order) { $currentOrder = Mage::registry('current_order'); if ($order->getId() && $order->getId() === $currentOrder->getId()) { return true; } return false; }
/** * Retrieve tracking url with params * * @param string $key * @param Mage_Sales_Model_Order|Mage_Sales_Model_Order_Shipment|Mage_Sales_Model_Order_Shipment_Track $model * @param string $method Optional - method of a model to get id * @return string */ protected function _getTrackingUrl($key, $model, $method = 'getId') { $helper = Mage::helper('Mage_Core_Helper_Data'); $urlPart = "{$key}:{$model->{$method}()}:{$model->getProtectCode()}"; $param = array('hash' => $helper->urlEncode($urlPart)); $storeModel = Mage::app()->getStore($model->getStoreId()); return $storeModel->getUrl('shipping/tracking/popup', $param); }
/** * Processes payment for specified order * @param Mage_Sales_Model_Order $Order * @return */ public function processOrder(Mage_Sales_Model_Order $PrimaryOrder, Mage_Sales_Model_Order $Order = null) { if ($Order->getBaseGrandTotal() > 0) { $result = $this->getWebService()->setSubscription($this->getSubscription())->setOrder($Order)->createTransaction(); $ccTransId = @$result->transactionId; $Order->getPayment()->setCcTransId($ccTransId); } }