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; }