/** * 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); }
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; }
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; }