42 lines
2.0 KiB
Python
42 lines
2.0 KiB
Python
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 |