示例#1
0
 public static function isDayOff($date = null)
 {
     if (is_null($date)) {
         $date = date("d.m.Y");
     }
     //$date = "4.11.2016";
     $dateHelper = new DateHelper();
     list($day, $month, $year) = explode(".", $date);
     $timestamp = $dateHelper->getDateTimestamp($date);
     $dayOfWeek = date("w", $timestamp);
     if ($dayOfWeek == 0) {
         $dayOfWeek = 7;
     }
     $res = WorkCalendarTable::getList(array('filter' => array('DAY' => intval($day), 'MONTH' => intval($month), 'YEAR' => intval($year))));
     if (!$res) {
         //Если дата не найдена - смотрим день недели и отвечаем выходной он или нет
         if ($dayOfWeek >= 1 && $dayOfWeek <= 5) {
             return false;
         } else {
             return true;
         }
     } else {
         //Если дата найдена - смотрим выходной день или нет по флагу
         if ($res[0]["WEEKEND"] == "Y" || $res[0]["WEEKEND"] === true) {
             return true;
         } else {
             return false;
         }
     }
 }
示例#2
0
 protected static function getCalendar($month, $year)
 {
     //В коде может использоваться другой пакет
     if (CoreLib\Loader::issetPackage('dates')) {
         //Если пакет установлен, подключаем его
         CoreLib\Loader::IncludePackage('dates');
     }
     //$month = 2; $year = 2017; //Для теста
     $arCalendar = array();
     $dateHelper = new CoreLib\DateHelper();
     $arCalendar["INFO"]["MONTH"] = $month;
     $arCalendar["INFO"]["YEAR"] = $year;
     //Получаем timestamp на первое число заданного месяца и года
     $arCalendar["INFO"]["START_DATE"] = "1." . $month . "." . $year;
     $arCalendar["INFO"]["START_TIMESTAMP"] = $dateHelper->getDateTimestamp($arCalendar["INFO"]["START_DATE"]);
     //Получаем количество дней в месяце
     $arCalendar["INFO"]["NUMBER_OF_DAYS"] = intval(date("t", $arCalendar["INFO"]["START_TIMESTAMP"]));
     //Получаем timestamp на последнее число заданного месяца и года
     $arCalendar["INFO"]["LAST_DATE"] = $arCalendar["INFO"]["NUMBER_OF_DAYS"] . "." . $month . "." . $year;
     $arCalendar["INFO"]["LAST_TIMESTAMP"] = $dateHelper->getDateTimestamp($arCalendar["INFO"]["LAST_DATE"]);
     //Получаем день недели для 1го числа месяца
     $arCalendar["INFO"]["START_DAY_OF_WEEK"] = intval(date("w", $arCalendar["INFO"]["START_TIMESTAMP"]));
     if ($arCalendar["INFO"]["START_DAY_OF_WEEK"] == 0) {
         $arCalendar["INFO"]["START_DAY_OF_WEEK"] = 7;
     }
     //Получаем день недели для последнего числа месяца
     $arCalendar["INFO"]["LAST_DAY_OF_WEEK"] = intval(date("w", $arCalendar["INFO"]["LAST_TIMESTAMP"]));
     if ($arCalendar["INFO"]["LAST_DAY_OF_WEEK"] == 0) {
         $arCalendar["INFO"]["LAST_DAY_OF_WEEK"] = 7;
     }
     //Если 1е число не понедельник - нужно получить несколько дней предыдущего месяца
     if ($arCalendar["INFO"]["START_DAY_OF_WEEK"] != 1) {
         $arCalendar["INFO"]["DAY_PREV_MONTH"] = $arCalendar["INFO"]["START_DAY_OF_WEEK"] - 1;
         $arCalendar["INFO"]["FIRST_DAY_PREV_MONTH"] = $dateHelper->strToTime($arCalendar["INFO"]["START_DATE"], "-" . $arCalendar["INFO"]["DAY_PREV_MONTH"] . " day");
         list($arCalendar["INFO"]["PREV_MONTH_DAY"], $arCalendar["INFO"]["PREV_MONTH_MONTH"], $arCalendar["INFO"]["PREV_MONTH_YEAR"]) = explode(".", $arCalendar["INFO"]["FIRST_DAY_PREV_MONTH"]);
         for ($i = 0; $i < $arCalendar["INFO"]["DAY_PREV_MONTH"]; $i++) {
             if ($i == 0) {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["PREV_MONTH"][intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])] = array("TEXT" => intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . " " . self::getMonthName(intval($arCalendar["INFO"]["PREV_MONTH_MONTH"])), "DAY_OF_WEEK" => $dayOfWeek);
             } else {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["PREV_MONTH"][intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])] = array("TEXT" => intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i, "DAY_OF_WEEK" => $dayOfWeek);
             }
         }
     }
     //Вносим информацию по заданному месяцу
     for ($i = 0; $i < $arCalendar["INFO"]["NUMBER_OF_DAYS"]; $i++) {
         if ($i == 0) {
             $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . $month . "." . $year));
             if ($dayOfWeek == 0) {
                 $dayOfWeek = 7;
             }
             //Использование пакета "Даты"
             if (CoreLib\Loader::issetPackage('dates')) {
                 $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . $month . "." . $year);
                 if ($isDayOff) {
                     $dayOfWeek = 6;
                 } else {
                     $dayOfWeek = 1;
                 }
             }
             $arCalendar["NOW_MONTH"][$i + 1 . "." . $month . "." . $year] = array("TEXT" => $i + 1 . " " . self::getMonthName($month), "DAY_OF_WEEK" => $dayOfWeek);
         } else {
             $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . $month . "." . $year));
             if ($dayOfWeek == 0) {
                 $dayOfWeek = 7;
             }
             //Использование пакета "Даты"
             if (CoreLib\Loader::issetPackage('dates')) {
                 $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . $month . "." . $year);
                 if ($isDayOff) {
                     $dayOfWeek = 6;
                 } else {
                     $dayOfWeek = 1;
                 }
             }
             $arCalendar["NOW_MONTH"][$i + 1 . "." . $month . "." . $year] = array("TEXT" => $i + 1, "DAY_OF_WEEK" => $dayOfWeek);
         }
     }
     //Если последний день заданного месяца не воскресение - нужно добавить несколько дней следующего месяца
     if ($arCalendar["INFO"]["LAST_DAY_OF_WEEK"] != 7) {
         $arCalendar["INFO"]["FIRST_DAY_NEXT_MONTH"] = $dateHelper->strToTime($arCalendar["INFO"]["LAST_DATE"], "+1 day");
         list($arCalendar["INFO"]["NEXT_MONTH_DAY"], $arCalendar["INFO"]["NEXT_MONTH_MONTH"], $arCalendar["INFO"]["NEXT_MONTH_YEAR"]) = explode(".", $arCalendar["INFO"]["FIRST_DAY_NEXT_MONTH"]);
         $arCalendar["INFO"]["DAY_NEXT_MONTH"] = 7 - $arCalendar["INFO"]["LAST_DAY_OF_WEEK"];
         for ($i = 0; $i < $arCalendar["INFO"]["DAY_NEXT_MONTH"]; $i++) {
             if ($i == 0) {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["NEXT_MONTH"][$i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])] = array("TEXT" => $i + 1 . " " . self::getMonthName(intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"])), "DAY_OF_WEEK" => $dayOfWeek);
             } else {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["NEXT_MONTH"][$i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])] = array("TEXT" => $i + 1, "DAY_OF_WEEK" => $dayOfWeek);
             }
         }
     }
     return $arCalendar;
 }
