Example #1
0
 /**
  * getDateRange
  *
  * :FIXME: simplify
  *
  * @return \XLite\Core\CommonCell
  */
 protected function getDateRange()
 {
     $result = null;
     $paramDatePeriod = self::SEARCH_DATE_PERIOD;
     if (isset($this->currentSearchCnd->{$paramDatePeriod})) {
         $endDate = \XLite\Core\Converter::time();
         if ('M' == $this->currentSearchCnd->{$paramDatePeriod}) {
             $startDate = mktime(0, 0, 0, date('n', $endDate), 1, date('Y', $endDate));
         } elseif ('W' == $this->currentSearchCnd->{$paramDatePeriod}) {
             $startDay = $endDate - date('w', $endDate) * 86400;
             $startDate = mktime(0, 0, 0, date('n', $startDay), date('j', $startDay), date('Y', $startDay));
         } elseif ('D' == $this->currentSearchCnd->{$paramDatePeriod}) {
             $startDate = mktime(0, 0, 0, date('n', $endDate), date('j', $endDate), date('Y', $endDate));
         } elseif ('C' == $this->currentSearchCnd->{$paramDatePeriod}) {
             $paramStartDate = static::SEARCH_START_DATE;
             $paramEndDate = static::SEARCH_END_DATE;
             $paramDateRange = static::SEARCH_DATE_RANGE;
             if (!empty($this->currentSearchCnd->{$paramStartDate}) && !empty($this->currentSearchCnd->{$paramEndDate})) {
                 $tmpDate = strtotime($this->currentSearchCnd->{$paramStartDate});
                 if (false !== $tmpDate) {
                     $startDate = mktime(0, 0, 0, date('n', $tmpDate), date('j', $tmpDate), date('Y', $tmpDate));
                 }
                 $tmpDate = strtotime($this->currentSearchCnd->{$paramEndDate});
                 if (false !== $tmpDate) {
                     $endDate = mktime(23, 59, 59, date('n', $tmpDate), date('j', $tmpDate), date('Y', $tmpDate));
                 }
             } elseif (!empty($this->currentSearchCnd->{$paramDateRange})) {
                 list($startDate, $endDate) = \XLite\View\FormField\Input\Text\DateRange::convertToArray($this->currentSearchCnd->{$paramDateRange});
             }
         }
         if (isset($startDate) && false !== $startDate && false !== $endDate) {
             $result = new \XLite\Core\CommonCell();
             $result->startDate = $startDate;
             $result->endDate = $endDate;
         }
     }
     return $result;
 }
Example #2
0
 /**
  * Prepare certain search condition
  *
  * @param \Doctrine\ORM\QueryBuilder $queryBuilder Query builder to prepare
  * @param integer                    $value        Condition data
  *
  * @return void
  */
 protected function prepareCndDateRange(\Doctrine\ORM\QueryBuilder $queryBuilder, $value)
 {
     if (!empty($value)) {
         list($start, $end) = \XLite\View\FormField\Input\Text\DateRange::convertToArray($value);
         if ($start) {
             $queryBuilder->andWhere('o.date >= :start')->setParameter('start', $start);
         }
         if ($end) {
             $queryBuilder->andWhere('o.date <= :end')->setParameter('end', $end);
         }
     }
 }
Example #3
0
 /**
  * Prepare certain search condition
  *
  * @param \Doctrine\ORM\QueryBuilder $queryBuilder Query builder to prepare
  * @param array                      $value        Condition data
  * @param boolean                    $countOnly    "Count only" flag. Do not need to add "order by" clauses if only count is needed.
  *
  * @return void
  */
 protected function prepareCndDate(\Doctrine\ORM\QueryBuilder $queryBuilder, $value, $countOnly)
 {
     if ($value) {
         $value = \XLite\View\FormField\Input\Text\DateRange::convertToArray($value);
         if (!empty($value[0])) {
             $queryBuilder->andWhere('t.date > :date0')->setParameter('date0', $value[0]);
         }
         if (!empty($value[1])) {
             $queryBuilder->andWhere('t.date < :date1')->setParameter('date1', $value[1]);
         }
     }
 }