/** * Removes error statuses from quote and item, set by this observer * * @param Mage_Sales_Model_Quote_Item $item * @param int $code * @return Mage_CatalogInventory_Model_Observer */ protected function _removeErrorsFromQuoteAndItem($item, $code) { //if(ITwebexperts_Payperrentals_Helper_Data::isReservationType($item->getProduct()) && ($item->getProduct()->getTypeId() == ITwebexperts_Payperrentals_Helper_Data::PRODUCT_TYPE_CONFIGURABLE || $item->getProduct()->getTypeId() == ITwebexperts_Payperrentals_Helper_Data::PRODUCT_TYPE_BUNDLE || $item->getProduct()->getTypeId() == ITwebexperts_Payperrentals_Helper_Data::PRODUCT_TYPE_GROUPED)){ // return $this; //} if ($item->getHasError()) { $params = array('origin' => 'cataloginventory', 'code' => $code); $item->removeErrorInfosByParams($params); } $quote = $item->getQuote(); $quoteItems = $quote->getItemsCollection(); $canRemoveErrorFromQuote = true; foreach ($quoteItems as $quoteItem) { if ($quoteItem->getItemId() == $item->getItemId()) { continue; } $errorInfos = $quoteItem->getErrorInfos(); foreach ($errorInfos as $errorInfo) { if ($errorInfo['code'] == $code) { $canRemoveErrorFromQuote = false; break; } } if (!$canRemoveErrorFromQuote) { break; } } if ($quote->getHasError() && $canRemoveErrorFromQuote) { $params = array('origin' => 'cataloginventory', 'code' => $code); $quote->removeErrorInfosByParams(null, $params); } return $this; }
/** * Removes error statuses from quote and item, set by this observer * * @param Mage_Sales_Model_Quote_Item $item * @param string $origin * @param int $code * @return Jarlssen_CustomCartValidation_Model_Observer */ protected function _removeErrorsFromQuoteAndItem($item, $origin, $code) { if ($item->getHasError()) { $params = array('origin' => $origin, 'code' => $code); $item->removeErrorInfosByParams($params); } $quote = $item->getQuote(); $quoteItems = $quote->getItemsCollection(); $canRemoveErrorFromQuote = true; foreach ($quoteItems as $quoteItem) { if ($quoteItem->getItemId() == $item->getItemId()) { continue; } $errorInfos = $quoteItem->getErrorInfos(); foreach ($errorInfos as $errorInfo) { if ($errorInfo['code'] == $code) { $canRemoveErrorFromQuote = false; break; } } if (!$canRemoveErrorFromQuote) { break; } } if ($quote->getHasError() && $canRemoveErrorFromQuote) { $params = array('origin' => $origin, 'code' => $code); $quote->removeErrorInfosByParams(null, $params); } return $this; }
/** * @param Mage_Sales_Model_Quote_Item $item * @return Mage_Sales_Model_Order_Item | null */ protected function getOrderItemByQuoteItem(Mage_Sales_Model_Quote_Item $item) { if (empty($this->_orderItems)) { $order = Mage::registry('orderspro_order'); if ($order instanceof Mage_Sales_Model_Order) { $orderItemsCollection = $order->getItemsCollection(array(), true); $this->_orderItems = $orderItemsCollection->getItems(); } } foreach ($this->_orderItems as $orderItem) { if ($orderItem->getQuoteItemId() == $item->getItemId()) { return $orderItem; } } return null; }