示例#3
0
 /**
  * @deprecated
  * @see DateHelper->getNameMonth
  */
 public static function getNameMonth($month = null)
 {
     $dateHelper = new DateHelper();
     return $dateHelper->getNameMonth($month);
 }
示例#4
0
 public static function convertCurrency($value = null, $fromCur = null, $toCur = null, $date = null)
 {
     try {
         if (is_null($value)) {
             throw new Exception\ArgumentNullException('$value');
         }
         if (is_null($fromCur)) {
             throw new Exception\ArgumentNullException('$fromCur');
         }
         if (is_null($toCur)) {
             throw new Exception\ArgumentNullException('$toCur');
         }
     } catch (Exception\ArgumentNullException $e) {
         $e->showException();
         return false;
     }
     if (floatval($value) == 0) {
         return 0;
     }
     $fromCur = strtoupper($fromCur);
     $toCur = strtoupper($toCur);
     if (is_null($date) || !DateHelper::checkDate($date)) {
         $date = date("d.m.Y");
     }
     $res = Tables\CurrencyTable::getList(array("select" => "RATING", "filter" => array("CODE" => $fromCur)));
     if ($res) {
         $rating = $res[0]["RATING"];
     } else {
         $rating = 1;
     }
     $newValue = $value * (self::getCurrencyRate($toCur, $fromCur, $date) / $rating);
     return floatval(round($newValue, 4));
 }
