Beispiel #1
0
 /**
  * Filters only start end date and save them into session if param is true and returns array with start date filtered
  * Function can take as @params any array but will automatically filter start and end dates and return only those
  * @param array $params
  * @param bool $canSave
  * return array
  */
 public static function saveDatesForGlobalUse($params, $canSave = true)
 {
     $newParams = array();
     if (isset($params['start_date'])) {
         if (!isset($params['start_time']) || $params['start_time'] == '00:00:00' || strpos($params['start_date'], ' ') !== false) {
             $newParams['start_date'] = $params['start_date'];
         } else {
             $newParams['start_date'] = $params['start_date'] . ' ' . $params['start_time'];
             //todo needs a check if the separator is always a space
         }
     }
     if (isset($params['end_date'])) {
         if (!isset($params['end_time']) || $params['end_time'] == '00:00:00' || strpos($params['end_date'], ' ') !== false) {
             $newParams['end_date'] = $params['end_date'];
         } else {
             $newParams['end_date'] = $params['end_date'] . ' ' . $params['end_time'];
             //todo needs a check if the separator is always a space
         }
     }
     list($startDate, $endDate) = ITwebexperts_Payperrentals_Helper_Date::convertDatepickerToDbFormat($newParams['start_date'], $newParams['end_date']);
     //if(!$isMultiple){
     //  self::_completeEndDate($params, $endDate);
     //}
     if ($canSave) {
         Mage::getSingleton('core/session')->setData('startDateInitial', $startDate);
         Mage::getSingleton('core/session')->setData('endDateInitial', $endDate);
     }
     return array($startDate, $endDate);
 }
Beispiel #2
0
 public static function getAdminDamageWaiverHtml($item, $productId)
 {
     $html = '<div>';
     $startDate = Mage::getSingleton('core/session')->getData('startDateInitial');
     $endDate = Mage::getSingleton('core/session')->getData('endDateInitial');
     $damageWaiverSelected = false;
     if (isset($item) && $item != -1 && Mage::app()->getRequest()->getActionName() != 'configureProductToAdd') {
         $buyRequest = $item->getBuyRequest();
         if ($buyRequest->getDamageWaiver() != '' && $buyRequest->getDamageWaiver() == '1') {
             $damageWaiverSelected = true;
         }
         $_showTime = (bool) Mage::getResourceModel('catalog/product')->getAttributeRawValue($item->getProductId(), 'payperrentals_use_times', $item->getStoreId());
         if (!Mage::helper('payperrentals/config')->isNonSequentialSelect(Mage::app()->getStore()->getId())) {
             $startDate = $buyRequest->getStartDate() != '' ? $buyRequest->getStartDate() : ($startDate ? $startDate : false);
             $endDate = $buyRequest->getEndDate() != '' ? $buyRequest->getEndDate() : ($endDate ? $endDate : false);
         } else {
             $startDate = $buyRequest->getStartDate() != '' ? ITwebexperts_Payperrentals_Helper_Date::localiseNonsequentialBuyRequest($buyRequest->getStartDate(), $_showTime) : ($startDate ? $startDate : false);
             $endDate = $buyRequest->getStartDate() != '' ? ITwebexperts_Payperrentals_Helper_Date::localiseNonsequentialBuyRequest($buyRequest->getStartDate(), $_showTime) : ($startDate ? $startDate : false);
         }
     }
     if ($startDate) {
         list($startDate, $endDate) = ITwebexperts_Payperrentals_Helper_Date::convertDatepickerToDbFormat($startDate, $endDate);
         $rentalPrice = ITwebexperts_Payperrentals_Helper_Price::calculatePrice($productId, $startDate, $endDate, 1, ITwebexperts_Payperrentals_Helper_Data::getCustomerGroup());
         $damageWaiverPrice = self::getDamageWaiver($productId, $rentalPrice);
     } else {
         $damageWaiverPrice = self::getDamageWaiver($productId, 0);
     }
     if ($damageWaiverPrice) {
         $html .= '<input type="radio" name="damage_waiver" class="damage-waiver-input" id="damageWaiverNo" value="0" ';
         if (!$damageWaiverSelected) {
             $html .= 'checked="checked"';
         }
         $html .= '/>';
         $html .= '<label for="damageWaiverNo">' . Mage::helper('payperrentals')->__(' No') . '</label>';
         $html .= '</div>';
         $html .= '<div>';
         $html .= '<input type="radio" name="damage_waiver" class="damage-waiver-input" id="damageWaiverYes" value="1" ';
         if ($damageWaiverSelected) {
             $html .= 'checked="checked"';
         }
         $html .= '/>';
         $html .= '<label for="damageWaiverYes">' . Mage::helper('payperrentals')->__(' Yes +%s', Mage::helper('checkout')->formatPrice($damageWaiverPrice > -1 ? $damageWaiverPrice : $item->getData(ITwebexperts_Payperrentals_Helper_Price::DAMAGE_WAIVER_OPTION_PRICE), true, true)) . '</label>';
         $html .= '</div>';
     }
     return $html;
 }
