fix arti resolve

This commit is contained in:
2026-06-18 17:19:26 +03:00
parent db32da2a02
commit d85b2db7db
7 changed files with 50 additions and 1 deletions

View File

@@ -12,7 +12,14 @@ def process_sheet(df,real_arti: int):
df.columns = ['arti']
# нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})')
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})') # Удаляем пустые строки
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
# группировка
df = processing(df)
validated_rows, errors = [], []

View File

@@ -23,6 +23,13 @@ def process_sheet(df,real_arti: int,real_quantity: int,real_sum_1: int,real_sum_
# нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})')
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
df['price'] = df['price'].astype(float)
df['counts'] = df['counts'].astype(int)

View File

@@ -24,6 +24,13 @@ def process_sheet(df, real_arti:int, real_quantity:int, real_sum_1:int):
# нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})')
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
df['price'] = df['price'].astype(float)
df['counts'] = df['counts'].astype(int)

View File

@@ -17,6 +17,13 @@ def process_sheet(df, real_arti:str, real_quantity:str, real_sum_1:str):
#Нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})') #arti под regex
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
df['price'] = df['price'].astype(float) #переделка к норм виду и преобразование в float
df['counts'] = df['counts'].astype(int) #Float to Int, if exists

View File

@@ -20,6 +20,13 @@ def process_sheet(df, document_type:str):
#Нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})') #arti под regex
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
df['price'] = df['price'].astype(float) #Float to Int, if exists
df['counts'] = df['counts'].astype(int) #Float to Int, if exists

View File

@@ -18,6 +18,13 @@ def process_sheet(df, real_arti:str, real_quantity:str, real_sum_1:str):
df.rename(columns={"Unnamed: 1": 'arti', "Unnamed: 3": 'counts', "Unnamed: 4": 'price'}, inplace=True) #переименовываем для pydantic
#Нормализация
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})') #arti под regex
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['price'] = df['price'].str.replace(' ', '', regex=False).str.replace(',', '.', regex=False).astype(float) #переделка к норм виду и преобразование в float
df['counts'] = df['counts'].astype(int) #Float to Int, if exists

View File

@@ -18,6 +18,13 @@ def process_sheet(df, multiply_price=1, sheet_name=''):
#Нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})') #arti под regex
def normalize(arti):
if re.search(r'\d{3,}$', arti):
return re.sub(r'(\d)\d{2,}$', r'\1', arti)
else:
return re.sub(r'\d{1,2}$', '', arti)
df['arti'] = df['arti'].apply(normalize)
df['price'] = df['price'].astype(float) #To float, if exists
df['counts'] = df['counts'].astype(int) #To float, if exists