public function getCheckAvailabilityCalendarFromService($resourcesId = null, $checkIn = null, $checkOut = null)
 {
     $resultCheck = '';
     if ($resourcesId == null || $checkIn == null || $checkOut == null) {
         return $resultCheck;
     }
     if ($checkIn == null) {
         $defaultDate = DateTime::createFromFormat('d/m/Y', BFCHelper::getStartDate());
         $checkIn = BFCHelper::getStayParam('checkin', $defaultDate);
     }
     if ($checkOut == null) {
         $checkOut = BFCHelper::getStayParam('checkout', $checkIn->modify(BFCHelper::$defaultDaysSpan));
     }
     //calcolo le settimane necessarie
     //$ci = $params['checkin'];
     $options = array('path' => $this->urlCheckAvailabilityCalendar, 'data' => array('resourcesId' => BFCHelper::getQuotedString($resourcesId), 'checkin' => '\'' . $checkIn->format('Ymd') . '\'', 'checkout' => '\'' . $checkOut->format('Ymd') . '\'', '$format' => 'json'));
     $url = $this->helper->getQuery($options);
     $r = $this->helper->executeQuery($url);
     if (isset($r)) {
         $res = json_decode($r);
         $checkDate = $res->d->results ?: $res->d;
         $resultCheck = $checkDate->CheckAvailabilityCalendarByIdList;
     }
     return $resultCheck;
 }
 protected function populateState($ordering = NULL, $direction = NULL)
 {
     $session = JFactory::getSession();
     $searchseed = $session->get('searchseed', rand(), 'com_bookingforconnector');
     if (!$session->has('searchseed', 'com_bookingforconnector')) {
         $session->set('searchseed', $searchseed, 'com_bookingforconnector');
     }
     if (!isset($defaultDate)) {
         $defaultDate = DateTime::createFromFormat('d/m/Y', BFCHelper::getStartDate());
     }
     $ci = clone BFCHelper::getStayParam('checkin', $defaultDate);
     $this->setState('params', array('merchantId' => JRequest::getInt('merchantId'), 'offerId' => JRequest::getInt('offerId'), 'packageid' => JRequest::getInt('packageId'), 'onSellUnitId' => JRequest::getInt('onsellunitid'), 'searchseed' => $searchseed, 'filters' => JRequest::getVar('filters'), 'checkin' => BFCHelper::getStayParam('checkin', $defaultDate), 'checkout' => BFCHelper::getStayParam('checkout', $ci->modify(BFCHelper::$defaultDaysSpan)), 'duration' => BFCHelper::getStayParam('duration'), 'paxages' => BFCHelper::getStayParam('paxages'), 'paxes' => count(BFCHelper::getStayParam('paxes'))));
     return parent::populateState($ordering, $direction);
 }
$checkoutspan = '+1 day';
$pars = BFCHelper::getSearchParamsSession();
//Recupero date dal modello resource per avere la prima  e l'utima data disponibile
$checkoutspan = '+1 day';
//$startDate = DateTime::createFromFormat('d/m/Y',BFCHelper::getStartDate());
//$endDate = DateTime::createFromFormat('d/m/Y',BFCHelper::getEndDate());
//$startDate2 = clone $startDate;
//$startDate2->modify($checkoutspan);
// recupero solo il primo sabato disponibile
$strStartdate = $params->get('startdate');
$strEnddate = $params->get('enddate');
$condominiumsResults = $params->get('groupbycondominium');
if (!empty($strStartdate)) {
    $startDate = DateTime::createFromFormat('d-m-Y', $strStartdate);
} else {
    $startDate = DateTime::createFromFormat('d/m/Y', BFCHelper::getStartDate());
}
if (!empty($strStartdate)) {
    $endDate = DateTime::createFromFormat('d-m-Y', $strEnddate);
} else {
    $endDate = DateTime::createFromFormat('d/m/Y', BFCHelper::getEndDate());
}
//if($groupbycondominium){
////echo "<pre> groupbycondominium :";
////echo $groupbycondominium;
////echo "</pre>";
//}
/* script per aggiornare a data odierna */
//$today=DateTime::createFromFormat('d-m-Y',date('d-m-Y',strtotime(date('d-m-Y'). ' + 1 days')));
$today = DateTime::createFromFormat('d-m-Y', date('d-m-Y', strtotime(date('d-m-Y'))));
if ($today >= $startDate) {
 protected function populateState($ordering = NULL, $direction = NULL)
 {
     //$ci = clone BFCHelper::getStayParam('checkin', new DateTime());
     //recupero la prima data disponibile per la risorsa se riesco altrimenti recupero la prima data disponibile
     $resourceId = JRequest::getInt('resourceId');
     if (isset($resourceId)) {
         $dates = $this->getCheckInDatesFromService($resourceId, null);
         if (($pos = strpos($dates, ',')) !== false) {
             $dates = explode(",", $dates);
         }
         if (is_array($dates)) {
             $tmpDate1 = array_values($dates);
             $tmpDate = array_shift($tmpDate1);
             $defaultDate = DateTime::createFromFormat('Ymd', $tmpDate);
             //				$defaultDate = DateTime::createFromFormat('Ymd',array_shift(array_values($dates)));
         } elseif ($dates != '') {
             $defaultDate = DateTime::createFromFormat('Ymd', $dates);
         }
     }
     if (!isset($defaultDate)) {
         $defaultDate = DateTime::createFromFormat('d/m/Y', BFCHelper::getStartDate());
     }
     $ci = clone BFCHelper::getStayParam('checkin', $defaultDate);
     $defaultRequest = array('resourceId' => JRequest::getInt('resourceId'), 'checkin' => BFCHelper::getStayParam('checkin', $defaultDate), 'checkout' => BFCHelper::getStayParam('checkout', $ci->modify(BFCHelper::$defaultDaysSpan)), 'duration' => BFCHelper::getStayParam('duration'), 'paxages' => BFCHelper::getStayParam('paxages'), 'extras' => BFCHelper::getStayParam('extras'), 'packages' => BFCHelper::getStayParam('packages'), 'pricetype' => BFCHelper::getStayParam('pricetype'), 'rateplanId' => BFCHelper::getStayParam('rateplanId'), 'variationPlanId' => BFCHelper::getStayParam('variationPlanId'), 'state' => BFCHelper::getStayParam('state'), 'gotCalculator' => JRequest::getBool('calculate'));
     //		echo "<pre>defaultRequest";
     //		echo print_r($defaultRequest);
     //		echo "</pre>";
     $stayrequest = JRequest::getVar('stayrequest');
     // support for rsforms!
     if ($stayrequest == null || $stayrequest == '') {
         $form = JRequest::getVar('form');
         $stayrequest = htmlspecialchars_decode($form['stayrequest'], ENT_COMPAT);
     }
     if ($stayrequest != null && $stayrequest != '') {
         try {
             $params = json_decode($stayrequest);
             $defaultRequest = array('resourceId' => $params->resourceId, 'checkin' => DateTime::createFromFormat('d/m/Y', $params->checkin), 'checkout' => DateTime::createFromFormat('d/m/Y', $params->checkout), 'duration' => $params->duration, 'paxages' => $params->paxages, 'extras' => $params->extras, 'packages' => $params->packages, 'pricetype' => $params->pricetype, 'rateplanId' => $params->rateplanId, 'variationPlanId' => $params->variationPlanId, 'state' => $params->state, 'gotCalculator' => false, 'fromExtForm' => true, 'hasRateplans' => false);
         } catch (Exception $e) {
         }
     }
     //echo var_dump($defaultRequest);die();
     $this->setState('params', $defaultRequest);
     return parent::populateState();
 }