import os import time from datetime import datetime from config import DATE_TODAY, DATE_YESTERDAY, find_dated_file, ZUP_1C_DIR, SCUD_DIR def check_file_freshness(max_age_hours=24): """ Проверяет существование входных файлов 1С и СКУД. Возвращает флаги доступности файлов за Сегодня и Вчера. """ warnings = [] errors = [] # 1. Проверка файлов 1С за СЕГОДНЯ staff_today = find_dated_file("Штат", DATE_TODAY) absent_today = find_dated_file("Отсутствия", DATE_TODAY) has_today_1c = bool(staff_today and absent_today) if not has_today_1c: warnings.append( f"Файлы 1С за СЕГОДНЯ ({DATE_TODAY}) еще не выложены на сетевую шару. " f"Формирование Ежедневной сводки за сегодня будет временно пропущено." ) # 2. Проверка файлов 1С за ВЧЕРА (критически важны для детального отчета) staff_yesterday = find_dated_file("Штат", DATE_YESTERDAY) absent_yesterday = find_dated_file("Отсутствия", DATE_YESTERDAY) if not staff_yesterday or not absent_yesterday: errors.append( f"Отсутствуют файлы 1С за ВЧЕРА ({DATE_YESTERDAY}) в папке {ZUP_1C_DIR}. " f"Невозможно построить детальный отчет за прошлую смену." ) # 3. Проверка файлов СКУД scud_today = find_dated_file("Сотрудники", DATE_TODAY, search_dirs=[SCUD_DIR]) if not scud_today: warnings.append(f"Сегодняшний файл СКУД за {DATE_TODAY} еще не сформирован в {SCUD_DIR}") is_valid = len(errors) == 0 return is_valid, warnings, errors, has_today_1c