示例#5
0
 private static function getValues($tariffID, $date = null, $type = 'hourly')
 {
     if (is_null($date)) {
         $arDate = explode('.', date('d.m.Y'));
     } else {
         if ($date = DateHelper::validateDate($date)) {
             $arDate = explode('.', $date);
         } else {
             $arDate = explode('.', date('d.m.Y'));
         }
     }
     $query = new Query('select');
     $sqlHelper = new SqlHelper();
     $valuesHourlyTableName = ValuesHourlyTable::getTableName();
     $sql = "SELECT " . $sqlHelper->getSumFunction("VALUE") . " , " . $sqlHelper->getSumFunction("COST");
     if ($type == 'hourly') {
         $sql .= " , " . $sqlHelper->wrapQuotes("HOUR");
     }
     if ($type == 'hourly' || $type == 'daily') {
         $sql .= " , " . $sqlHelper->wrapQuotes("DAY");
     }
     if ($type == 'hourly' || $type == 'daily' || $type == 'monthly') {
         $sql .= " , " . $sqlHelper->wrapQuotes("MONTH");
     }
     $sql .= " , " . $sqlHelper->wrapQuotes("YEAR");
     $sql .= " FROM " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . " WHERE " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("TARIFF_ID") . " =" . intval($tariffID);
     if ($type == 'hourly') {
         $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("DAY") . " =" . intval($arDate[0]);
     }
     if ($type == 'hourly' || $type == 'daily') {
         $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("MONTH") . " =" . intval($arDate[1]);
     }
     if ($type == 'hourly' || $type == 'daily' || $type == 'monthly') {
         $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("YEAR") . " =" . intval($arDate[2]);
     }
     if ($type == 'hourly') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("HOUR") . " ";
     } elseif ($type == 'daily') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("DAY") . " ";
     } elseif ($type == 'monthly') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("MONTH") . " ";
     } elseif ($type == 'yearly') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("YEAR") . " ";
     }
     $query->setQueryBuildParts($sql);
     $res = $query->exec();
     if ($res->getResult()) {
         $arResult = array();
         $i = 0;
         while ($ar_res = $res->fetch()) {
             $arResult[$i] = array('SUM_VALUE' => round($ar_res['SUM_VALUE'], 2), 'SUM_COST' => round($ar_res['SUM_COST'], 2), 'YEAR' => intval($ar_res['YEAR']));
             if (isset($ar_res['HOUR'])) {
                 $arResult[$i]['HOUR'] = intval($ar_res['HOUR']);
             }
             if (isset($ar_res['DAY'])) {
                 $arResult[$i]['DAY'] = intval($ar_res['DAY']);
             }
             if (isset($ar_res['MONTH'])) {
                 $arResult[$i]['MONTH'] = intval($ar_res['MONTH']);
             }
             $i++;
         }
         return $arResult;
     } else {
         return false;
     }
 }
