public static function getExtensibleProductsFromOrder($orderId, $date = null) { $order = Mage::getModel('sales/order')->load($orderId); if (!is_null($date)) { $date = ITwebexperts_Payperrentals_Helper_Date::toMysqlDate($date, true); } $productsArr = array(); foreach ($order->getAllItems() as $_item) { if (is_object($_item->getOrderItem())) { $item = $_item->getOrderItem(); } else { $item = $_item; } if ($item->getParentItem()) { continue; } if (is_null($date)) { if (Mage::helper('payperrentals/config')->hasExtendEnabled($_item->getId(), $_item->getChildren())) { $productsArr[] = array('name' => $_item->getProduct()->getName(), 'oId' => $_item->getId()); } } else { if ($options = $item->getProductOptions()) { if (isset($options['info_buyRequest'])) { if (isset($options['info_buyRequest'][ITwebexperts_Payperrentals_Model_Product_Type_Reservation::START_DATE_OPTION])) { $start_date = $options['info_buyRequest'][ITwebexperts_Payperrentals_Model_Product_Type_Reservation::START_DATE_OPTION]; $end_date = $options['info_buyRequest'][ITwebexperts_Payperrentals_Model_Product_Type_Reservation::END_DATE_OPTION]; $diffSeconds = ITwebexperts_Payperrentals_Helper_Date::getDifferenceInSeconds($start_date, $date); $maxLength = Mage::helper('payperrentals/config')->getMaximumExtensionLength(); $isExtendEnabled = Mage::helper('payperrentals/config')->hasExtendEnabled($_item->getProduct()->getId()); $isAvailable = ITwebexperts_Payperrentals_Helper_Inventory::getQuantityForAnyProductTypeFromOptions($_item->getProduct()->getId(), $end_date, $date, $options['info_buyRequest']) > 0; if ($diffSeconds < $maxLength && strtotime($end_date) < strtotime($date) && $isExtendEnabled && $isAvailable) { $productsArr[] = array('name' => $_item->getProduct()->getName(), 'oId' => $_item->getId()); } } } } } } return $productsArr; }