Add Class Code and BOMs Used In columns to Unused Items page
- Join classcode table for class code display - Subquery bomitem for count of distinct parent BOMs each item appears in - Add both columns to table widget between Item Type and Created By Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
"pluginType": "DB",
|
"pluginType": "DB",
|
||||||
"unpublishedAction": {
|
"unpublishedAction": {
|
||||||
"actionConfiguration": {
|
"actionConfiguration": {
|
||||||
"body": "SELECT\n i.item_number AS \"Item Number\",\n i.item_descrip1 AS \"Description\",\n CASE i.item_type\n WHEN 'P' THEN 'Purchased'\n WHEN 'M' THEN 'Manufactured'\n WHEN 'R' THEN 'Reference'\n WHEN 'T' THEN 'Tooling'\n WHEN 'O' THEN 'Outside Process'\n WHEN 'B' THEN 'Breeder'\n WHEN 'C' THEN 'Co-Product'\n WHEN 'F' THEN 'Phantom'\n ELSE i.item_type\n END AS \"Item Type\",\n cc.comment_user AS \"Created By\",\n COALESCE(i.item_created, cc.comment_date)::date AS \"Date Created\",\n last_txn.last_transaction_date::date AS \"Last Transaction\",\n (CURRENT_DATE - COALESCE(last_txn.last_transaction_date, i.item_created, cc.comment_date)::date) AS \"Days Unused\"\nFROM item i\nLEFT JOIN comment cc\n ON cc.comment_source_id = i.item_id\n AND cc.comment_source = 'I'\n AND cc.comment_text = 'Created'\nLEFT JOIN (\n SELECT\n isite.itemsite_item_id,\n MAX(ih.invhist_transdate) AS last_transaction_date\n FROM itemsite isite\n JOIN invhist ih ON ih.invhist_itemsite_id = isite.itemsite_id\n GROUP BY isite.itemsite_item_id\n) last_txn ON last_txn.itemsite_item_id = i.item_id\nWHERE i.item_active\n AND (CURRENT_DATE - COALESCE(last_txn.last_transaction_date, i.item_created, cc.comment_date)::date)\n >= '{{UnusedDays.text}}'::int\nORDER BY \"Days Unused\" DESC",
|
"body": "SELECT\n i.item_number AS \"Item Number\",\n i.item_descrip1 AS \"Description\",\n CASE i.item_type\n WHEN 'P' THEN 'Purchased'\n WHEN 'M' THEN 'Manufactured'\n WHEN 'R' THEN 'Reference'\n WHEN 'T' THEN 'Tooling'\n WHEN 'O' THEN 'Outside Process'\n WHEN 'B' THEN 'Breeder'\n WHEN 'C' THEN 'Co-Product'\n WHEN 'F' THEN 'Phantom'\n ELSE i.item_type\n END AS \"Item Type\",\n clc.classcode_code AS \"Class Code\",\n COALESCE(bom_count.num_boms, 0) AS \"BOMs Used In\",\n cc.comment_user AS \"Created By\",\n COALESCE(i.item_created, cc.comment_date)::date AS \"Date Created\",\n last_txn.last_transaction_date::date AS \"Last Transaction\",\n (CURRENT_DATE - COALESCE(last_txn.last_transaction_date, i.item_created, cc.comment_date)::date) AS \"Days Unused\"\nFROM item i\nLEFT JOIN classcode clc ON clc.classcode_id = i.item_classcode_id\nLEFT JOIN (\n SELECT bomitem_item_id, COUNT(DISTINCT bomitem_parent_item_id) AS num_boms\n FROM bomitem\n GROUP BY bomitem_item_id\n) bom_count ON bom_count.bomitem_item_id = i.item_id\nLEFT JOIN comment cc\n ON cc.comment_source_id = i.item_id\n AND cc.comment_source = 'I'\n AND cc.comment_text = 'Created'\nLEFT JOIN (\n SELECT\n isite.itemsite_item_id,\n MAX(ih.invhist_transdate) AS last_transaction_date\n FROM itemsite isite\n JOIN invhist ih ON ih.invhist_itemsite_id = isite.itemsite_id\n GROUP BY isite.itemsite_item_id\n) last_txn ON last_txn.itemsite_item_id = i.item_id\nWHERE i.item_active\n AND (CURRENT_DATE - COALESCE(last_txn.last_transaction_date, i.item_created, cc.comment_date)::date)\n >= '{{UnusedDays.text}}'::int\nORDER BY \"Days Unused\" DESC",
|
||||||
"encodeParamsToggle": true,
|
"encodeParamsToggle": true,
|
||||||
"paginationType": "NONE",
|
"paginationType": "NONE",
|
||||||
"pluginSpecifiedTemplates": [
|
"pluginSpecifiedTemplates": [
|
||||||
|
|||||||
@@ -12,11 +12,19 @@ SELECT
|
|||||||
WHEN 'F' THEN 'Phantom'
|
WHEN 'F' THEN 'Phantom'
|
||||||
ELSE i.item_type
|
ELSE i.item_type
|
||||||
END AS "Item Type",
|
END AS "Item Type",
|
||||||
|
clc.classcode_code AS "Class Code",
|
||||||
|
COALESCE(bom_count.num_boms, 0) AS "BOMs Used In",
|
||||||
cc.comment_user AS "Created By",
|
cc.comment_user AS "Created By",
|
||||||
COALESCE(i.item_created, cc.comment_date)::date AS "Date Created",
|
COALESCE(i.item_created, cc.comment_date)::date AS "Date Created",
|
||||||
last_txn.last_transaction_date::date AS "Last Transaction",
|
last_txn.last_transaction_date::date AS "Last Transaction",
|
||||||
(CURRENT_DATE - COALESCE(last_txn.last_transaction_date, i.item_created, cc.comment_date)::date) AS "Days Unused"
|
(CURRENT_DATE - COALESCE(last_txn.last_transaction_date, i.item_created, cc.comment_date)::date) AS "Days Unused"
|
||||||
FROM item i
|
FROM item i
|
||||||
|
LEFT JOIN classcode clc ON clc.classcode_id = i.item_classcode_id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT bomitem_item_id, COUNT(DISTINCT bomitem_parent_item_id) AS num_boms
|
||||||
|
FROM bomitem
|
||||||
|
GROUP BY bomitem_item_id
|
||||||
|
) bom_count ON bom_count.bomitem_item_id = i.item_id
|
||||||
LEFT JOIN comment cc
|
LEFT JOIN comment cc
|
||||||
ON cc.comment_source_id = i.item_id
|
ON cc.comment_source_id = i.item_id
|
||||||
AND cc.comment_source = 'I'
|
AND cc.comment_source = 'I'
|
||||||
|
|||||||
@@ -35,6 +35,8 @@
|
|||||||
"Item Number",
|
"Item Number",
|
||||||
"Description",
|
"Description",
|
||||||
"Item Type",
|
"Item Type",
|
||||||
|
"Class Code",
|
||||||
|
"BOMs Used In",
|
||||||
"Created By",
|
"Created By",
|
||||||
"Date Created",
|
"Date Created",
|
||||||
"Last Transaction",
|
"Last Transaction",
|
||||||
@@ -56,6 +58,8 @@
|
|||||||
{"key": "primaryColumns.Item Number.computedValue"},
|
{"key": "primaryColumns.Item Number.computedValue"},
|
||||||
{"key": "primaryColumns.Description.computedValue"},
|
{"key": "primaryColumns.Description.computedValue"},
|
||||||
{"key": "primaryColumns.Item Type.computedValue"},
|
{"key": "primaryColumns.Item Type.computedValue"},
|
||||||
|
{"key": "primaryColumns.Class Code.computedValue"},
|
||||||
|
{"key": "primaryColumns.BOMs Used In.computedValue"},
|
||||||
{"key": "primaryColumns.Created By.computedValue"},
|
{"key": "primaryColumns.Created By.computedValue"},
|
||||||
{"key": "primaryColumns.Date Created.computedValue"},
|
{"key": "primaryColumns.Date Created.computedValue"},
|
||||||
{"key": "primaryColumns.Last Transaction.computedValue"},
|
{"key": "primaryColumns.Last Transaction.computedValue"},
|
||||||
@@ -185,6 +189,68 @@
|
|||||||
"verticalAlignment": "CENTER",
|
"verticalAlignment": "CENTER",
|
||||||
"width": 150
|
"width": 150
|
||||||
},
|
},
|
||||||
|
"Class Code": {
|
||||||
|
"alias": "Class Code",
|
||||||
|
"allowCellWrapping": false,
|
||||||
|
"allowSameOptionsInNewRow": true,
|
||||||
|
"columnType": "text",
|
||||||
|
"computedValue": "{{(() => { const tableData = Table1.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"Class Code\"])) : [] })()}}",
|
||||||
|
"currencyCode": "USD",
|
||||||
|
"decimals": 0,
|
||||||
|
"enableFilter": true,
|
||||||
|
"enableSort": true,
|
||||||
|
"horizontalAlignment": "LEFT",
|
||||||
|
"id": "Class Code",
|
||||||
|
"index": 3,
|
||||||
|
"isCellEditable": false,
|
||||||
|
"isCellVisible": true,
|
||||||
|
"isDerived": false,
|
||||||
|
"isDisabled": false,
|
||||||
|
"isDiscardVisible": true,
|
||||||
|
"isEditable": false,
|
||||||
|
"isSaveVisible": true,
|
||||||
|
"isVisible": true,
|
||||||
|
"label": "Class Code",
|
||||||
|
"notation": "standard",
|
||||||
|
"originalId": "Class Code",
|
||||||
|
"sticky": "",
|
||||||
|
"textSize": "0.775rem",
|
||||||
|
"thousandSeparator": true,
|
||||||
|
"validation": {},
|
||||||
|
"verticalAlignment": "CENTER",
|
||||||
|
"width": 150
|
||||||
|
},
|
||||||
|
"BOMs Used In": {
|
||||||
|
"alias": "BOMs Used In",
|
||||||
|
"allowCellWrapping": false,
|
||||||
|
"allowSameOptionsInNewRow": true,
|
||||||
|
"columnType": "number",
|
||||||
|
"computedValue": "{{(() => { const tableData = Table1.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"BOMs Used In\"])) : [] })()}}",
|
||||||
|
"currencyCode": "USD",
|
||||||
|
"decimals": 0,
|
||||||
|
"enableFilter": true,
|
||||||
|
"enableSort": true,
|
||||||
|
"horizontalAlignment": "LEFT",
|
||||||
|
"id": "BOMs Used In",
|
||||||
|
"index": 4,
|
||||||
|
"isCellEditable": false,
|
||||||
|
"isCellVisible": true,
|
||||||
|
"isDerived": false,
|
||||||
|
"isDisabled": false,
|
||||||
|
"isDiscardVisible": true,
|
||||||
|
"isEditable": false,
|
||||||
|
"isSaveVisible": true,
|
||||||
|
"isVisible": true,
|
||||||
|
"label": "BOMs Used In",
|
||||||
|
"notation": "standard",
|
||||||
|
"originalId": "BOMs Used In",
|
||||||
|
"sticky": "",
|
||||||
|
"textSize": "0.775rem",
|
||||||
|
"thousandSeparator": true,
|
||||||
|
"validation": {},
|
||||||
|
"verticalAlignment": "CENTER",
|
||||||
|
"width": 150
|
||||||
|
},
|
||||||
"Created By": {
|
"Created By": {
|
||||||
"alias": "Created By",
|
"alias": "Created By",
|
||||||
"allowCellWrapping": false,
|
"allowCellWrapping": false,
|
||||||
@@ -197,7 +263,7 @@
|
|||||||
"enableSort": true,
|
"enableSort": true,
|
||||||
"horizontalAlignment": "LEFT",
|
"horizontalAlignment": "LEFT",
|
||||||
"id": "Created By",
|
"id": "Created By",
|
||||||
"index": 3,
|
"index": 5,
|
||||||
"isCellEditable": false,
|
"isCellEditable": false,
|
||||||
"isCellVisible": true,
|
"isCellVisible": true,
|
||||||
"isDerived": false,
|
"isDerived": false,
|
||||||
@@ -228,7 +294,7 @@
|
|||||||
"enableSort": true,
|
"enableSort": true,
|
||||||
"horizontalAlignment": "LEFT",
|
"horizontalAlignment": "LEFT",
|
||||||
"id": "Date Created",
|
"id": "Date Created",
|
||||||
"index": 4,
|
"index": 6,
|
||||||
"isCellEditable": false,
|
"isCellEditable": false,
|
||||||
"isCellVisible": true,
|
"isCellVisible": true,
|
||||||
"isDerived": false,
|
"isDerived": false,
|
||||||
@@ -259,7 +325,7 @@
|
|||||||
"enableSort": true,
|
"enableSort": true,
|
||||||
"horizontalAlignment": "LEFT",
|
"horizontalAlignment": "LEFT",
|
||||||
"id": "Last Transaction",
|
"id": "Last Transaction",
|
||||||
"index": 5,
|
"index": 7,
|
||||||
"isCellEditable": false,
|
"isCellEditable": false,
|
||||||
"isCellVisible": true,
|
"isCellVisible": true,
|
||||||
"isDerived": false,
|
"isDerived": false,
|
||||||
@@ -290,7 +356,7 @@
|
|||||||
"enableSort": true,
|
"enableSort": true,
|
||||||
"horizontalAlignment": "LEFT",
|
"horizontalAlignment": "LEFT",
|
||||||
"id": "Days Unused",
|
"id": "Days Unused",
|
||||||
"index": 6,
|
"index": 8,
|
||||||
"isCellEditable": false,
|
"isCellEditable": false,
|
||||||
"isCellVisible": true,
|
"isCellVisible": true,
|
||||||
"isDerived": false,
|
"isDerived": false,
|
||||||
|
|||||||
Reference in New Issue
Block a user