/** * 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; }
/** * 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 ($item->getHasError()) { $params = array('origin' => 'cataloginventory', 'code' => $code); $item->removeErrorInfosByParams($params); } $quote = $item->getQuote(); if ($quote->getHasError()) { $params = array('origin' => 'cataloginventory', 'code' => $code); $quote->removeErrorInfosByParams(null, $params); } return $this; }