示例#1
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;
 }