This place holds the secret dangerous buttons, for this purpose you will only be allowed here by the system admin. If there are any refrences to this item you will not be able to
+ inactivate this item.
+
+
+
+
diff --git a/application/receipts/sql/getItemsWithQOH.sql b/application/receipts/sql/getItemsWithQOH.sql
index fb1b171..2a77bc1 100644
--- a/application/receipts/sql/getItemsWithQOH.sql
+++ b/application/receipts/sql/getItemsWithQOH.sql
@@ -13,6 +13,7 @@ FROM %%site_name%%_items
LEFT JOIN sum_cte ON %%site_name%%_items.id = sum_cte.id
LEFT JOIN %%site_name%%_item_info ON %%site_name%%_items.item_info_id = %%site_name%%_item_info.id
WHERE %%site_name%%_items.search_string LIKE '%%' || %s || '%%'
+ AND %%site_name%%_items.inactive IS false
ORDER BY %%sort_order%%
LIMIT %s OFFSET %s;
diff --git a/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc b/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc
index 4851f76..851b514 100644
Binary files a/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc and b/application/shoppinglists/__pycache__/shoplist_api.cpython-313.pyc differ
diff --git a/application/shoppinglists/__pycache__/shoplist_database.cpython-313.pyc b/application/shoppinglists/__pycache__/shoplist_database.cpython-313.pyc
index 62740f5..16eb51c 100644
Binary files a/application/shoppinglists/__pycache__/shoplist_database.cpython-313.pyc and b/application/shoppinglists/__pycache__/shoplist_database.cpython-313.pyc differ
diff --git a/application/shoppinglists/shoplist_api.py b/application/shoppinglists/shoplist_api.py
index 9fdbdac..a3f4f9f 100644
--- a/application/shoppinglists/shoplist_api.py
+++ b/application/shoppinglists/shoplist_api.py
@@ -131,6 +131,23 @@ def getItems():
return jsonify({"items":recordset, "end":math.ceil(count['count']/limit), "error":False, "message":"items fetched succesfully!"})
return jsonify({"items":recordset, "end":math.ceil(count['count']/limit), "error":True, "message":"There was an error with this GET statement"})
+@shopping_list_api.route("/api/getCalculatedItems", methods=["GET"])
+@access_api.login_required
+def getCalculatedItemsModal():
+ items = []
+ count = 0
+ if request.method == "GET":
+ page = int(request.args.get('page', 1))
+ limit = int(request.args.get('limit', 10))
+ search_string = request.args.get('search_string', 10)
+ site_name = session['selected_site']
+ offset = (page - 1) * limit
+ payload = (search_string, limit, offset)
+ items, count = shoplist_database.getCalculatedItemsForModal(site_name, payload)
+ return jsonify(status=201, items=items, end=math.ceil(count/limit), message=f"Items fetched successfully!")
+ return jsonify(status=405, items=items, end=math.ceil(count/limit), message=f"{request.method} is not an accepted method on this endpoint!")
+
+
@shopping_list_api.route('/api/getRecipesModal', methods=["GET"])
@access_api.login_required
def getRecipesModal():
diff --git a/application/shoppinglists/shoplist_database.py b/application/shoppinglists/shoplist_database.py
index ed226ce..b8f6e48 100644
--- a/application/shoppinglists/shoplist_database.py
+++ b/application/shoppinglists/shoplist_database.py
@@ -295,6 +295,40 @@ def getItemsModal(site, payload, convert=True, conn=None):
except Exception as error:
raise postsqldb.DatabaseError(error, payload, sql)
+def getCalculatedItemsForModal(site, payload, convert=True, conn=None):
+ recordsets = []
+ count = 0
+ self_conn = False
+ with open(f"application/shoppinglists/sql/getCalculatedItemsForModal.sql", "r+") as file:
+ sql = file.read().replace("%%site_name%%", site)
+
+ try:
+ if not conn:
+ database_config = config.config()
+ conn = psycopg2.connect(**database_config)
+ conn.autocommit = True
+ self_conn = True
+
+
+ with conn.cursor() as cur:
+ cur.execute(sql, payload)
+ rows = cur.fetchall()
+ if rows and convert:
+ recordsets = [postsqldb.tupleDictionaryFactory(cur.description, row) for row in rows]
+ if rows and not convert:
+ recordsets = rows
+
+ cur.execute(f"SELECT COUNT(items.*) FROM {site}_items items LEFT JOIN {site}_item_info item_info ON item_info.id = items.item_info_id WHERE items.search_string LIKE '%%' || %s || '%%' AND items.inactive IS false AND item_info.safety_stock > 0;", (payload[0], ))
+ count = cur.fetchone()[0]
+
+ if self_conn:
+ conn.close()
+
+ return recordsets, count
+
+ except Exception as error:
+ raise postsqldb.DatabaseError(error, payload, sql)
+
def getItemByUUID(site, payload:dict, convert=True, conn=None):
""" payload: dict = {'item_uuid'}"""
record = ()
diff --git a/application/shoppinglists/sql/getCalculatedItemsForModal.sql b/application/shoppinglists/sql/getCalculatedItemsForModal.sql
new file mode 100644
index 0000000..139aaf5
--- /dev/null
+++ b/application/shoppinglists/sql/getCalculatedItemsForModal.sql
@@ -0,0 +1,13 @@
+SELECT items.item_uuid as item_uuid,
+ items.item_name as item_name,
+ units.fullname AS fullname,
+ units.id AS unit_id,
+ items.links AS links
+FROM %%site_name%%_items items
+LEFT JOIN %%site_name%%_item_info item_info ON item_info.id = items.item_info_id
+LEFT JOIN units ON item_info.uom = units.id
+WHERE items.search_string LIKE '%%' || %s || '%%'
+ AND items.inactive IS false
+ AND item_info.safety_stock > 0
+ORDER BY items.item_name
+LIMIT %s OFFSET %s;
\ No newline at end of file
diff --git a/application/shoppinglists/sql/getItemsForModal.sql b/application/shoppinglists/sql/getItemsForModal.sql
index 6ee93a0..d7dd509 100644
--- a/application/shoppinglists/sql/getItemsForModal.sql
+++ b/application/shoppinglists/sql/getItemsForModal.sql
@@ -6,6 +6,7 @@ SELECT items.item_uuid as item_uuid,
FROM %%site_name%%_items items
LEFT JOIN %%site_name%%_item_info item_info ON item_info.id = items.item_info_id
LEFT JOIN units ON item_info.uom = units.id
-WHERE items.search_string LIKE '%%' || %s || '%%'
+WHERE items.search_string LIKE '%%' || %s || '%%'
+ AND items.inactive IS false
ORDER BY items.item_name
LIMIT %s OFFSET %s;
\ No newline at end of file
diff --git a/application/shoppinglists/static/js/shoppingListGeneratorHandler.js b/application/shoppinglists/static/js/shoppingListGeneratorHandler.js
index a68e8ad..985e8b4 100644
--- a/application/shoppinglists/static/js/shoppingListGeneratorHandler.js
+++ b/application/shoppinglists/static/js/shoppingListGeneratorHandler.js
@@ -27,6 +27,17 @@ async function fetchItems(){
return data.items;
}
+async function fetchCalculatedItems(){
+ const url = new URL('/shopping-lists/api/getCalculatedItems', window.location.origin);
+ url.searchParams.append('page', item_current_page);
+ url.searchParams.append('limit', items_limit);
+ url.searchParams.append('search_string', item_search_string);
+ const response = await fetch(url);
+ data = await response.json();
+ item_end_page = data.end
+ return data.items;
+}
+
var recipes_limit = 25
var recipes_current_page = 1
var recipes_end_page = 1
@@ -202,6 +213,9 @@ async function changeUncalculatedZoneState() {
}
async function openUncalculatedItemsModal(){
+ item_current_page = 1
+ item_search_string = ""
+ item_end_page = 1
let items = await fetchItems()
console.log(items)
await generateUncalculatedItemsModalTable(items)
@@ -467,8 +481,10 @@ async function changeCalculatedZoneState() {
}
async function openCalculatedItemsModal(){
- let items = await fetchItems()
- console.log(items)
+ item_current_page = 1
+ item_search_string = ""
+ item_end_page = 1
+ let items = await fetchCalculatedItems()
await generateCalculatedItemsModalTable(items)
await updateCalculatedItemsModalPagination()
UIkit.modal(document.getElementById('calculatedItemModal')).show()
diff --git a/celerybeat-schedule-shm b/celerybeat-schedule-shm
index 9456e44..c69f40f 100644
Binary files a/celerybeat-schedule-shm and b/celerybeat-schedule-shm differ
diff --git a/celerybeat-schedule-wal b/celerybeat-schedule-wal
index 236fe37..1638ad7 100644
Binary files a/celerybeat-schedule-wal and b/celerybeat-schedule-wal differ
diff --git a/logs/database.log b/logs/database.log
index 154d858..deb0266 100644
--- a/logs/database.log
+++ b/logs/database.log
@@ -601,4 +601,55 @@
sql='INSERT INTO main_shopping_lists(name, description, author, creation_date, sub_type, list_type) VALUES (%s, %s, %s, %s, %s, %s) RETURNING *;')
2025-08-20 15:38:30.303845 --- ERROR --- DatabaseError(message='column "start_date" does not existLINE 1: ... FROM main_plan_events WHERE plan_uuid = NULL AND start_date... ^',
payload={'start_date': '2025-08-18', 'end_date': '2025-08-24', 'plan_uuid': None, 'plan_name': 'Site Planner'},
- sql='SELECT * FROM main_plan_events WHERE plan_uuid = %(plan_uuid)s AND start_date <= %(end_date)s AND end_date >= %(start_date)s;')
\ No newline at end of file
+ sql='SELECT * FROM main_plan_events WHERE plan_uuid = %(plan_uuid)s AND start_date <= %(end_date)s AND end_date >= %(start_date)s;')
+2025-08-21 15:30:18.587714 --- ERROR --- DatabaseError(message='missing FROM-clause entry for table "rpcipe"LINE 34: rpcipe.*, ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rpcipe.*, rp_item.item_type, rp_item.qty FROM main_recipes recipe JOIN main_recipe_items rp_items ON recipe.id = rp_items.rp_id WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(rp)), '{}') FROM cte_recipes sl) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.id LEFT JOIN cte_recipes ON main_items.id = cte_recipes.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:31:10.416198 --- ERROR --- DatabaseError(message='missing FROM-clause entry for table "rp_item"LINE 35: rp_item.item_type, ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT recipe.*, rp_item.item_type, rp_item.qty FROM main_recipes recipe JOIN main_recipe_items rp_items ON recipe.id = rp_items.rp_id WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(rp)), '{}') FROM cte_recipes sl) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.id LEFT JOIN cte_recipes ON main_items.id = cte_recipes.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:32:08.445090 --- ERROR --- DatabaseError(message='syntax error at or near "FROM"LINE 35: FROM main_recipe_items rp_items ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.*, FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(rp)), '{}') FROM cte_recipes rp) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.id LEFT JOIN cte_recipes ON main_items.id = cte_recipes.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:32:41.827889 --- ERROR --- DatabaseError(message='syntax error at or near "FROM"LINE 35: FROM main_recipe_items rp_items ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.*, FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(rp)), '{}') FROM cte_recipes rp) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:34:02.604372 --- ERROR --- DatabaseError(message='syntax error at or near "FROM"LINE 34: FROM main_recipe_items rp_items ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.*, FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(rp), '()') FROM cte_recipes rp) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:34:39.473685 --- ERROR --- DatabaseError(message='syntax error at or near "FROM"LINE 34: FROM main_recipe_items rp_items ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.*, FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(rp), '()') FROM cte_recipes rp) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:35:28.528730 --- ERROR --- DatabaseError(message='syntax error at or near "FROM"LINE 34: FROM main_recipe_items rp_items ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.*, FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(rp), '()') FROM cte_recipes rp) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:35:54.588258 --- ERROR --- DatabaseError(message='syntax error at or near "FROM"LINE 34: FROM main_recipe_items rp_items ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.*, FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:37:16.582148 --- ERROR --- DatabaseError(message='malformed array literal: "()"LINE 78: (SELECT COALESCE(array_agg(rp), '()') FROM cte_recipes r... ^DETAIL: Array value must start with "{" or dimension information.',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.* FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(array_agg(rp), '()') FROM cte_recipes rp) AS item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:38:10.175186 --- ERROR --- DatabaseError(message='subquery must return only one columnLINE 78: (SELECT * FROM cte_recipes AS item_recipes), ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.* FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT * FROM cte_recipes AS item_recipes), (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:38:23.981975 --- ERROR --- DatabaseError(message='subquery must return only one columnLINE 78: (SELECT * FROM cte_recipes) as item_recipes, ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.* FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT * FROM cte_recipes) as item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:38:50.106138 --- ERROR --- DatabaseError(message='syntax error at or near "*"LINE 78: (SELECT COALESCE(*, '()') FROM cte_recipes) as item_reci... ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.* FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(*, '()') FROM cte_recipes) as item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:39:05.980541 --- ERROR --- DatabaseError(message='input of anonymous composite types is not implementedLINE 78: (SELECT COALESCE(cte_recipes.*, '()') FROM cte_recipes) ... ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.* FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(cte_recipes.*, '()') FROM cte_recipes) as item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 15:58:14.461388 --- ERROR --- DatabaseError(message='input of anonymous composite types is not implementedLINE 78: (SELECT COALESCE(cte_recipes.*, '()') FROM cte_recipes) ... ^',
+ payload=(1,),
+ sql='WITH passed_id AS (SELECT id AS passed_id, item_uuid as passed_uuid FROM main_items WHERE id=%s), logistics_id AS (SELECT logistics_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), info_id AS (SELECT item_info_id FROM main_items WHERE id=(SELECT passed_id FROM passed_id)), cte_conversions AS ( SELECT main_conversions.id as conv_id, main_conversions.conv_factor as conv_factor, units.* as uom FROM main_conversions LEFT JOIN units ON main_conversions.uom_id = units.id WHERE main_conversions.item_id = (SELECT passed_id FROM passed_id) ), cte_item_info AS ( SELECT main_item_info.*, row_to_json(units.*) as uom, COALESCE((SELECT json_agg(convs) FROM cte_conversions convs), '[]'::json) AS conversions, COALESCE((SELECT json_agg(p.*) FROM main_sku_prefix as p WHERE p.id = ANY(main_item_info.prefixes)), '[]'::json) as prefixes FROM main_item_info LEFT JOIN units ON main_item_info.uom = units.id WHERE main_item_info.id = (SELECT item_info_id FROM info_id) ), cte_shopping_lists AS ( SELECT main_shopping_lists.*, main_shopping_list_items.item_type, main_shopping_list_items.qty FROM main_shopping_lists JOIN main_shopping_list_items ON main_shopping_lists.list_uuid = main_shopping_list_items.list_uuid WHERE main_shopping_list_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_recipes AS ( SELECT rp_items.* FROM main_recipe_items rp_items WHERE rp_items.item_uuid = (SELECT passed_uuid FROM passed_id) ), cte_itemlinks AS ( SELECT * FROM main_itemlinks WHERE link=(SELECT passed_id FROM passed_id) ), cte_item_locations AS ( SELECT * FROM main_item_locations LEFT JOIN main_locations ON main_locations.id = main_item_locations.location_id WHERE part_id = (SELECT passed_id FROM passed_id) ), cte_logistics_info AS ( SELECT li.*, row_to_json(pl) AS primary_location, row_to_json(ail) AS auto_issue_location, row_to_json(pz) AS primary_zone, row_to_json(aiz) AS auto_issue_zone FROM main_logistics_info AS li LEFT JOIN main_locations AS pl ON li.primary_location = pl.id LEFT JOIN main_locations AS ail ON li.auto_issue_location = ail.id LEFT JOIN main_zones AS pz ON li.primary_zone = pz.id LEFT JOIN main_zones AS aiz ON li.auto_issue_zone = aiz.id WHERE li.id=(SELECT logistics_info_id FROM logistics_id) ), cte_barcodes AS ( SELECT barcode.barcode As barcode, barcode.in_exchange AS in_exchange, barcode.out_exchange AS out_exchange, barcode.descriptor AS descriptor FROM main_barcodes AS barcode LEFT JOIN main_items AS item ON item.id = (SELECT passed_id FROM passed_id) WHERE barcode.item_uuid = item.item_uuid )SELECT (SELECT passed_id FROM passed_id) AS passed_id, main_items.*, (SELECT COALESCE(row_to_json(logis), '{}') FROM cte_logistics_info logis) AS logistics_info, row_to_json(main_food_info.*) as food_info, row_to_json(main_brands.*) as brand, (SELECT COALESCE(row_to_json(ii), '{}') FROM cte_item_info ii) AS item_info, (SELECT COALESCE(array_agg(row_to_json(sl)), '{}') FROM cte_shopping_lists sl) AS item_shopping_lists, (SELECT COALESCE(cte_recipes.*, '()') FROM cte_recipes) as item_recipes, (SELECT COALESCE(array_agg(row_to_json(il)), '{}') FROM cte_itemlinks il) AS linked_items, (SELECT COALESCE(array_agg(row_to_json(ils)), '{}') FROM cte_item_locations ils) AS item_locations, (SELECT COALESCE(array_agg(row_to_json(bar)), '{}') FROM cte_barcodes bar) AS item_barcodesFROM main_items LEFT JOIN main_item_info ON main_items.item_info_id = main_item_info.id LEFT JOIN main_food_info ON main_items.food_info_id = main_food_info.id LEFT JOIN main_brands ON main_items.brand = main_brands.id LEFT JOIN units ON main_item_info.uom = units.id LEFT JOIN cte_shopping_lists ON main_items.id = cte_shopping_lists.idWHERE main_items.id=(SELECT passed_id FROM passed_id)GROUP BY main_items.id, main_item_info.id, main_food_info.id, main_brands.id;')
+2025-08-21 17:10:08.203762 --- ERROR --- DatabaseError(message='duplicate key value violates unique constraint "main_barcodes_pkey"DETAIL: Key (barcode)=(%085239099810%) already exists.',
+ payload=('%085239099810%', '6ff93491-ede3-4f90-aca3-8617ab057617', '1', '1', ''),
+ sql='INSERT INTO main_barcodes (barcode, item_uuid, in_exchange, out_exchange, descriptor) VALUES (%s, %s, %s, %s, %s) RETURNING *;')
+2025-08-21 17:32:04.748621 --- ERROR --- DatabaseError(message='syntax error at or near "%"LINE 1: SELECT COUNT(*) FROM main_items items LEFT JOIN %site_name%_... ^',
+ payload=('', 25, 0),
+ sql='SELECT items.item_uuid as item_uuid, items.item_name as item_name, units.fullname AS fullname, units.id AS unit_id, items.links AS linksFROM main_items itemsLEFT JOIN main_item_info item_info ON item_info.id = items.item_info_idLEFT JOIN units ON item_info.uom = units.idWHERE items.search_string LIKE '%%' || %s || '%%' AND items.inactive IS false AND item_info.safety_stock > 0ORDER BY items.item_name LIMIT %s OFFSET %s;')
+2025-08-21 17:32:19.598403 --- ERROR --- DatabaseError(message='syntax error at or near "%"LINE 1: ...CT COUNT(items.*) FROM main_items items LEFT JOIN %site_name... ^',
+ payload=('', 25, 0),
+ sql='SELECT items.item_uuid as item_uuid, items.item_name as item_name, units.fullname AS fullname, units.id AS unit_id, items.links AS linksFROM main_items itemsLEFT JOIN main_item_info item_info ON item_info.id = items.item_info_idLEFT JOIN units ON item_info.uom = units.idWHERE items.search_string LIKE '%%' || %s || '%%' AND items.inactive IS false AND item_info.safety_stock > 0ORDER BY items.item_name LIMIT %s OFFSET %s;')
\ No newline at end of file
diff --git a/logs/process.log b/logs/process.log
index e16dca6..088af59 100644
--- a/logs/process.log
+++ b/logs/process.log
@@ -1001,3 +1001,56 @@
2025-08-15 06:18:11.169962 --- INFO --- sku_prefix DROPPED!
2025-08-15 06:18:11.173921 --- INFO --- barcodes DROPPED!
2025-08-15 06:18:11.178178 --- INFO --- plan_events DROPPED!
+2025-08-21 15:16:14.560463 --- INFO --- logins Created!
+2025-08-21 15:16:14.567863 --- INFO --- sites Created!
+2025-08-21 15:16:14.574548 --- INFO --- roles Created!
+2025-08-21 15:16:14.580965 --- INFO --- units Created!
+2025-08-21 15:16:14.591751 --- INFO --- cost_layers Created!
+2025-08-21 15:16:14.602478 --- INFO --- linked_items Created!
+2025-08-21 15:16:14.610123 --- INFO --- brands Created!
+2025-08-21 15:16:14.619120 --- INFO --- food_info Created!
+2025-08-21 15:16:14.628087 --- INFO --- item_info Created!
+2025-08-21 15:16:14.636844 --- INFO --- zones Created!
+2025-08-21 15:16:14.645245 --- INFO --- locations Created!
+2025-08-21 15:16:14.654775 --- INFO --- logistics_info Created!
+2025-08-21 15:16:14.663430 --- INFO --- transactions Created!
+2025-08-21 15:16:14.673901 --- INFO --- item Created!
+2025-08-21 15:16:14.681913 --- INFO --- vendors Created!
+2025-08-21 15:16:14.690399 --- INFO --- groups Created!
+2025-08-21 15:16:14.699503 --- INFO --- group_items Created!
+2025-08-21 15:16:14.708266 --- INFO --- receipts Created!
+2025-08-21 15:16:14.717453 --- INFO --- receipt_items Created!
+2025-08-21 15:16:14.726192 --- INFO --- recipes Created!
+2025-08-21 15:16:14.734717 --- INFO --- recipe_items Created!
+2025-08-21 15:16:14.743314 --- INFO --- shopping_lists Created!
+2025-08-21 15:16:14.751858 --- INFO --- shopping_list_items Created!
+2025-08-21 15:16:14.760950 --- INFO --- item_locations Created!
+2025-08-21 15:16:14.768830 --- INFO --- conversions Created!
+2025-08-21 15:16:14.777425 --- INFO --- sku_prefix Created!
+2025-08-21 15:16:14.784970 --- INFO --- barcodes Created!
+2025-08-21 15:16:14.793814 --- INFO --- plan_events Created!
+2025-08-21 15:16:14.797697 --- INFO --- Admin User Created!
+2025-08-21 15:17:17.941491 --- INFO --- item_info DROPPED!
+2025-08-21 15:17:17.951515 --- INFO --- items DROPPED!
+2025-08-21 15:17:17.958475 --- INFO --- cost_layers DROPPED!
+2025-08-21 15:17:17.965374 --- INFO --- linked_items DROPPED!
+2025-08-21 15:17:17.972445 --- INFO --- transactions DROPPED!
+2025-08-21 15:17:17.979077 --- INFO --- brands DROPPED!
+2025-08-21 15:17:17.985976 --- INFO --- food_info DROPPED!
+2025-08-21 15:17:17.993582 --- INFO --- logistics_info DROPPED!
+2025-08-21 15:17:18.000524 --- INFO --- zones DROPPED!
+2025-08-21 15:17:18.007350 --- INFO --- locations DROPPED!
+2025-08-21 15:17:18.014420 --- INFO --- vendors DROPPED!
+2025-08-21 15:17:18.021550 --- INFO --- group_items DROPPED!
+2025-08-21 15:17:18.028353 --- INFO --- groups DROPPED!
+2025-08-21 15:17:18.035154 --- INFO --- receipt_items DROPPED!
+2025-08-21 15:17:18.041897 --- INFO --- receipts DROPPED!
+2025-08-21 15:17:18.048910 --- INFO --- recipe_items DROPPED!
+2025-08-21 15:17:18.055587 --- INFO --- recipes DROPPED!
+2025-08-21 15:17:18.062558 --- INFO --- shopping_list_items DROPPED!
+2025-08-21 15:17:18.069321 --- INFO --- shopping_lists DROPPED!
+2025-08-21 15:17:18.076097 --- INFO --- item_locations DROPPED!
+2025-08-21 15:17:18.082644 --- INFO --- conversions DROPPED!
+2025-08-21 15:17:18.089331 --- INFO --- sku_prefix DROPPED!
+2025-08-21 15:17:18.095712 --- INFO --- barcodes DROPPED!
+2025-08-21 15:17:18.102641 --- INFO --- plan_events DROPPED!