Beispiel #3
0
 private function _completeBuyRequestObject(&$buyRequest, $product, $productType)
 {
     $msg = '';
     $useNonSequential = Mage::helper('payperrentals/config')->isNonSequentialSelect(Mage::app()->getStore()->getId());
     if (!$buyRequest->getStartDate()) {
         //if (ITwebexperts_Payperrentals_Helper_Data::isUsingGlobalDates($product)) {
         if (Mage::getSingleton('core/session')->getData('startDateInitial')) {
             $buyRequest->setStartDate(Mage::getSingleton('core/session')->getData('startDateInitial'));
             if (Mage::getSingleton('core/session')->getData('endDateInitial')) {
                 $buyRequest->setEndDate(Mage::getSingleton('core/session')->getData('endDateInitial'));
             }
             $resultObject = new Varien_Object();
             Mage::dispatchEvent('init_globals_prepare_advanced', array('buy_request' => $buyRequest, 'productType' => $productType, 'product' => $product, 'result' => $resultObject));
             if ($resultObject->getResult() != '') {
                 $msg = $resultObject->getResult();
             }
         } else {
             if (!ITwebexperts_Payperrentals_Helper_Data::isUsingGlobalDatesShoppingCart($product)) {
                 $msg = Mage::helper('payperrentals')->__('Please specify reservation information');
             } else {
                 $msg = 'call_parent';
             }
         }
         //}
     } else {
         $this->_setNonSequentialInBuyRequest($buyRequest, $useNonSequential);
         if (!$buyRequest->getEndDate()) {
             $buyRequest->setEndDate($buyRequest->getStartDate());
         }
         list($startDate, $endDate) = ITwebexperts_Payperrentals_Helper_Date::convertDatepickerToDbFormat($buyRequest->getStartDate(), $buyRequest->getEndDate());
         $buyRequest->setStartDate($startDate);
         $buyRequest->setEndDate($endDate);
         if ($buyRequest->getStartDate() == $buyRequest->getEndDate()) {
             if (date('H:i:s', strtotime($buyRequest->getStartDate())) == '00:00:00') {
                 $buyRequest->setEndDate(date('Y-m-d', strtotime($buyRequest->getStartDate())) . ' 23:59:59');
             }
         }
     }
     if (!$buyRequest->getStartDate()) {
         if (Mage::helper('payperrentals/config')->NoCalendarUseTodayAsStartDate()) {
             if (Mage::helper('payperrentals/config')->isNextHourSelection()) {
                 $buyRequest->setStartDate(date('Y-m-d', strtotime('+1 day', time())) . ' 00:00:00');
             } else {
                 $buyRequest->setStartDate(date('Y-m-d', strtotime('+0 day', time())) . ' 00:00:00');
             }
         }
     }
     if ($buyRequest->getSelectedDays()) {
         $buyRequest->setEndDate(date('Y-m-d H:i:s', strtotime('+ ' . $buyRequest->getSelectedDays() . ' DAY', strtotime($buyRequest->getStartDate()))));
     }
     if ($buyRequest->getFixedDateId()) {
         $fixedRentalDatesCollection = Mage::getModel('payperrentals/fixedrentaldates')->getCollection()->addFieldToFilter('id', $buyRequest->getFixedDateId())->getFirstItem();
         $fixedStartDate = $fixedRentalDatesCollection->getStartDate();
         $fixedEndDate = $fixedRentalDatesCollection->getEndDate();
         $difference = strtotime($fixedEndDate) - strtotime($fixedStartDate);
         $start_date = date('Y-m-d', strtotime($buyRequest->getStartDate())) . ' ' . date('H:i:s', strtotime($fixedStartDate));
         $end_date = date('Y-m-d H:i:s', strtotime($start_date) + $difference);
         $buyRequest->setStartDate($start_date);
         $buyRequest->setEndDate($end_date);
     }
     return $msg;
 }