Add Operations - WO Shortages page with MTS/MTO shortage tracking

Automates the production manager's manual workflow of checking xTuple WO
Schedule + Kit Material Shortage for FA department work orders. Two tabs:
WO Shortages (detail per WO + shortage line with customer name, YYYY-MM-DD
dates) and Critical Parts (aggregated parts blocking near-term shipments
with QOH from MPE warehouse). Nav button added to all pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-03 13:47:58 -04:00
parent 9fc5f608d4
commit b5e74cebb7
178 changed files with 4158 additions and 1286 deletions

View File

@@ -160,8 +160,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "matl",
"notation": "standard",
@@ -194,8 +194,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "matl_classocde",
"notation": "standard",
@@ -228,8 +228,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "matl_desc",
"notation": "standard",
@@ -262,8 +262,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "matl_spec",
"notation": "standard",
@@ -276,142 +276,6 @@
"verticalAlignment": "CENTER",
"width": 150
},
"po_closed": {
"alias": "po_closed",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "number",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"po_closed\"])) : po_closed })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "po_closed",
"index": 7,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isVisible": true,
"label": "po_closed",
"notation": "standard",
"originalId": "po_closed",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"po_opened": {
"alias": "po_opened",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "number",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"po_opened\"])) : po_opened })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "po_opened",
"index": 6,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isVisible": true,
"label": "po_opened",
"notation": "standard",
"originalId": "po_opened",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"po_released": {
"alias": "po_released",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "number",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"po_released\"])) : po_released })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "po_released",
"index": 5,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isVisible": true,
"label": "po_released",
"notation": "standard",
"originalId": "po_released",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"poitem_due": {
"alias": "poitem_due",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "date",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"poitem_due\"])) : poitem_due })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "poitem_due",
"index": 8,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isVisible": true,
"label": "poitem_due",
"notation": "standard",
"originalId": "poitem_due",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"qoh": {
"alias": "qoh",
"allowCellWrapping": false,
@@ -432,8 +296,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "qoh",
"notation": "standard",
@@ -446,32 +310,32 @@
"verticalAlignment": "CENTER",
"width": 150
},
"uom": {
"alias": "uom",
"po_released": {
"alias": "po_released",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "text",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"uom\"])) : uom })()}}",
"columnType": "number",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"po_released\"])) : po_released })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "uom",
"index": 12,
"id": "po_released",
"index": 5,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "uom",
"label": "po_released",
"notation": "standard",
"originalId": "uom",
"originalId": "po_released",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
@@ -480,32 +344,100 @@
"verticalAlignment": "CENTER",
"width": 150
},
"wo_demanding": {
"alias": "wo_demanding",
"po_opened": {
"alias": "po_opened",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "text",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"wo_demanding\"])) : wo_demanding })()}}",
"columnType": "number",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"po_opened\"])) : po_opened })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "wo_demanding",
"index": 10,
"id": "po_opened",
"index": 6,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "wo_demanding",
"label": "po_opened",
"notation": "standard",
"originalId": "wo_demanding",
"originalId": "po_opened",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"po_closed": {
"alias": "po_closed",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "number",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"po_closed\"])) : po_closed })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "po_closed",
"index": 7,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "po_closed",
"notation": "standard",
"originalId": "po_closed",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"poitem_due": {
"alias": "poitem_due",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "date",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"poitem_due\"])) : poitem_due })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "poitem_due",
"index": 8,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "poitem_due",
"notation": "standard",
"originalId": "poitem_due",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
@@ -534,8 +466,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "wo_item",
"notation": "standard",
@@ -548,6 +480,40 @@
"verticalAlignment": "CENTER",
"width": 150
},
"wo_demanding": {
"alias": "wo_demanding",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "text",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"wo_demanding\"])) : wo_demanding })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "wo_demanding",
"index": 10,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "wo_demanding",
"notation": "standard",
"originalId": "wo_demanding",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"wo_total_demand": {
"alias": "wo_total_demand",
"allowCellWrapping": false,
@@ -568,8 +534,8 @@
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isEditable": false,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "wo_total_demand",
"notation": "standard",
@@ -581,6 +547,40 @@
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
},
"uom": {
"alias": "uom",
"allowCellWrapping": false,
"allowSameOptionsInNewRow": true,
"cellBackground": "",
"columnType": "text",
"computedValue": "{{(() => { const tableData = TableML.processedTableData || []; return tableData.length > 0 ? tableData.map((currentRow, currentIndex) => (currentRow[\"uom\"])) : uom })()}}",
"currencyCode": "USD",
"decimals": 0,
"enableFilter": true,
"enableSort": true,
"fontStyle": "",
"horizontalAlignment": "LEFT",
"id": "uom",
"index": 12,
"isCellEditable": false,
"isCellVisible": true,
"isDerived": false,
"isDisabled": false,
"isDiscardVisible": true,
"isSaveVisible": true,
"isEditable": false,
"isVisible": true,
"label": "uom",
"notation": "standard",
"originalId": "uom",
"sticky": "",
"textColor": "",
"textSize": "0.775rem",
"thousandSeparator": true,
"validation": {},
"verticalAlignment": "CENTER",
"width": 150
}
},
"renderMode": "CANVAS",
@@ -596,4 +596,4 @@
"verticalAlignment": "CENTER",
"widgetId": "pa1tblml01",
"widgetName": "TableML"
}
}