diff --git a/server/backend/handlers/wb_handler.py b/server/backend/handlers/wb_handler.py index 76a8307..918f3cd 100644 --- a/server/backend/handlers/wb_handler.py +++ b/server/backend/handlers/wb_handler.py @@ -1,13 +1,14 @@ from pydantic import ValidationError from server.backend.schemas.pydantic import ExcelInfo, settings,Translit from server.backend.api.nomenclature import processing +import pandas as pd import datetime -#Доставать дату из колонки -def last_day_of_month(format: str): - today = datetime.datetime.now() - first_day_current_month = today.replace(day=1) - last_day_prev_month = first_day_current_month - datetime.timedelta(days=1) - return last_day_prev_month.strftime(format) +def report_date(df, date_format: str): + dates = pd.to_datetime(df["Дата продажи"], format="%Y-%m-%d", errors="coerce") + if dates.isna().all(): + raise ValueError("В колонке нет валидных дат") + max_date = dates.max() + return max_date.strftime(date_format) def process_sheet(df, document_type:str): #Выборка df = df[['Артикул поставщика', 'Тип документа', 'Кол-во', 'Вайлдберриз реализовал Товар (Пр)']].copy().dropna() #copy and drop all NA values @@ -38,7 +39,7 @@ def process_sheet(df, document_type:str): def evaluating(dfs): validated_rows_1 = process_sheet(dfs["Sheet1"], document_type='Продажа') validated_rows_2 = process_sheet(dfs["Sheet1"], document_type='Возврат') - date = last_day_of_month(settings.TIMEFORMAT) + date = report_date(dfs["Sheet1"], settings.TIMEFORMAT) # sum_1 = sum(row.price for row in validated_rows_1) # sum_2 = sum(row.price for row in validated_rows_2)