From 38542143af1b72552f2ca2ddbcb87d7928496c33 Mon Sep 17 00:00:00 2001 From: EvgeniyPilot Date: Tue, 5 Jul 2022 17:02:57 +0300 Subject: [PATCH] fix --- src/article_stock_unit/queries.py | 4 +++- src/group_product/group_product.py | 6 ++++- src/group_product/queries.py | 3 ++- src/group_shops/exceptions.py | 9 -------- src/group_shops/group_shops.py | 37 +++++++++++++++--------------- src/group_shops/queries.py | 8 +------ src/supply/exceptions.py | 12 +++++----- src/supply/supply.py | 6 ++--- 8 files changed, 39 insertions(+), 46 deletions(-) diff --git a/src/article_stock_unit/queries.py b/src/article_stock_unit/queries.py index 2ed6b03..6b2266b 100644 --- a/src/article_stock_unit/queries.py +++ b/src/article_stock_unit/queries.py @@ -90,8 +90,10 @@ async def select_article_stock_unit(ex_system_code_stock_unit): @db.execute_sql(oredered_dict=True) async def select_languege(code): + print(code.lower()) """Получить stock_unit_id из таблицы am_app_languege""" - return "SELECT id, code FROM am_app_language WHERE code = $1", (code,) + return "SELECT id, LOWER(code) code FROM am_app_language WHERE is_active = True AND LOWER(code) = $1", \ + (code.lower(),) @db.execute_sql() diff --git a/src/group_product/group_product.py b/src/group_product/group_product.py index 30ed2ae..fbbc7e8 100644 --- a/src/group_product/group_product.py +++ b/src/group_product/group_product.py @@ -30,11 +30,12 @@ async def add_data_in_tables(item: Dict): parent = await get_group_product(item['ex_system_code_parent_id']) if parent: parent_level = parent[0]['level'] - item['parent_id'] = parent[0]['id'] try: check_level(item['level'], parent, parent_level) except Exception as e: error += str(e) + '||' + else: + item['parent_id'] = parent[0]['id'] else: error += str(ParentDoestExist(item['ex_system_code_parent_id'])) + '||' else: @@ -42,6 +43,8 @@ async def add_data_in_tables(item: Dict): check_level(item['level']) except Exception as e: error += str(e) + '||' + else: + item['parent_id'] = None if not language: error += str(LanguageDoestExist(item['language'])) + '||' @@ -117,6 +120,7 @@ async def change_data_in_tables(item: Dict): except Exception as e: item['error_message'] = str(e) item['load_state'] = 2 + raise e else: item['error_message'] = '' item['load_state'] = 1 diff --git a/src/group_product/queries.py b/src/group_product/queries.py index a8180fc..d7d4bef 100644 --- a/src/group_product/queries.py +++ b/src/group_product/queries.py @@ -9,7 +9,8 @@ async def select_data_by_action_type(action: int, limit=100): @db.execute_sql(oredered_dict=True) async def get_language(code): - return "SELECT id, code FROM am_app_language WHERE is_active = True AND code = $1", (code,) + return "SELECT id, LOWER(code) code FROM am_app_language WHERE is_active = True AND LOWER(code) = $1", \ + (code.lower(),) @db.execute_sql(oredered_dict=True) diff --git a/src/group_shops/exceptions.py b/src/group_shops/exceptions.py index 26108ff..310ac95 100644 --- a/src/group_shops/exceptions.py +++ b/src/group_shops/exceptions.py @@ -1,12 +1,3 @@ -class DoesntExistGroupProduct(Exception): - def __init__(self, code): - self.code = code - super().__init__() - - def __str__(self): - return f"Group product with ex_system_code {self.code} doesnt exist" - - class ParentDoestExist(Exception): def __init__(self, code): self.code = code diff --git a/src/group_shops/group_shops.py b/src/group_shops/group_shops.py index 3d286c2..8d68209 100644 --- a/src/group_shops/group_shops.py +++ b/src/group_shops/group_shops.py @@ -21,21 +21,17 @@ def delete_data(item): async def add_data_in_table(item: Dict): """ Добавить данные в таблицу am_app_groupshops""" - group_product = await select_group_product(item['ex_system_code_group_id']) - parent = await select_group_product(item['ex_system_code_parent_id']) + group_shop = await select_group_shops(item['ex_system_code_group_id']) + parent = await select_group_shops(item['ex_system_code_parent_id']) res = item.copy() del item['id'], item['action_type'], item['load_state'], item['error_message'] error = '' - if not group_product: - error += str(DoesntExistGroupProduct(item['ex_system_code_group_id'])) + '|| ' - else: - group_shop = await select_group_shops(group_product[0]['id']) - if group_shop: - error += str(GroupShopsExist(group_shop[0]['id'])) + '|| ' - if not parent: + if group_shop: + error += str(GroupShopsExist(group_shop[0]['id'])) + '|| ' + if not parent and item['level'] > 1: error += str(ParentDoestExist(item['ex_system_code_parent_id'])) + '|| ' if error: @@ -45,9 +41,11 @@ async def add_data_in_table(item: Dict): return res try: - del item['ex_system_code_group_product'] - item['ex_system_code_group_id'] = group_product[0]['id'] - item['parent_id'] = parent[0]['id'] + del item['level'] + if parent: + item['parent_id'] = parent[0]['id'] + else: + item['parent_id'] = None item = tuple(item.values()) await insert(*item) @@ -63,7 +61,7 @@ async def add_data_in_table(item: Dict): async def change_data_in_table(item: Dict): """Изменить данные в таблице am_app_groupshops""" - parent = await select_group_product(item['ex_system_code_parent_id']) + parent = await select_group_shops(item['ex_system_code_parent_id']) res = item.copy() del item['id'], item['action_type'], item['load_state'], item['error_message'] @@ -71,8 +69,8 @@ async def change_data_in_table(item: Dict): error = '' - if not parent: - error += str(ParentDoestExist(item['ex_system_code_parent_id'])) + '||' + if not parent and item['level'] > 1: + error += str(ParentDoestExist(item['ex_system_code_parent_id'])) + '|| ' if error: res['error_message'] = error @@ -83,7 +81,11 @@ async def change_data_in_table(item: Dict): res['user_updated'] = item['user_updated'] = 'group_shops.py update' res['date_updated'] = item['date_updated'] = datetime.now() try: - item['parent_id'] = parent[0]['id'] + del item['level'] + if parent: + item['parent_id'] = parent[0]['id'] + else: + item['parent_id'] = None item = tuple(item.values()) + (item['ex_system_code_group_id'],) @@ -100,12 +102,11 @@ async def change_data_in_table(item: Dict): async def delete_data_in_table(item: Dict): """Удалить данные из таблицы таблицы am_app_groupshops""" - group_product = await select_group_product(item['ex_system_code_group_product']) try: item['user_updated'] = 'group_shops.py delete' item['date_updated'] = datetime.now() - await delete(group_product[0]['id']) + await delete(item['ex_system_code_group_id']) except Exception as e: item['error_message'] = str(e) item['load_state'] = 2 diff --git a/src/group_shops/queries.py b/src/group_shops/queries.py index e170911..6aee773 100644 --- a/src/group_shops/queries.py +++ b/src/group_shops/queries.py @@ -8,16 +8,10 @@ async def select_group_shops(ex_system_code_group_id): (ex_system_code_group_id,) -@db.execute_sql(oredered_dict=True) -async def select_group_product(ex_system_code_group): - """Добавить данные в таблицу""" - return "SELECT * FROM am_app_groupproduct WHERE ex_system_code_group = $1", (ex_system_code_group,) - - @db.execute_sql(oredered_dict=True) async def select_data_by_action_type(action, limit=100): return "SELECT id, action_type, load_state, error_message, name, user_created, date_created, user_updated, " \ - "date_updated, ex_system_code_group_id, ex_system_code_parent_id FROM group_shops_itf " \ + "date_updated, ex_system_code_group_id, ex_system_code_parent_id, level FROM group_shops_itf " \ "WHERE load_state = 0 AND action_type = $1 ORDER BY level LIMIT $2", (action, limit) diff --git a/src/supply/exceptions.py b/src/supply/exceptions.py index 4ca0857..4003a3f 100644 --- a/src/supply/exceptions.py +++ b/src/supply/exceptions.py @@ -1,23 +1,23 @@ -class DoesntExistGroupProduct(Exception): +class DoesntExistArticle(Exception): def __init__(self, code): self.code = code def __repr__(self): - return 'DoesntExistGroupProduct' + return 'DoesntExistArticle' def __str__(self): - return f'Группы товаров c кодом {self.code} не существует' + return f'Товара c кодом {self.code} не существует' -class DoesntExistStockUnit(Exception): +class DoesntExistArticleStockUnit(Exception): def __init__(self, code): self.code = code def __repr__(self): - return 'DoesntExistStockUnit' + return 'DoesntExistArticleStockUnit' def __str__(self): - return f'Единицы измерения c кодом {self.code} не существует' + return f'Единицы запаса c кодом {self.code} не существует' class DoesntExistShop(Exception): diff --git a/src/supply/supply.py b/src/supply/supply.py index e636e5d..41fc660 100644 --- a/src/supply/supply.py +++ b/src/supply/supply.py @@ -31,11 +31,11 @@ async def add_data_in_table(item: Dict): error = '' if not article_stock_unit: - error += str(DoesntExistGroupProduct(item['ex_system_code_group_product'])) + '|| ' + error += str(DoesntExistArticleStockUnit(item['ex_system_code_article_unit'])) + '|| ' if not article_id: - error = str(DoesntExistStockUnit(item['ex_system_code_main_stock_unit'])) + '|| ' + error = str(DoesntExistArticle(item['ex_system_code_article'])) + '|| ' if not shop_id: - error += str(DoesntExistShop(item['ex_system_code_main_shop'])) + '|| ' + error += str(DoesntExistShop(item['ex_system_code_shop_id'])) + '|| ' if error: res['error_message'] = error -- GitLab