No description
Submitters can now mark individual item quantities as received when confirming delivery, rather than treating a PO as all-or-nothing. Schema (migration: 20260516103013_partial_receipt): - POStatus: new PARTIALLY_CLOSED value between PAID_DELIVERED and CLOSED - ActionType: new PARTIAL_RECEIPT_CONFIRMED value - POLineItem: new deliveredQuantity Decimal? field — accumulates delivered qty across multiple receipt events State machine: - PAID_DELIVERED → confirm_partial_receipt → PARTIALLY_CLOSED (new) - PARTIALLY_CLOSED → confirm_receipt → CLOSED (all delivered) - PARTIALLY_CLOSED → confirm_partial_receipt → PARTIALLY_CLOSED (more partial) Receipt page / form: - Loads line items with ordered qty, previously delivered qty, and remaining qty - Per-row numeric input for "receiving now" defaulting to all remaining - "Mark all remaining" shortcut - Dynamic button: "Confirm Partial Receipt" vs "Confirm Receipt & Close PO" - Info banner telling user if the PO will stay open or close Receipt action: - Accumulates deliveredQuantity per line item - If all lines fully delivered → CLOSED + fires notifications + updates inventory - If any line still outstanding → PARTIALLY_CLOSED (no notifications yet) - Inventory auto-update runs per-event for the delivered quantities only Dashboard & PO detail: - Open Orders count now includes PARTIALLY_CLOSED - "Confirm Receipt" CTA in po-detail handles PARTIALLY_CLOSED with distinct amber styling and "Confirm Remaining" label - Activity log shows PARTIAL_RECEIPT_CONFIRMED with appropriate label - PARTIALLY_CLOSED gets warning (amber) badge variant Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| App/pelagia-portal | ||
| design_handoff_pelagia_portal | ||
| GstService | ||
| Progress | ||
| Prototype | ||
| Spec | ||
| .gitignore | ||
| DESIGN.md | ||
| generate_po.py | ||
| inspect_po.py | ||
| PLAYRIGHT_TEST_DESIGN.md | ||