diff --git a/src/article_stock_unit/queries.py b/src/article_stock_unit/queries.py index 2ed6b03c02dd43007132e9924f7d4beb18a71561..6b2266bd60df39bd6d907395c14afaf01ea17b0f 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 30ed2aee845c8b0d945af55d61aa6a6f4e9975dd..fbbc7e82f7a187a0a2371bea89e4b287a7475644 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 a8180fcb8d9b232874cbcb672ab25a213426bd5b..d7d4bef26de6e580d3b403e4dba858c6de8fd351 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 26108ffe5e7b35c7c4d7b1fbd3584da1edc49df9..310ac95342db7aad96430aaa3a49764c8d381f0d 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 3d286c2ab277f79eda774dfbbcfcc0e4a374da5f..8d68209bc933a6520f53ba9cebd8c700c41da6b9 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 e170911fb7099c68fff41537238a60ef45ada1e7..6aee7732e35ee4d458ae7b341e87e885534fb44c 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 4ca08573f3345e3311b4f04b92a4d708ebeef79a..4003a3f6275cdcea64cc7ebfe8d3aa301e70274b 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 e636e5deabf4f904663b2cdfc4fec94de317af12..41fc660d0df5ce91482aa733058e2df8cc721582 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