первая версия новой ветки
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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
|
||||
Reference in New Issue
Block a user