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; } } }
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; }
/** * @deprecated * @see DateHelper->getNameMonth */ public static function getNameMonth($month = null) { $dateHelper = new DateHelper(); return $dateHelper->getNameMonth($month); }
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)); }
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; } }
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; } }
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; }
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; } } }
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; } }
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; } }