Files
Excel-project/server/backend/services/validating_files.py
2026-01-21 19:39:37 +03:00

65 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import server.backend.services.excel as excel
from server.backend.schemas.pydantic import settings
from pathlib import Path
DIR = Path(settings.DIR)
handlers = { #метки какие файлы есть и должны быть занесены с вызовами функций из файла
"period_closure_income": excel.YandexHandler,
"0": excel.WBHandler,
"отчет о реализации товара": excel.OZONHandler,
"realizationreportcis": excel.OZONPurchasesHandler,
"уведомление о выкупе": excel.WBPurchasesHandler,
"Товары, переданные на комиссию озон": excel.OZONComHandler,
"Товары, переданные на комиссию вб": excel.WBComHandler,
"Товары, переданные на комиссию яндекс": excel.YandexComHandler,
"Яндекс":excel.YandexDigital,
"Озон":excel.OzonDigital,
"ВБ":excel.WBDigital
}
#Проход по всем файлам в директории
def validating():
if not DIR.exists():
raise (f"Директория {DIR} не существует") #Проверка существует ли директория
for file in DIR.rglob("*.xlsx"):
if file.name.startswith("~$"): #Проверка не редактируемый ли файл
continue
name = file.stem.lower()
print(f"\n🔹 Файл: {file.name}")
label = None
match file:
case _ if "period_closure_income" in name:
label = "period_closure_income"
case _ if name == "0" or "weekly_report" in name:
label = "0"
case _ if "отчет о реализации товара" in name:
label = "отчет о реализации товара"
case _ if "вб" in name:
label = "Товары, переданные на комиссию вб"
case _ if "озон" in name:
label = "Товары, переданные на комиссию озон"
case _ if "яндекс" in name:
label = "Товары, переданные на комиссию яндекс"
case _ if "realizationreportcis" in name:
label = "realizationreportcis"
case _ if "уведомление о выкупе" in name:
label = "уведомление о выкупе"
case _ if "yandex" in name:
label = "Яндекс"
case _ if "ozon" in name:
label = "Озон"
case _ if "wb" in name:
label = "ВБ"
case _: #Для неизвестных файлов
print("Неизвестный файл")
if label:
handler_class = handlers.get(label)
if handler_class:
# создаём объект для текущего файла
handler = handler_class(file) # передаём путь к файлу
handler.process() # dfs читается внутри объекта
else:
print(f"⚠️ Нет обработчика для метки '{label}'")