G Gaia

Switch factory

CYTO-11 — Balakong Jaya CTSB CYTO-29 CTSB CYTOWELL-54 — Taming Jaya PIC/S CTWSB CYTOCNGZ-602 — Guangzhou CTCNGZ

Only factories you are granted appear here (Filament tenant menu).

Leo Lim

leo@navi.my · Owner / Admin

Profile settings Change password

Theme

Sign out
RetailSellR&DMakeBuyStockPlanItemsGMPAdminInsights
← Sales orders / NVMSB-0309 / Pack & deliver

Pack & deliver — NVMSB-0309

will post as SHP-26040 · posts so_fulfillment movements and books COGS at FG moving-average cost

1 · Sales order

fixed when entered from the SO card

Deadline 2026-05-08 · at risk Delivery: Not shipped Ship to: Same as billing — printed on the packing slip Customer ref PO-NV-2317

2 · Lines to pack

availability computed per location — CYTO-11 FG store
Partial shipment — 1 of 4 lines packable. On post the SO Delivery chip flips to Partially delivered.
# Product Ordered Shipped Qty to pack Availability
1 Apple Fiber / 2025-01 1,120 pcs 0 In stock
2 Double Root Coffee / 2024-02NVMSB-0309 / 2 · WIP 16,800 pcs 0 Not available — 0 FG on hand
3 JuicyPop / 2024-04-HologramNVMSB-0309 / 3 · WIP 5,917 pcs 0 Not available — 0 FG on hand
4 Sessillis Tea Bag / 2024-01+ Make 1,000 pcs 0 Not available — 0 FG on hand

3 · Batch picks

GMP — mandatory
Line 1 · Apple Fiber / 2025-01 APF-2605-01 · exp 2028-05 · 1,120 pcs of 3,400 pcs on hand at CYTO-11

Every packed pc must carry a lot number — lots print on the packing slip and post per-batch so_fulfillment movements (GMP traceability; feeds batch-trace mock recall).

4 · Packages & carrier

Cancel
On post: creates shipments + shipment_lines(so_line_id, variant_id, qty, batch_id REQUIRED) · posts so_fulfillment movements per lot · books COGS from FG moving-average · appends shipment_events "Packed" · packing slip printable from print-packing-slip.html.

Project Gaia — static mockup in Filament v3 idiom. No backend. Pack & deliver is the moment before the SHP-26040 rows already shown on the Shipments list and SO card — partial shipments allowed, lots mandatory (GMP).

Pack & deliver — field manifest

FieldFilament componentTypeSourceFK target
PageShipmentResource CreateRecord ("Pack & deliver" wizard from SO)formcreates: shipments + shipment_lines; next number from series SHP-{yy}{seq}
Shipment #TextInput (readonly preview)stringstored: shipments.code — series SHP-{yy}{seq}
Sales orderSelect (locked when opened from SO)FKstored: shipments.sales_order_idsales_orders.id
Ship toPlaceholder (frozen copy)address textstored: shipments.ship_to — frozen address copy at pack time; printed on the packing slip
Lines to packCheckboxList + qty TextInput per SO linerowscreates: shipment_lines (so_line_id, variant_id, qty, batch_id REQUIRED); availability = live FG on-hand per locationso_lines / variants
Batch picksChips (FEFO default, editable)1:n rowsshipment_lines.batch_id REQUIRED — every packed pc carries a lot; lots print on the packing slipbatches.id
Carrier / TrackingSelect + TextInput (tracking disabled for own fleet)FK + string nullablestored: shipments.carrier_id, .tracking_no (nullable); carrier row holds the tracking URL templatecarriers.id
Packages / Weight / ETATextInput int + decimal + DatePickerint / decimal / datestored: shipments.package_count, .gross_weight_kg, .eta
StatusBadge + "Advance status" Actionenumstored: shipments.status — Packed → In delivery → Delivered (+ Exception); each change appends shipment_eventsshipment_events
PostCreateActionactionposts so_fulfillment stock movements per lot; books COGS from FG moving-average; appends shipment_events "Packed"stock_movements

Engine notes

  • SO Delivery chip derives from its shipments: none → Not shipped; some → Partially delivered; all → Delivered. Posting this partial pack flips NVMSB-0309 to Partially delivered.
  • batch_id is required on every shipment line — per-batch so_fulfillment movements keep the recall trace intact (batch-trace mock reads them).
  • COGS books at FG moving-average cost at post time, not at SO create — price memory updates at fulfillment.
  • "Save as Packed" holds status at Packed; the driver's departure advances it to In delivery (manual Advance status v1; carrier webhooks can hydrate shipment_events later).