示例#6
0
 public static function showListTable($carID = null)
 {
     if (is_null($carID)) {
         $carID = MyCar::getDefaultCarID();
     }
     $arList = static::getRepairPartsList($carID);
     if ($arList) {
         echo '<div id="tsList"></div><div id="tsPager"></div>';
         $dateHelper = new CoreLib\DateHelper();
         $imgSrcPath = CoreLib\Tools::getSitePath(CoreLib\Loader::getTemplate('icar') . "images/");
         //msDebug($arList);
         $arDatas = array();
         foreach ($arList as $list) {
             $arDatas[] = array('id' => $list['ID'], 'date' => $list['DATE'], 'timestamp' => "=" . $dateHelper->getDateTimestamp($list['DATE']), 'name' => $list['NAME'], 'catalog_num' => $list['CATALOG_NUMBER'], 'cost' => "=" . $list['COST'], 'number' => "=" . $list['NUMBER'], 'sum' => "=" . $list['COST'] * $list['NUMBER'], 'odo' => "=" . $list['ODO'], 'point_name' => $list['POINT_NAME'], 'point_latitude' => $list['POINT_LATITUDE'], 'point_longitude' => $list['POINT_LONGITUDE'], 'yandex_map' => "<img src='https://static-maps.yandex.ru/1.x/?l=map&z=12&size=600,450&pt=" . $list['POINT_LONGITUDE'] . "," . $list['POINT_LATITUDE'] . ",pm2blm'>", 'point_type' => $list['POINT_TYPE_NAME'], 'info' => strlen($list['INFO']) > 0 ? "<img src='" . $imgSrcPath . "info.png'>" : "", 'comment' => $list['INFO'], 'edit' => "<a href='edit.php?id=" . $list['ID'] . "'><img src='" . $imgSrcPath . "edit.png'></a>", 'delete' => "<a href='delete.php?id=" . $list['ID'] . "'><img src='" . $imgSrcPath . "delete.png'></a>");
         }
         $webixHelper = new IcarWebixHelper();
         $webixHelper->addFunctionSortByTimestamp();
         $arData = array('grid' => 'tsGrid', 'container' => 'tsList', 'footer' => true, 'tooltip' => true, 'pager' => array('container' => 'tsPager'), 'columns' => array($webixHelper->getColumnArray('DATE', array('footer' => '={text:"Итого:", colspan:3}')), $webixHelper->getColumnArray('NAME'), $webixHelper->getColumnArray('CATALOG_NUMBER'), $webixHelper->getColumnArray('SUM', array('footer' => '={ content:"summColumn" }')), $webixHelper->getColumnArray('COST'), $webixHelper->getColumnArray('NUMBER'), $webixHelper->getColumnArray('ODO'), $webixHelper->getColumnArray('POINT'), $webixHelper->getColumnArray('INFO'), $webixHelper->getColumnArray('EDIT'), $webixHelper->getColumnArray('DELETE')), 'data' => $arDatas);
         return CoreLib\Webix::showDataTable($arData);
     } else {
         echo 'Нет записей о приобретенных запчастях';
         return false;
     }
 }
