/** * Method is invoked before save * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract */ public function beforeSave($object) { if ($object->getInvoice()) { $object->setParentId($object->getInvoice()->getId()); } return parent::beforeSave($object); }
/** * Getting all available childs for Invoice, Shipmen or Creditmemo item * * @param Varien_Object $item * @return array */ public function getChilds($item) { $_itemsArray = array(); if ($item instanceof Mage_Sales_Model_Order_Invoice_Item) { $_items = $item->getInvoice()->getAllItems(); } else { if ($item instanceof Mage_Sales_Model_Order_Shipment_Item) { $_items = $item->getShipment()->getAllItems(); } else { if ($item instanceof Mage_Sales_Model_Order_Creditmemo_Item) { $_items = $item->getCreditmemo()->getAllItems(); } } } if ($_items) { foreach ($_items as $_item) { $parentItem = $_item->getOrderItem()->getParentItem(); if ($parentItem) { $_itemsArray[$parentItem->getId()][$_item->getOrderItemId()] = $_item; } else { $_itemsArray[$_item->getOrderItem()->getId()][$_item->getOrderItemId()] = $_item; } } } if (isset($_itemsArray[$item->getOrderItem()->getId()])) { return $_itemsArray[$item->getOrderItem()->getId()]; } else { return null; } }
/** * if we have to add payment specific paramters to our request, we'll set them here * * @param $opsPaymentMethod * @param $payment * @param $amount * * @return $this */ protected function addPmSpecificParams(Netresearch_OPS_Model_Payment_Abstract $opsPaymentMethod, Varien_Object $payment, $amount) { if ($this->isPmRequiringAdditionalParams($opsPaymentMethod)) { $this->setAdditionalParamsModelFor($opsPaymentMethod); if ($this->additionalParamsModel instanceof Netresearch_OPS_Model_Backend_Operation_Parameter_Additional_Interface) { $params = $this->additionalParamsModel->extractAdditionalParams($payment->getInvoice()); $this->requestParams = array_merge($this->requestParams, $params); } } return $this; }
/** * Calculate points amount depending on tax settings: before or after tax * * @param Varien_Object $transport * @param bool $convertToPoints * * @return int */ protected function _calcPointAmount($transport, $convertToPoints = false) { /* extract params */ $customer = $transport->getCustomer(); $invoice = $transport->getInvoice(); $orderWebsite = $transport->getOrder()->getStore()->getWebsite(); if ($invoice->getBaseDiscountAmount() < 0) { $invoiceDiscount = $invoice->getBaseDiscountAmount(); } else { $invoiceDiscount = -$invoice->getBaseDiscountAmount(); } if ($invoice->getBaseMoneyForPoints() < 0) { $invoiceBaseMoneyForPoints = $invoice->getBaseMoneyForPoints(); } else { $invoiceBaseMoneyForPoints = -$invoice->getBaseMoneyForPoints(); } $pointsType = Mage::helper('points/config')->getPointsCollectionOrder($transport->getOrder()->getStoreId()); if ($pointsType == AW_Points_Helper_Config::AFTER_TAX) { $amountToPoint = $invoice->getBaseSubtotalInclTax() + $invoiceDiscount + $invoiceBaseMoneyForPoints; } else { $amountToPoint = $invoice->getBaseSubtotal() + $invoiceDiscount + $invoiceBaseMoneyForPoints; } if ($convertToPoints) { return Mage::getModel('points/api')->changeMoneyToPoints($amountToPoint, $customer, $orderWebsite); } return $amountToPoint; }