public function checkDealStatus(Varien_Object $_deal, $_productStatus, $_inStock, $_productTypeId) { $origDealStatus = $_deal->getStatus(); // get store datetime $helper = Mage::helper('multipledeals'); $currentDateTime = $helper->getCurrentDateTime(0); $dealStatus = self::STATUS_ENDED; //check if disabled if ($_productStatus != 2 && $_inStock && $_deal->getStatus() != self::STATUS_DISABLED) { //check if running && if deal is still in stock if ($currentDateTime >= $_deal->getDatetimeFrom() && $currentDateTime <= $_deal->getDatetimeTo()) { $dealQtyValidationTypes = array('simple', 'virtual', 'downloadable'); if (in_array($_productTypeId, $dealQtyValidationTypes) && $_deal->getDealQty() > 0) { $dealStatus = self::STATUS_RUNNING; } else { if (!in_array($_productTypeId, $dealQtyValidationTypes)) { $dealStatus = self::STATUS_RUNNING; } else { $dealStatus = self::STATUS_ENDED; } } //check if queued } elseif ($currentDateTime <= $_deal->getDatetimeFrom()) { $dealStatus = self::STATUS_QUEUED; //check if ended } elseif ($currentDateTime >= $_deal->getDatetimeTo()) { $dealStatus = self::STATUS_ENDED; } } else { $dealStatus = self::STATUS_DISABLED; } //verify if product needs to be disabled $disableProduct = false; if (($currentDateTime >= $_deal->getDatetimeTo() || $_deal->getStatus() == self::STATUS_DISABLED) && $_deal->getDisable() == 2 && $_productStatus == 1) { $disableProduct = true; $dealStatus = self::STATUS_DISABLED; } if ($origDealStatus == $dealStatus && !$disableProduct) { return false; } else { return array('status' => $dealStatus, 'disable_product' => $disableProduct); } }