digitalization
This commit is contained in:
@@ -5,18 +5,30 @@ import server.backend.handlers.ozon_handler as ozon_handler
|
||||
import server.backend.handlers.ozon_purchases_handler as ozon_purchases_handler
|
||||
import server.backend.handlers.wb_purchases_handler as wb_purchases_handler
|
||||
import server.backend.handlers.ozon_wb_yandex_com_handler as ozon_wb_yandex_com_handler
|
||||
import server.backend.handlers.digitalization as digitalization
|
||||
from server.backend.schemas.pydantic import settings
|
||||
from server.backend.api.report import DocumentCreation
|
||||
class BaseHandler:
|
||||
def __init__(self, file_path):
|
||||
self.file_path = file_path
|
||||
self.dfs = self.read()
|
||||
|
||||
def read(self, skiprows=None, skipfooter=0):
|
||||
def read(self, xls=None, skiprows=None, skipfooter=0, sheet_name=None):
|
||||
source = xls if xls is not None else self.file_path
|
||||
|
||||
try:
|
||||
return pd.read_excel(self.file_path, sheet_name=None, skiprows=skiprows,skipfooter=skipfooter)
|
||||
return pd.read_excel(
|
||||
source,
|
||||
sheet_name=sheet_name,
|
||||
skiprows=skiprows,
|
||||
skipfooter=skipfooter
|
||||
)
|
||||
except Exception as e:
|
||||
raise Exception(f"⚠️ Ошибка при чтении {self.file_path}: {e}")
|
||||
def struct(self):
|
||||
try:
|
||||
return pd.ExcelFile(self.file_path)
|
||||
except Exception as e:
|
||||
raise Exception(f"⚠️ Ошибка при получении структуры {self.file_path}: {e}")
|
||||
|
||||
def process(self):
|
||||
raise NotImplementedError
|
||||
@@ -225,4 +237,29 @@ class YandexComHandler(BaseHandler):
|
||||
СчетУчетаРасчетовСКонтрагентом_Key=settings.A76_09
|
||||
)
|
||||
doc_creator.fill_document_items_to_real(doc_key, validated_data)
|
||||
|
||||
class YandexDigital(BaseHandler):
|
||||
def process(self):
|
||||
xls = self.struct()
|
||||
if "Себестоимость товаров" in xls.sheet_names:
|
||||
df = self.read(xls, sheet_name="Себестоимость товаров", skiprows=2)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data = digitalization.evaluating(df, real_arti=0, types="yandex")
|
||||
print(validated_data)
|
||||
class OzonDigital(BaseHandler):
|
||||
def process(self):
|
||||
xls = self.struct()
|
||||
if "Себестоимость" in xls.sheet_names:
|
||||
df = self.read(xls, sheet_name="Себестоимость", skiprows=1)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data = digitalization.evaluating(df, real_arti=3, types="ozon")
|
||||
class WBDigital(BaseHandler):
|
||||
def process(self):
|
||||
xls = self.struct()
|
||||
if "Себестоимость" in xls.sheet_names:
|
||||
df = self.read(xls, sheet_name="Себестоимость", skiprows=2)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data = digitalization.evaluating(df, real_arti=4, types="wb")
|
||||
print(validated_data)
|
||||
@@ -11,7 +11,10 @@ handlers = { #метки какие файлы есть и должны быть
|
||||
"уведомление о выкупе": excel.WBPurchasesHandler,
|
||||
"Товары, переданные на комиссию озон": excel.OZONComHandler,
|
||||
"Товары, переданные на комиссию вб": excel.WBComHandler,
|
||||
"Товары, переданные на комиссию яндекс": excel.YandexComHandler
|
||||
"Товары, переданные на комиссию яндекс": excel.YandexComHandler,
|
||||
"Яндекс":excel.YandexDigital,
|
||||
"Озон":excel.OzonDigital,
|
||||
"ВБ":excel.WBDigital
|
||||
}
|
||||
|
||||
#Проход по всем файлам в директории
|
||||
@@ -43,6 +46,12 @@ def validating():
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user