コード例 #1
0
 public static function isHollidayHour($datetime)
 {
     //validate, if calendar fully loadded
     $sql = "\n            SELECT \n                cled_id\n            FROM\n              cled_calendar_exception_dates \n            WHERE cled_date = DATE(:dt) \n                OR  cled_date = ADDDATE(DATE(:dt), 1) \n                OR  cled_date = ADDDATE(DATE(:dt), -1)\n        ";
     $rawData = Yii::app()->db->createCommand($sql);
     $rawData->bindParam(":dt", $datetime, PDO::PARAM_STR);
     $cled_data = $rawData->queryAll();
     //aizpildam esosho un nakamo gadu, ja nav 3 ierakstu
     if (count($cled_data) < 3) {
         $cled = new CledCalendarExceptionDates();
         $cled->fillYear(date('Y'));
         $cled->fillYear(date('Y') + 1);
     }
     /**
      * peec kalendara paskatās:
      *  - vai svētdiena un brīvdiens
      *  - ir svetkudiena
      *  - pirms no 23:00
      *  - pēc līdz 6:00
      */
     $sql = "\n            SELECT MAX(\n              CASE\n                WHEN cled_type = 'Holliday' \n                AND WEEKDAY(cled_date) = 6 \n                THEN 1 \n                WHEN cled_type = 'Public Holliday' \n                THEN 1 \n                ELSE 0 \n              END) is_extra_date \n            FROM\n              cled_calendar_exception_dates \n            WHERE cled_date = DATE(:dt) \n              OR cled_date = DATE(ADDDATE(:dt, INTERVAL 1 HOUR)) \n              OR cled_date = DATE(ADDDATE(:dt, INTERVAL - 6*60*60 - 1 SECOND))\n        ";
     $rawData = Yii::app()->db->createCommand($sql);
     $rawData->bindParam(":dt", $datetime, PDO::PARAM_STR);
     return $rawData->queryScalar() == 1;
 }