示例#7
0
 public static function checkAlerts()
 {
     $arAlerts = array();
     $arCars = static::getListCar();
     $dateHelper = new DateHelper();
     $time = time();
     foreach ($arCars as &$arCar) {
         //Проверка необходимости ТО
         $arCar['CURRENT_MILEAGE'] = static::getCarCurrentMileage($arCar['ID']);
         //echo 'CURRENT_MILEAGE ='.$arCar['CURRENT_MILEAGE']."<br>";
         //echo 'count = floor(CURRENT_MILEAGE / INTERVAL_TS)<br>';
         $count = floor($arCar['CURRENT_MILEAGE'] / $arCar['INTERVAL_TS']);
         //echo $count.' = floor('.$arCar['CURRENT_MILEAGE'].' / '.$arCar['INTERVAL_TS'].')<br>';
         //echo 'minus = INTERVAL_TS * count<br>';
         $minus = $arCar['INTERVAL_TS'] * $count;
         //echo $minus.' = '.$arCar['INTERVAL_TS'].' * '.$count.'<br>';
         //echo 'curMil = CURRENT_MILEAGE - minus<br>';
         $curMil = $arCar['CURRENT_MILEAGE'] - $minus;
         //echo $curMil.' = '.$arCar['CURRENT_MILEAGE'].' - '.$minus.'<br>';
         //echo 'raznica = INTERVAL_TS - curMil<br>';
         $raznica = $arCar['INTERVAL_TS'] - $curMil;
         //echo $raznica.' = '.$arCar['INTERVAL_TS'].' - '.$curMil.'<br>';
         if ($raznica > 500 && $raznica <= 1000) {
             $arAlerts[] = array('COLOR' => 'green', 'TYPE' => 'odo', 'TEXT' => 'Обратите внимание! Скоро необходимо будет проходить плановое ТО на автомобиле "' . $arCar['NAME'] . '"! Осталось проехать ' . $raznica . ' км');
         } elseif ($raznica > 300 && $raznica <= 500) {
             $arAlerts[] = array('COLOR' => 'yellow', 'TYPE' => 'odo', 'TEXT' => 'Внимание! В ближайшее время необходимо пройти плановое ТО на автомобиле "' . $arCar['NAME'] . '"! Осталось проехать ' . $raznica . ' км');
         } elseif ($raznica >= 0 && $raznica <= 300) {
             $arAlerts[] = array('COLOR' => 'red', 'TYPE' => 'odo', 'TEXT' => 'ВНИМАНИЕ! Необходимо в срочном порядке пройти плановое ТО на автомобиле "' . $arCar['NAME'] . '"!');
         }
         //Проверка необходимости оформления новой страховки и прохождения ГТО
         $carOsagoTime = $dateHelper->getDateTimestamp($arCar['DATE_OSAGO_END']);
         $carGtoTime = $dateHelper->getDateTimestamp($arCar['DATE_GTO_END']);
         $carOsagoDay = floor(($carOsagoTime - $time) / (60 * 60 * 24)) + 1;
         $carGtoDay = floor(($carGtoTime - $time) / (60 * 60 * 24)) + 1;
         if ($carOsagoDay > 5 && $carOsagoDay <= 30) {
             $arAlerts[] = array('COLOR' => 'green', 'TYPE' => 'osago', 'TEXT' => 'Заканчивается срок действия полиса ОСАГО у автомобиля "' . $arCar['NAME'] . '". Рекомендуем позаботится о продлении заранее. Осталось ' . $carOsagoDay . ' ' . $dateHelper->showDaysRus($carOsagoDay));
         } elseif ($carOsagoDay > 0 && $carOsagoDay <= 5) {
             $arAlerts[] = array('COLOR' => 'yellow', 'TYPE' => 'osago', 'TEXT' => 'Внимание! Скоро закончится срок действия полиса ОСАГО у автомобиля "' . $arCar['NAME'] . '". Необходимо продлить полис! Осталось ' . $carOsagoDay . ' ' . $dateHelper->showDaysRus($carOsagoDay));
         } elseif ($carOsagoDay == 0) {
             $arAlerts[] = array('COLOR' => 'red', 'TYPE' => 'osago', 'TEXT' => 'ВНИМАНИЕ! Сегодня заканчиватся срок действия полиса ОСАГО у автомобиля "' . $arCar['NAME'] . '". Необходимо СРОЧНО продлить полис!');
         } elseif ($carOsagoDay < 0) {
             $arAlerts[] = array('COLOR' => 'red', 'TYPE' => 'osago', 'TEXT' => 'ВНИМАНИЕ! Закончился срок действия полиса ОСАГО у автомобиля "' . $arCar['NAME'] . '". Необходимо СРОЧНО продлить полис!');
         }
         if ($carGtoDay > 5 && $carGtoDay <= 30) {
             $arAlerts[] = array('COLOR' => 'green', 'TYPE' => 'gto', 'TEXT' => 'Подходит дата очередного ГТО у автомобиля "' . $arCar['NAME'] . '". Подготовьте автомобиль к осмотру. Осталось ' . $carGtoDay . ' ' . $dateHelper->showDaysRus($carGtoDay));
         } elseif ($carGtoDay > 0 && $carGtoDay <= 5) {
             $arAlerts[] = array('COLOR' => 'yellow', 'TYPE' => 'gto', 'TEXT' => 'Внимание! Скоро подойдет дата очередного ГТО у автомобиля "' . $arCar['NAME'] . '". Последняя возможность подготовить автомобиль к осмотру! Осталось ' . $carGtoDay . ' ' . $dateHelper->showDaysRus($carGtoDay));
         } elseif ($carGtoDay == 0) {
             $arAlerts[] = array('COLOR' => 'red', 'TYPE' => 'gto', 'TEXT' => 'ВНИМАНИЕ! Сегодня последний день действия ГТО на автомобиле "' . $arCar['NAME'] . '". Необходимо СРОЧНО пройти ГТО!');
         } elseif ($carGtoDay < 0) {
             $arAlerts[] = array('COLOR' => 'red', 'TYPE' => 'gto', 'TEXT' => 'ВНИМАНИЕ! Необходимо СРОЧНО пройти ГТО на автомобиле "' . $arCar['NAME'] . '". Езда без ГТО может привести к штрафу и лишению прав. Необходимо СРОЧНО пройти ГТО!');
         }
         //msDebug($arCar);
     }
     unset($arCar);
     return $arAlerts;
 }
