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)
|
||||
Reference in New Issue
Block a user