Join directly to itemsite (warehouse 35/MPE) and call qtynetable() per
part instead of using MAX from shortage lines, which was NULL for MTO parts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add customer_name via coitem -> cohead -> custinfo join (blank for stock builds)
- Format wo_duedate as YYYY-MM-DD using to_char()
- Fix 'unknown to text' error in UNION by casting MTS/MTO literals to ::text
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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) and Critical Parts (aggregated
parts blocking near-term shipments). Nav button added to all pages.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 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>
- Add WHERE item_active filter to show only active unused items
- Remove Status column from query and table widget
- Add widget binding guidance to AGENTS.md (NUMBER inputs
cannot use NULLIF pattern due to prepared statement typing)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
NULLIF(int, '') fails when prepared statements type the parameter
as integer. Use direct cast since NUMBER input always has a value.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Re-add NULLIF/COALESCE pattern for UnusedDays.text input filter
now that the base query is confirmed working.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove UnusedDays.text widget reference and dynamicBindingPathList
to test whether the base query works against the datasource.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>