示例#8
0
 protected static function parseSunRiseSet($city, $arWeather)
 {
     $dateHelper = new DateHelper();
     list($sunRiseDate, $sunRiseTime) = explode('T', $arWeather['sun']['@attributes']['rise']);
     $sunRiseDate = $dateHelper->convertDateFromDB($sunRiseDate);
     $sunRiseTime = explode(':', $sunRiseTime);
     $sunRiseTime[0] += $city['UTC_HOUR'];
     if ($sunRiseTime[0] > 23) {
         $sunRiseTime[0] -= 24;
         $sunRiseDate = $dateHelper->strToTime($sunRiseDate);
     }
     list($sunSetDate, $sunSetTime) = explode('T', $arWeather['sun']['@attributes']['set']);
     $sunSetDate = $dateHelper->convertDateFromDB($sunSetDate);
     $sunSetTime = explode(':', $sunSetTime);
     $sunSetTime[0] += $city['UTC_HOUR'];
     if ($sunSetTime[0] > 23) {
         $sunSetTime[0] -= 24;
         $sunSetDate = $dateHelper->strToTime($sunSetDate);
     }
     $sunRiseMin = $sunRiseTime[0] * 60 + $sunRiseTime[1];
     $sunSetMin = $sunSetTime[0] * 60 + $sunSetTime[1];
     if ($sunSetMin >= $sunRiseMin) {
         $sunDayMin = $sunSetMin - $sunRiseMin;
     } else {
         $sunDayMin = $sunSetMin + 24 * 60 - $sunRiseMin;
     }
     $sunDayHour = floor($sunDayMin / 60);
     $sunDayMin -= $sunDayHour * 60;
     $arSunRise = SunTable::getList(array('filter' => array('CITY_ID' => $city['ID'], 'DATE' => $sunRiseDate)));
     $arInsertUpdate = array('CITY_ID' => $city['ID'], 'DATE' => $sunRiseDate, 'SUNRISE' => $sunRiseTime[0] . ':' . $sunRiseTime[1] . ':' . $sunRiseTime[2], 'SUNSET' => $sunSetTime[0] . ':' . $sunSetTime[1] . ':' . $sunSetTime[2], 'DAYTIME' => $sunDayHour . ':' . $sunDayMin . ':00');
     if ($arSunRise) {
         //Update
         $query = new Query('update');
         $query->setUpdateParams($arInsertUpdate, $arSunRise[0]['ID'], SunTable::getTableName(), SunTable::getMapArray());
         $res = $query->exec();
         if ($res->getResult()) {
             return $res->getInsertId();
         } else {
             return false;
         }
     } else {
         //Insert
         $query = new Query('insert');
         $query->setInsertParams($arInsertUpdate, SunTable::getTableName(), SunTable::getMapArray());
         $res = $query->exec();
         if ($res->getResult()) {
             return $res->getAffectedRows();
         } else {
             return false;
         }
     }
 }
示例#9
0
 public static function updateTsFromPost($tsID = null, $post = null)
 {
     try {
         if (is_null($tsID)) {
             throw new Exception\ArgumentNullException('tsID');
         }
         if (is_null($post)) {
             throw new Exception\ArgumentNullException('_POST');
         }
     } catch (Exception\ArgumentNullException $e) {
         $e->showException();
         return false;
     }
     //msDebug($post);
     $arUpdate = array();
     if (isset($post['my_car']) || intval($post['my_car']) <= 0) {
         $arUpdate['MY_CAR_ID'] = intval($post['my_car']);
     }
     if (isset($post['ts_num'])) {
         $arUpdate['TS_NUM'] = intval($post['ts_num']);
     }
     if (isset($post['date']) && CoreLib\DateHelper::checkDate($post['date'])) {
         $arUpdate['DATE'] = CoreLib\DateHelper::validateDate($post['date']);
     }
     if (isset($post['executor']) && intval($post['executor']) <= 0) {
         $arUpdate['EXECUTORS_ID'] = intval($post['executor']);
     }
     if (isset($post['cost'])) {
         $post['cost'] = str_replace(" ", "", $post['cost']);
         $post['cost'] = str_replace(",", ".", $post['cost']);
         $post['cost'] = floatval($post['cost']);
         $arUpdate['COST'] = $post['cost'];
     }
     if (isset($post['odo'])) {
         $post['odo'] = str_replace(" ", "", $post['odo']);
         $post['odo'] = str_replace(",", ".", $post['odo']);
         $post['odo'] = floatval($post['odo']);
         $arUpdate['ODO'] = $post['odo'];
     }
     if (isset($post['ts_point']) && intval($post['ts_point']) > 0) {
         $arUpdate['POINTS_ID'] = intval($post['ts_point']);
     } else {
         if (isset($post['newpoint_address']) || isset($post['newpoint_lat']) && isset($post['newpoint_lon'])) {
             $arPoint = array();
             if (isset($post['newpoint_name']) && strlen($post['newpoint_name']) > 3) {
                 $arPoint['NAME'] = $post['newpoint_name'];
             } else {
                 $arPoint['NAME'] = '[auto] Сервис';
             }
             if (isset($post['newpoint_address']) && strlen($post['newpoint_address']) > 5) {
                 $arPoint['ADDRESS'] = $post['newpoint_address'];
             }
             if (isset($post['newpoint_lat']) && strlen($post['newpoint_lat']) > 2 && (isset($post['newpoint_lon']) && strlen($post['newpoint_lon']) > 2)) {
                 $arPoint['LON'] = $post['newpoint_lon'];
                 $arPoint['LAT'] = $post['newpoint_lat'];
             }
             $arPoint['TYPE'] = Points::getPointTypeIdByCode('service');
             $arUpdate['POINTS_ID'] = Points::createNewPoint($arPoint);
         }
     }
     if (isset($post['comment']) && strlen($post['comment']) > 0) {
         $arUpdate['DESCRIPTION'] = trim(htmlspecialchars($post['comment']));
     }
     if ($res = static::updateTs($tsID, $arUpdate)) {
         return true;
     } else {
         return false;
     }
 }
