From 403c7ff86f56b3bcfc5e8a54d67390bf32a4af01 Mon Sep 17 00:00:00 2001 From: ivarsbariss Date: Fri, 13 Mar 2026 11:40:47 +0100 Subject: [PATCH] Improved all pending pos query --- .../queries/pending_pos_all/metadata.json | 2 +- .../pending_pos_all/pending_pos_all.txt | 154 +----------------- .../pending_pos_sr_pending/metadata.json | 2 +- .../pending_pos_sr_pending.txt | 150 +---------------- 4 files changed, 4 insertions(+), 304 deletions(-) diff --git a/pages/Pending POs/queries/pending_pos_all/metadata.json b/pages/Pending POs/queries/pending_pos_all/metadata.json index 35b19a2..f7cb1a3 100644 --- a/pages/Pending POs/queries/pending_pos_all/metadata.json +++ b/pages/Pending POs/queries/pending_pos_all/metadata.json @@ -5,7 +5,7 @@ "pluginType": "DB", "unpublishedAction": { "actionConfiguration": { - "body": "select * from mpe.get_prototype_po_dashboard_data(array['34487','35355','37111','25502','27985']::text[])\n\nUNION ALL\n\nSELECT\n datay.*,\n ARRAY_TO_STRING(dataz.wo_item_number, ',') AS wo_item,\n ARRAY_TO_STRING(dataz.work_orders, ',') AS wo_demanding,\n dataz.total_demand AS wo_total_demand,\n uom_name AS uom\nFROM (\n SELECT\n item_number AS matl,\n classcode_code AS matl_classcode,\n item_descrip1 AS matl_desc,\n item_descrip2 AS matl_spec,\n itemsite_qtyonhand AS qoh,\n SUM(CASE poh.pohead_status WHEN 'O' THEN 1 ELSE 0 END) AS po_released,\n SUM(CASE poh.pohead_status WHEN 'U' THEN 1 ELSE 0 END) AS po_opened,\n SUM(CASE poh.pohead_status WHEN 'C' THEN 1 ELSE 0 END) AS po_closed,\n datax.poitem_duedate AS poitem_due\n FROM item\n JOIN itemsite\n ON item.item_id = itemsite.itemsite_item_id\n AND itemsite_warehous_id = 35\n JOIN classcode\n ON item.item_classcode_id = classcode.classcode_id\n JOIN LATERAL (\n SELECT DISTINCT\n itemsite_id AS pohc_itemsite_id,\n pohead_number,\n pohead_status\n FROM poitem\n JOIN pohead\n ON pohead.pohead_id = poitem.poitem_pohead_id\n WHERE poitem_itemsite_id = itemsite.itemsite_id\n ) AS poh\n ON poh.pohc_itemsite_id = itemsite.itemsite_id\n LEFT JOIN LATERAL (\n SELECT DISTINCT\n itemsite_id,\n poitem_duedate\n FROM poitem\n JOIN pohead\n ON poitem.poitem_pohead_id = pohead.pohead_id\n AND pohead.pohead_status = 'O'\n WHERE poitem_itemsite_id = itemsite.itemsite_id\n ORDER BY poitem_duedate\n LIMIT 1\n ) AS datax\n ON datax.itemsite_id = itemsite.itemsite_id\n\n WHERE item_id IN (\n SELECT DISTINCT wmtlit.item_id\n FROM item\n JOIN mpe.itemext\n ON item.item_id = itemext.itemext_item_id\n JOIN bomhead\n ON bomhead_item_id = item.item_id\n JOIN rev\n ON bomhead_rev_id = rev_id\n AND rev_status = 'P'\n JOIN itemsite\n ON item.item_id = itemsite.itemsite_item_id\n AND itemsite_warehous_id = 35\n JOIN wo\n ON wo_status IN ('E','R','I')\n AND wo_itemsite_id = itemsite.itemsite_id\n AND wo_bom_rev_id = bomhead_rev_id\n JOIN womatl\n ON wo_id = womatl_wo_id\n JOIN itemsite AS wmtlits\n ON womatl_itemsite_id = wmtlits.itemsite_id\n JOIN item AS wmtlit\n ON wmtlits.itemsite_item_id = wmtlit.item_id\n AND wmtlit.item_type = 'P'\n WHERE array['35313']::text[] && itemext.itemext_root_bom\n\n UNION\n\n SELECT itemsite.itemsite_item_id\n FROM poitem\n JOIN itemsite\n ON poitem.poitem_itemsite_id = itemsite.itemsite_id\n WHERE poitem.poitem_expcat_id = 29\n )\n GROUP BY\n item_number,\n classcode_code,\n item_descrip1,\n item_descrip2,\n itemsite_qtyonhand,\n datax.poitem_duedate\n) AS datay\n\nLEFT JOIN (\n SELECT DISTINCT ON (wmtlit.item_id)\n ARRAY[(item.item_number || 'R' || rev.rev_number)]::text[] AS wo_item_number,\n ARRAY[formatwonumber(womatl_wo_id)] AS work_orders,\n wmtlit.item_number,\n ROUND(\n SUM(womatl_qtyreq - womatl_qtyiss)\n * itemuomtouomratio(\n wmtlit.item_id,\n womatl_uom_id,\n wmtlit.item_inv_uom_id\n ),\n 2\n ) AS total_demand\n FROM item\n JOIN mpe.itemext\n ON item.item_id = itemext.itemext_item_id\n JOIN bomhead\n ON bomhead_item_id = item.item_id\n JOIN rev\n ON bomhead_rev_id = rev_id\n AND rev_status = 'P'\n JOIN itemsite\n ON item.item_id = itemsite.itemsite_item_id\n AND itemsite_warehous_id = 35\n JOIN wo\n ON wo_status IN ('E','R','I')\n AND wo_itemsite_id = itemsite.itemsite_id\n AND wo_bom_rev_id = bomhead_rev_id\n JOIN womatl\n ON wo_id = womatl_wo_id\n JOIN itemsite AS wmtlits\n ON womatl_itemsite_id = wmtlits.itemsite_id\n JOIN item AS wmtlit\n ON wmtlits.itemsite_item_id = wmtlit.item_id\n AND wmtlit.item_type = 'P'\n WHERE array['35313']::text[] && itemext.itemext_root_bom\n GROUP BY\n item.item_number,\n rev.rev_number,\n womatl_wo_id,\n wmtlit.item_id,\n wmtlit.item_number,\n womatl_uom_id,\n wmtlit.item_inv_uom_id\n) AS dataz\n ON datay.matl = dataz.item_number\n\nJOIN item AS wmtlitem\n ON datay.matl = wmtlitem.item_number\nJOIN uom\n ON wmtlitem.item_inv_uom_id = uom.uom_id\n\nWHERE\n (dataz.total_demand IS NULL)\n OR (datay.qoh < 2.0 * dataz.total_demand)\n\nORDER BY datay.matl\n", + "body": "select * from mpe.get_prototype_po_dashboard_data(array['34487','35355','37111','25502','27985','35313']::text[])\n", "encodeParamsToggle": true, "paginationType": "NONE", "pluginSpecifiedTemplates": [ diff --git a/pages/Pending POs/queries/pending_pos_all/pending_pos_all.txt b/pages/Pending POs/queries/pending_pos_all/pending_pos_all.txt index 1b924bf..ce08fc0 100644 --- a/pages/Pending POs/queries/pending_pos_all/pending_pos_all.txt +++ b/pages/Pending POs/queries/pending_pos_all/pending_pos_all.txt @@ -1,153 +1 @@ -select * from mpe.get_prototype_po_dashboard_data(array['34487','35355','37111','25502','27985']::text[]) - -UNION ALL - -SELECT - datay.*, - ARRAY_TO_STRING(dataz.wo_item_number, ',') AS wo_item, - ARRAY_TO_STRING(dataz.work_orders, ',') AS wo_demanding, - dataz.total_demand AS wo_total_demand, - uom_name AS uom -FROM ( - SELECT - item_number AS matl, - classcode_code AS matl_classcode, - item_descrip1 AS matl_desc, - item_descrip2 AS matl_spec, - itemsite_qtyonhand AS qoh, - SUM(CASE poh.pohead_status WHEN 'O' THEN 1 ELSE 0 END) AS po_released, - SUM(CASE poh.pohead_status WHEN 'U' THEN 1 ELSE 0 END) AS po_opened, - SUM(CASE poh.pohead_status WHEN 'C' THEN 1 ELSE 0 END) AS po_closed, - datax.poitem_duedate AS poitem_due - FROM item - JOIN itemsite - ON item.item_id = itemsite.itemsite_item_id - AND itemsite_warehous_id = 35 - JOIN classcode - ON item.item_classcode_id = classcode.classcode_id - JOIN LATERAL ( - SELECT DISTINCT - itemsite_id AS pohc_itemsite_id, - pohead_number, - pohead_status - FROM poitem - JOIN pohead - ON pohead.pohead_id = poitem.poitem_pohead_id - WHERE poitem_itemsite_id = itemsite.itemsite_id - ) AS poh - ON poh.pohc_itemsite_id = itemsite.itemsite_id - LEFT JOIN LATERAL ( - SELECT DISTINCT - itemsite_id, - poitem_duedate - FROM poitem - JOIN pohead - ON poitem.poitem_pohead_id = pohead.pohead_id - AND pohead.pohead_status = 'O' - WHERE poitem_itemsite_id = itemsite.itemsite_id - ORDER BY poitem_duedate - LIMIT 1 - ) AS datax - ON datax.itemsite_id = itemsite.itemsite_id - - WHERE item_id IN ( - SELECT DISTINCT wmtlit.item_id - FROM item - JOIN mpe.itemext - ON item.item_id = itemext.itemext_item_id - JOIN bomhead - ON bomhead_item_id = item.item_id - JOIN rev - ON bomhead_rev_id = rev_id - AND rev_status = 'P' - JOIN itemsite - ON item.item_id = itemsite.itemsite_item_id - AND itemsite_warehous_id = 35 - JOIN wo - ON wo_status IN ('E','R','I') - AND wo_itemsite_id = itemsite.itemsite_id - AND wo_bom_rev_id = bomhead_rev_id - JOIN womatl - ON wo_id = womatl_wo_id - JOIN itemsite AS wmtlits - ON womatl_itemsite_id = wmtlits.itemsite_id - JOIN item AS wmtlit - ON wmtlits.itemsite_item_id = wmtlit.item_id - AND wmtlit.item_type = 'P' - WHERE array['35313']::text[] && itemext.itemext_root_bom - - UNION - - SELECT itemsite.itemsite_item_id - FROM poitem - JOIN itemsite - ON poitem.poitem_itemsite_id = itemsite.itemsite_id - WHERE poitem.poitem_expcat_id = 29 - ) - GROUP BY - item_number, - classcode_code, - item_descrip1, - item_descrip2, - itemsite_qtyonhand, - datax.poitem_duedate -) AS datay - -LEFT JOIN ( - SELECT DISTINCT ON (wmtlit.item_id) - ARRAY[(item.item_number || 'R' || rev.rev_number)]::text[] AS wo_item_number, - ARRAY[formatwonumber(womatl_wo_id)] AS work_orders, - wmtlit.item_number, - ROUND( - SUM(womatl_qtyreq - womatl_qtyiss) - * itemuomtouomratio( - wmtlit.item_id, - womatl_uom_id, - wmtlit.item_inv_uom_id - ), - 2 - ) AS total_demand - FROM item - JOIN mpe.itemext - ON item.item_id = itemext.itemext_item_id - JOIN bomhead - ON bomhead_item_id = item.item_id - JOIN rev - ON bomhead_rev_id = rev_id - AND rev_status = 'P' - JOIN itemsite - ON item.item_id = itemsite.itemsite_item_id - AND itemsite_warehous_id = 35 - JOIN wo - ON wo_status IN ('E','R','I') - AND wo_itemsite_id = itemsite.itemsite_id - AND wo_bom_rev_id = bomhead_rev_id - JOIN womatl - ON wo_id = womatl_wo_id - JOIN itemsite AS wmtlits - ON womatl_itemsite_id = wmtlits.itemsite_id - JOIN item AS wmtlit - ON wmtlits.itemsite_item_id = wmtlit.item_id - AND wmtlit.item_type = 'P' - WHERE array['35313']::text[] && itemext.itemext_root_bom - GROUP BY - item.item_number, - rev.rev_number, - womatl_wo_id, - wmtlit.item_id, - wmtlit.item_number, - womatl_uom_id, - wmtlit.item_inv_uom_id -) AS dataz - ON datay.matl = dataz.item_number - -JOIN item AS wmtlitem - ON datay.matl = wmtlitem.item_number -JOIN uom - ON wmtlitem.item_inv_uom_id = uom.uom_id - -WHERE - (dataz.total_demand IS NULL) - OR (datay.qoh < 2.0 * dataz.total_demand) - -ORDER BY datay.matl +select * from mpe.get_prototype_po_dashboard_data(array['34487','35355','37111','25502','27985','35313']::text[]) diff --git a/pages/Pending POs/queries/pending_pos_sr_pending/metadata.json b/pages/Pending POs/queries/pending_pos_sr_pending/metadata.json index a05afc9..598faa7 100644 --- a/pages/Pending POs/queries/pending_pos_sr_pending/metadata.json +++ b/pages/Pending POs/queries/pending_pos_sr_pending/metadata.json @@ -5,7 +5,7 @@ "pluginType": "DB", "unpublishedAction": { "actionConfiguration": { - "body": "SELECT\n datay.*,\n ARRAY_TO_STRING(dataz.wo_item_number, ',') AS wo_item,\n ARRAY_TO_STRING(dataz.work_orders, ',') AS wo_demanding,\n dataz.total_demand AS wo_total_demand,\n uom_name AS uom\nFROM (\n SELECT\n item_number AS matl,\n classcode_code AS matl_classcode,\n item_descrip1 AS matl_desc,\n item_descrip2 AS matl_spec,\n itemsite_qtyonhand AS qoh,\n SUM(CASE poh.pohead_status WHEN 'O' THEN 1 ELSE 0 END) AS po_released,\n SUM(CASE poh.pohead_status WHEN 'U' THEN 1 ELSE 0 END) AS po_opened,\n SUM(CASE poh.pohead_status WHEN 'C' THEN 1 ELSE 0 END) AS po_closed,\n datax.poitem_duedate AS poitem_due\n FROM item\n JOIN itemsite\n ON item.item_id = itemsite.itemsite_item_id\n AND itemsite_warehous_id = 35\n JOIN classcode\n ON item.item_classcode_id = classcode.classcode_id\n JOIN LATERAL (\n SELECT DISTINCT\n itemsite_id AS pohc_itemsite_id,\n pohead_number,\n pohead_status\n FROM poitem\n JOIN pohead\n ON pohead.pohead_id = poitem.poitem_pohead_id\n WHERE poitem_itemsite_id = itemsite.itemsite_id\n ) AS poh\n ON poh.pohc_itemsite_id = itemsite.itemsite_id\n LEFT JOIN LATERAL (\n SELECT DISTINCT\n itemsite_id,\n poitem_duedate\n FROM poitem\n JOIN pohead\n ON poitem.poitem_pohead_id = pohead.pohead_id\n AND pohead.pohead_status = 'O'\n WHERE poitem_itemsite_id = itemsite.itemsite_id\n ORDER BY poitem_duedate\n LIMIT 1\n ) AS datax\n ON datax.itemsite_id = itemsite.itemsite_id\n\n WHERE item_id IN (\n SELECT DISTINCT wmtlit.item_id\n FROM item\n JOIN mpe.itemext\n ON item.item_id = itemext.itemext_item_id\n JOIN bomhead\n ON bomhead_item_id = item.item_id\n JOIN rev\n ON bomhead_rev_id = rev_id\n AND rev_status = 'P'\n JOIN itemsite\n ON item.item_id = itemsite.itemsite_item_id\n AND itemsite_warehous_id = 35\n JOIN wo\n ON wo_status IN ('E','R','I')\n AND wo_itemsite_id = itemsite.itemsite_id\n AND wo_bom_rev_id = bomhead_rev_id\n JOIN womatl\n ON wo_id = womatl_wo_id\n JOIN itemsite AS wmtlits\n ON womatl_itemsite_id = wmtlits.itemsite_id\n JOIN item AS wmtlit\n ON wmtlits.itemsite_item_id = wmtlit.item_id\n AND wmtlit.item_type = 'P'\n WHERE array['35313']::text[] && itemext.itemext_root_bom\n\n UNION\n\n SELECT itemsite.itemsite_item_id\n FROM poitem\n JOIN itemsite\n ON poitem.poitem_itemsite_id = itemsite.itemsite_id\n WHERE poitem.poitem_expcat_id = 29\n )\n GROUP BY\n item_number,\n classcode_code,\n item_descrip1,\n item_descrip2,\n itemsite_qtyonhand,\n datax.poitem_duedate\n) AS datay\n\nLEFT JOIN (\n SELECT DISTINCT ON (wmtlit.item_id)\n ARRAY[(item.item_number || 'R' || rev.rev_number)]::text[] AS wo_item_number,\n ARRAY[formatwonumber(womatl_wo_id)] AS work_orders,\n wmtlit.item_number,\n ROUND(\n SUM(womatl_qtyreq - womatl_qtyiss)\n * itemuomtouomratio(\n wmtlit.item_id,\n womatl_uom_id,\n wmtlit.item_inv_uom_id\n ),\n 2\n ) AS total_demand\n FROM item\n JOIN mpe.itemext\n ON item.item_id = itemext.itemext_item_id\n JOIN bomhead\n ON bomhead_item_id = item.item_id\n JOIN rev\n ON bomhead_rev_id = rev_id\n AND rev_status = 'P'\n JOIN itemsite\n ON item.item_id = itemsite.itemsite_item_id\n AND itemsite_warehous_id = 35\n JOIN wo\n ON wo_status IN ('E','R','I')\n AND wo_itemsite_id = itemsite.itemsite_id\n AND wo_bom_rev_id = bomhead_rev_id\n JOIN womatl\n ON wo_id = womatl_wo_id\n JOIN itemsite AS wmtlits\n ON womatl_itemsite_id = wmtlits.itemsite_id\n JOIN item AS wmtlit\n ON wmtlits.itemsite_item_id = wmtlit.item_id\n AND wmtlit.item_type = 'P'\n WHERE array['35313']::text[] && itemext.itemext_root_bom\n GROUP BY\n item.item_number,\n rev.rev_number,\n womatl_wo_id,\n wmtlit.item_id,\n wmtlit.item_number,\n womatl_uom_id,\n wmtlit.item_inv_uom_id\n) AS dataz\n ON datay.matl = dataz.item_number\n\nJOIN item AS wmtlitem\n ON datay.matl = wmtlitem.item_number\nJOIN uom\n ON wmtlitem.item_inv_uom_id = uom.uom_id\n\nWHERE\n (dataz.total_demand IS NULL)\n OR (datay.qoh < 2.0 * dataz.total_demand)\n\nORDER BY datay.matl\n", + "body": "select * from mpe.get_prototype_po_dashboard_data(array['35313']::text[])\n", "encodeParamsToggle": true, "paginationType": "NONE", "pluginSpecifiedTemplates": [ diff --git a/pages/Pending POs/queries/pending_pos_sr_pending/pending_pos_sr_pending.txt b/pages/Pending POs/queries/pending_pos_sr_pending/pending_pos_sr_pending.txt index 3403782..126d826 100644 --- a/pages/Pending POs/queries/pending_pos_sr_pending/pending_pos_sr_pending.txt +++ b/pages/Pending POs/queries/pending_pos_sr_pending/pending_pos_sr_pending.txt @@ -1,149 +1 @@ -SELECT - datay.*, - ARRAY_TO_STRING(dataz.wo_item_number, ',') AS wo_item, - ARRAY_TO_STRING(dataz.work_orders, ',') AS wo_demanding, - dataz.total_demand AS wo_total_demand, - uom_name AS uom -FROM ( - SELECT - item_number AS matl, - classcode_code AS matl_classcode, - item_descrip1 AS matl_desc, - item_descrip2 AS matl_spec, - itemsite_qtyonhand AS qoh, - SUM(CASE poh.pohead_status WHEN 'O' THEN 1 ELSE 0 END) AS po_released, - SUM(CASE poh.pohead_status WHEN 'U' THEN 1 ELSE 0 END) AS po_opened, - SUM(CASE poh.pohead_status WHEN 'C' THEN 1 ELSE 0 END) AS po_closed, - datax.poitem_duedate AS poitem_due - FROM item - JOIN itemsite - ON item.item_id = itemsite.itemsite_item_id - AND itemsite_warehous_id = 35 - JOIN classcode - ON item.item_classcode_id = classcode.classcode_id - JOIN LATERAL ( - SELECT DISTINCT - itemsite_id AS pohc_itemsite_id, - pohead_number, - pohead_status - FROM poitem - JOIN pohead - ON pohead.pohead_id = poitem.poitem_pohead_id - WHERE poitem_itemsite_id = itemsite.itemsite_id - ) AS poh - ON poh.pohc_itemsite_id = itemsite.itemsite_id - LEFT JOIN LATERAL ( - SELECT DISTINCT - itemsite_id, - poitem_duedate - FROM poitem - JOIN pohead - ON poitem.poitem_pohead_id = pohead.pohead_id - AND pohead.pohead_status = 'O' - WHERE poitem_itemsite_id = itemsite.itemsite_id - ORDER BY poitem_duedate - LIMIT 1 - ) AS datax - ON datax.itemsite_id = itemsite.itemsite_id - - WHERE item_id IN ( - SELECT DISTINCT wmtlit.item_id - FROM item - JOIN mpe.itemext - ON item.item_id = itemext.itemext_item_id - JOIN bomhead - ON bomhead_item_id = item.item_id - JOIN rev - ON bomhead_rev_id = rev_id - AND rev_status = 'P' - JOIN itemsite - ON item.item_id = itemsite.itemsite_item_id - AND itemsite_warehous_id = 35 - JOIN wo - ON wo_status IN ('E','R','I') - AND wo_itemsite_id = itemsite.itemsite_id - AND wo_bom_rev_id = bomhead_rev_id - JOIN womatl - ON wo_id = womatl_wo_id - JOIN itemsite AS wmtlits - ON womatl_itemsite_id = wmtlits.itemsite_id - JOIN item AS wmtlit - ON wmtlits.itemsite_item_id = wmtlit.item_id - AND wmtlit.item_type = 'P' - WHERE array['35313']::text[] && itemext.itemext_root_bom - - UNION - - SELECT itemsite.itemsite_item_id - FROM poitem - JOIN itemsite - ON poitem.poitem_itemsite_id = itemsite.itemsite_id - WHERE poitem.poitem_expcat_id = 29 - ) - GROUP BY - item_number, - classcode_code, - item_descrip1, - item_descrip2, - itemsite_qtyonhand, - datax.poitem_duedate -) AS datay - -LEFT JOIN ( - SELECT DISTINCT ON (wmtlit.item_id) - ARRAY[(item.item_number || 'R' || rev.rev_number)]::text[] AS wo_item_number, - ARRAY[formatwonumber(womatl_wo_id)] AS work_orders, - wmtlit.item_number, - ROUND( - SUM(womatl_qtyreq - womatl_qtyiss) - * itemuomtouomratio( - wmtlit.item_id, - womatl_uom_id, - wmtlit.item_inv_uom_id - ), - 2 - ) AS total_demand - FROM item - JOIN mpe.itemext - ON item.item_id = itemext.itemext_item_id - JOIN bomhead - ON bomhead_item_id = item.item_id - JOIN rev - ON bomhead_rev_id = rev_id - AND rev_status = 'P' - JOIN itemsite - ON item.item_id = itemsite.itemsite_item_id - AND itemsite_warehous_id = 35 - JOIN wo - ON wo_status IN ('E','R','I') - AND wo_itemsite_id = itemsite.itemsite_id - AND wo_bom_rev_id = bomhead_rev_id - JOIN womatl - ON wo_id = womatl_wo_id - JOIN itemsite AS wmtlits - ON womatl_itemsite_id = wmtlits.itemsite_id - JOIN item AS wmtlit - ON wmtlits.itemsite_item_id = wmtlit.item_id - AND wmtlit.item_type = 'P' - WHERE array['35313']::text[] && itemext.itemext_root_bom - GROUP BY - item.item_number, - rev.rev_number, - womatl_wo_id, - wmtlit.item_id, - wmtlit.item_number, - womatl_uom_id, - wmtlit.item_inv_uom_id -) AS dataz - ON datay.matl = dataz.item_number - -JOIN item AS wmtlitem - ON datay.matl = wmtlitem.item_number -JOIN uom - ON wmtlitem.item_inv_uom_id = uom.uom_id - -WHERE - (dataz.total_demand IS NULL) - OR (datay.qoh < 2.0 * dataz.total_demand) - -ORDER BY datay.matl +select * from mpe.get_prototype_po_dashboard_data(array['35313']::text[])