Example #1
0
 private static function _printAvailableDate($product)
 {
     $availableDate = null;
     if ($product->getTypeId() == ITwebexperts_Payperrentals_Helper_Data::PRODUCT_TYPE) {
         $range = ITwebexperts_Payperrentals_Helper_Data::getFirstAvailableDateRange($product);
     } else {
         $bundleDefaultSelections = ITwebexperts_Payperrentals_Helper_Data::getDefaultSelectionsForBundle($product);
         $minimumDate = null;
         foreach ($bundleDefaultSelections as $productId) {
             $newRange = ITwebexperts_Payperrentals_Helper_Data::getFirstAvailableDateRange($productId);
             if (is_null($minimumDate) || strtotime($minimumDate) < $newRange['start_date']) {
                 $minimumDate = $newRange['start_date'];
                 $range = $newRange;
             }
         }
     }
     if (isset($range)) {
         if ($range['start_date'] != '0') {
             $nextAvail = Mage::helper('payperrentals')->__('Next Available Date: ') . ITwebexperts_Payperrentals_Helper_Date::formatDbDate($range['start_date']);
         } else {
             $nextAvail = '';
         }
         $availableDate = $nextAvail;
     }
     return $availableDate;
 }
Example #2
0
 /**
  * Function which completes the booked array with the disabled and excluded days, so they
  * can't be selected in the calendar. The report will ignore them
  *
  * @param array    $productIds
  * @param array    $booked
  * @param int      $currentTimestamp
  * @param datetime $stDate
  * @param datetime $enDate
  *
  * @return array
  */
 public static function isExcludedDay($productIds, $stDate, $enDate)
 {
     if (!is_array($productIds)) {
         $productIds = array($productIds);
     }
     $currentTimestamp = (int) Mage::getSingleton('core/date')->timestamp(time());
     foreach ($productIds as $id) {
         $disabledDays = ITwebexperts_Payperrentals_Helper_Data::getDisabledDays($id);
         $disabledDaysStart = ITwebexperts_Payperrentals_Helper_Data::getDisabledDaysStart();
         $disabledDaysEnd = ITwebexperts_Payperrentals_Helper_Data::getDisabledDaysEnd();
         //$paddingDays = ITwebexperts_Payperrentals_Helper_Data::getProductPaddingDays($id, $currentTimestamp);
         $paddingDays = ITwebexperts_Payperrentals_Helper_Data::getFirstAvailableDateRange($id, null, false, true);
         if (!$paddingDays) {
             return true;
         }
         $blockedDates = ITwebexperts_Payperrentals_Helper_Data::getDisabledDates($id);
         foreach ($blockedDates as $dateFormatted) {
             if (date('Y-m-d', strtotime($dateFormatted)) == date('Y-m-d', strtotime($stDate)) || date('Y-m-d', strtotime($dateFormatted)) == date('Y-m-d', strtotime($enDate))) {
                 return true;
             }
         }
         foreach ($paddingDays as $dateFormatted) {
             if (strtotime($dateFormatted) >= strtotime($stDate) && strtotime($dateFormatted) <= strtotime($enDate)) {
                 return true;
             }
         }
         if (count($disabledDays) > 0) {
             $startTimePadding = strtotime(date('Y-m-d', strtotime($stDate)));
             $endTimePadding = strtotime(date('Y-m-d', strtotime($enDate)));
             $dayofWeek = date('D', $startTimePadding);
             if (in_array($dayofWeek, $disabledDays)) {
                 return true;
             }
             $dayofWeek = date('D', $startTimePadding);
             if (in_array($dayofWeek, $disabledDaysStart)) {
                 return true;
             }
             $dayofWeek = date('D', $endTimePadding);
             if (in_array($dayofWeek, $disabledDays)) {
                 return true;
             }
             $dayofWeek = date('D', $endTimePadding);
             if (in_array($dayofWeek, $disabledDaysEnd)) {
                 return true;
             }
         }
     }
     return false;
 }
Example #3
0
 /**
  * @deprecated
  * This function was used to return the next available date when fixed date selection was used.
  * Is better so no start date is automatically selected
  * @param $product
  * @param $startDate
  *
  * @return array
  */
 private function _getAvailDateAndSelDays($product, $startDate)
 {
     $selDays = false;
     $availDate = false;
     if ($this->getRequest()->getParam('selDays')) {
         $selDays = (int) $this->getRequest()->getParam('selDays') + 1;
         $availDateArr = ITwebexperts_Payperrentals_Helper_Data::getFirstAvailableDateRange($product, $startDate, ITwebexperts_Payperrentals_Helper_Data::getPeriodInSeconds($selDays, ITwebexperts_Payperrentals_Model_Product_Periodtype::DAYS));
         $availDate = $availDateArr['start_date'];
     }
     return array($selDays, $availDate);
 }