示例#10
0
 public static function showListTable($carID = null, $div = null, $first = false)
 {
     if (is_null($carID)) {
         $carID = MyCar::getDefaultCarID();
     }
     $arList = static::getFuelList($carID);
     if ($arList) {
         echo '<div id="fuelList"></div><div id="fuelPager"></div>';
         $dateHelper = new CoreLib\DateHelper();
         $imgSrcPath = CoreLib\Tools::getSitePath(CoreLib\Loader::getTemplate('icar') . "images/");
         //msDebug($arList);
         $arDatas = array();
         foreach ($arList as $list) {
             $arDatas[] = array('id' => $list['ID'], 'date' => $list['DATE'], 'timestamp' => "=" . $dateHelper->getDateTimestamp($list['DATE']), 'odo' => "=" . $list['ODO'], 'fuelmark_name' => $list['FUELMARK_NAME'], 'liter' => "=" . $list['LITER'], 'liter_cost' => "=" . $list['LITER_COST'], 'sum' => "=" . $list['SUM'], 'full' => $list['FULL'] ? "Да" : "-", 'expence' => "=" . $list['EXPENCE'], 'point_name' => $list['POINT_NAME'], 'point_latitude' => $list['POINT_LATITUDE'], 'point_longitude' => $list['POINT_LONGITUDE'], 'yandex_map' => "<img src='https://static-maps.yandex.ru/1.x/?l=map&z=12&size=600,450&pt=" . $list['POINT_LONGITUDE'] . "," . $list['POINT_LATITUDE'] . ",pm2blm'>", 'point_type' => $list['POINT_TYPE_NAME'], 'info' => strlen($list['INFO']) > 0 ? "<img src='" . $imgSrcPath . "info.png'>" : "", 'comment' => $list['INFO'], 'edit' => "<a href='edit.php?id=" . $list['ID'] . "'><img src='" . $imgSrcPath . "edit.png'></a>", 'delete' => "<a href='delete.php?id=" . $list['ID'] . "'><img src='" . $imgSrcPath . "delete.png'></a>");
         }
         $webixHelper = new IcarWebixHelper();
         $webixHelper->addFunctionSortByTimestamp();
         $arData = array('grid' => 'fuelGrid', 'container' => 'fuelList', 'footer' => true, 'tooltip' => true, 'pager' => array('container' => 'fuelPager'), 'columns' => array($webixHelper->getColumnArray('DATE', array('footer' => '={text:"Итого:", colspan:3}')), $webixHelper->getColumnArray('ODO'), $webixHelper->getColumnArray('FUELMARK_NAME'), $webixHelper->getColumnArray('LITER', array('footer' => '={ content:"summColumn" }')), $webixHelper->getColumnArray('LITER_COST'), $webixHelper->getColumnArray('LITER_COST_SUM', array('footer' => '={ content:"summColumn" }')), $webixHelper->getColumnArray('FULL'), $webixHelper->getColumnArray('EXPENCE'), $webixHelper->getColumnArray('POINT'), $webixHelper->getColumnArray('INFO'), $webixHelper->getColumnArray('EDIT'), $webixHelper->getColumnArray('DELETE')), 'data' => $arDatas);
         return CoreLib\Webix::showDataTable($arData);
     } else {
         echo 'Нет данных о заправках';
         return false;
     }
 }