diff --git a/CHANGELOG.md b/CHANGELOG.md index 031c511..2f6d14b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ This file is the running release and change log for CODEXIUM. Keep it updated wh - Workbench station-to-station rebalance so planners can move an operation onto another active work center and rebuild the downstream chain from the same dispatch surface - Workbench drag scheduling in station grouping mode, with draggable operation cards, station drop targets, heatmap-day-aware drop timing, and projected post-drop load cues before the move is committed - Workbench station cards now show planned-vs-actual load so planners can compare schedule intent against recorded execution time +- Work-order `On Hold` quick status changes now require a recorded hold reason and persist the active blocker on the work-order record and audit trail +- Project milestone cards now support inline quick status actions for start, block, complete, reset, and reopen flows directly from the project detail view - Project milestones with status, due dates, notes, and edit-time sequencing inside the project workflow - Project-side milestone and work-order rollups surfaced on project list and detail pages - Inventory SKU master builder with family-level sequence codes, branch-aware taxonomy management, and generated SKU previews on the item form diff --git a/README.md b/README.md index c31294a..cb4fed4 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,8 @@ Current foundation scope includes: - branded quote, sales-order, and purchase-order PDFs through the shared backend document pipeline - purchase-order supporting documents for vendor invoices, acknowledgements, certifications, and backup files - shipping shipments linked to sales orders with inventory-backed picking, stock issue posting, packing slips, shipping labels, bills of lading, and logistics attachments -- projects with customer/commercial/shipment linkage, owners, due dates, milestones, rollups, notes, attachments, reverse-linked quote/sales-order visibility, and downstream project-context carry-through into generated work orders and purchase orders -- manufacturing work orders with project linkage, station-based operation templates, editable station calendars/capacity settings, calendar-aware operation scheduling, operation execution controls, operator assignment, timer-based and manual labor posting, material issue posting, completion posting, operation rescheduling, and work-order attachments +- projects with customer/commercial/shipment linkage, owners, due dates, milestones, rollups, inline milestone quick-status actions, notes, attachments, reverse-linked quote/sales-order visibility, and downstream project-context carry-through into generated work orders and purchase orders +- manufacturing work orders with project linkage, station-based operation templates, editable station calendars/capacity settings, calendar-aware operation scheduling, operation execution controls, operator assignment, timer-based and manual labor posting, required hold reasons for `On Hold` status changes, material issue posting, completion posting, operation rescheduling, and work-order attachments - planning workbench with live project/manufacturing schedule data, exception rail, heatmap load view, agenda view, focus drawer, station load grouping, readiness filters, overload visibility, inline dispatch actions, planner-side operation rebalance controls including station-to-station moves, and station-lane drag scheduling - sales-order demand planning with multi-level BOM explosion, stock/open-supply netting, and build/buy recommendations - planner-assisted conversion of demand-planning recommendations into prefilled work-order and purchase-order drafts diff --git a/SHIPPED.md b/SHIPPED.md index 20b5746..30d7acc 100644 --- a/SHIPPED.md +++ b/SHIPPED.md @@ -36,10 +36,10 @@ This file tracks roadmap phases, slices, and major foundations that have already - Logistics attachments directly on shipment records - Projects foundation with customer, quote, sales-order, shipment, owner, due-date, notes, and attachment linkage - Reverse project linkage visibility on quote and sales-order detail pages, plus project-context carry-through into generated work orders and purchase orders with sales-order-driven backfill for existing records -- Project milestones and project-side milestone/work-order rollups +- Project milestones, inline milestone quick-status actions, and project-side milestone/work-order rollups - Project cockpit section on detail pages for commercial, supply, execution, delivery, purchasing, readiness-risk, and cost-snapshot visibility, with direct launch paths into prefilled project work orders and demand-linked purchase orders plus a project activity timeline - Project list/detail/create/edit workflows and dashboard program widgets -- Manufacturing foundation with work orders, project linkage, operation execution controls, operator assignment, timer-based and manual labor posting, material issue posting, completion posting, and work-order attachments +- Manufacturing foundation with work orders, project linkage, operation execution controls, operator assignment, timer-based and manual labor posting, required hold reasons for `On Hold` status changes, material issue posting, completion posting, and work-order attachments - Manufacturing stations, item routing templates, editable station calendars/capacity settings, automatic work-order operation planning, and operation-level rescheduling for the workbench schedule - Vendor invoice/supporting-document attachments directly on purchase orders - Vendor-detail purchasing visibility with recent purchase-order activity diff --git a/client/src/components/ConfirmActionDialog.tsx b/client/src/components/ConfirmActionDialog.tsx index ee7b6d7..2ff98dc 100644 --- a/client/src/components/ConfirmActionDialog.tsx +++ b/client/src/components/ConfirmActionDialog.tsx @@ -11,6 +11,12 @@ interface ConfirmActionDialogProps { intent?: "danger" | "primary"; confirmationLabel?: string; confirmationValue?: string; + extraFieldLabel?: string; + extraFieldPlaceholder?: string; + extraFieldValue?: string; + extraFieldRequired?: boolean; + extraFieldMultiline?: boolean; + onExtraFieldChange?: (value: string) => void; isConfirming?: boolean; onConfirm: () => void | Promise; onClose: () => void; @@ -27,6 +33,12 @@ export function ConfirmActionDialog({ intent = "danger", confirmationLabel, confirmationValue, + extraFieldLabel, + extraFieldPlaceholder, + extraFieldValue = "", + extraFieldRequired = false, + extraFieldMultiline = false, + onExtraFieldChange, isConfirming = false, onConfirm, onClose, @@ -44,7 +56,11 @@ export function ConfirmActionDialog({ } const requiresTypedConfirmation = Boolean(confirmationLabel && confirmationValue); - const isConfirmDisabled = isConfirming || (requiresTypedConfirmation && typedValue.trim() !== confirmationValue); + const requiresExtraField = Boolean(extraFieldLabel); + const isConfirmDisabled = + isConfirming || + (requiresTypedConfirmation && typedValue.trim() !== confirmationValue) || + (requiresExtraField && extraFieldRequired && extraFieldValue.trim().length === 0); const confirmButtonClass = intent === "danger" ? "bg-red-600 text-white hover:bg-red-700" @@ -81,6 +97,27 @@ export function ConfirmActionDialog({ /> ) : null} + {requiresExtraField ? ( +