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
← Shipments / SHP-26040

SHP-26040

Shipment · NVMSB-0309 · NatusVincere Marketing Sdn Bhd
In delivery Step 3 of 4 8 pkgs · 96 kg ETA 2026-07-07
Print packing slip
Sales order
NVMSB-0309
Customer
NatusVincere Marketing Sdn Bhd
Customer ref #
PO-NV-2317
Location
11, Balakong Jaya · CTSB
Ship to
KL DC 23, Jalan PJU 5/11, Kota Damansara, 47810 Petaling Jaya, Selangor
Carrier
Own van · driver Ahmad
Tracking #
— own fleet (null; external carriers get a tracking URL from the carrier template)
Packages
8
Gross weight
96 kg
Shipped
2026-07-07
ETA
2026-07-07

Lines

1 line packed · picked FG batches
# Product Qty Lot (GMP) Exp Packages
1 Apple Fiber / 2025-01 End Product 1,120 pcs APF-2605-01 2028-05 8 cartons × 140
Lot numbers print on the packing slip; so_fulfillment movements posted per lot; COGS booked 2026-07-07 at FG moving-average.

Events

shipment_events timeline
  1. Packed — Farah

    2026-07-07 08:40 · 8 packages, slip printed

  2. In delivery — Ahmad

    2026-07-07 09:15 · departed Balakong

  3. Delivered

    awaiting driver confirmation

Manual Advance v1; carrier webhooks can hydrate the same table later.

Remaining on SO

unshipped lines of NVMSB-0309
Lines 2–4 23,717 pcs still unshipped

Waiting on MOs NVMSB-0309 / 2–4. Once those finished goods land, a follow-up shipment packs the remaining lines.

Back to sales order NVMSB-0309 →

Project Gaia — static mockup in Filament v3 table idiom. No backend. SHP-26040 is a demo shipment for NVMSB-0309 (location 11, Balakong Jaya). Shipped line, lot APF-2605-01, packages and events are illustrative, consistent with the 8 pkgs / 96 kg header captured on shipments.html.

Shipment detail — field manifest

Filament ShipmentResource ViewRecord page: Infolist (key facts) + header Actions (Mark delivered / Report exception / Print packing slip) + RelationManagers: ShipmentLinesRelationManager (shipment_lines) and a shipment_events timeline ViewEntry.

FieldFilament componentTypeSourceFK target
Shipment #TextEntry (title) (series SHP-{yy}{seq})stringstored: shipments.code
Sales orderTextEntry::url()FKstored: shipments.sales_order_id — shipment lines are picked SO lines (partial shipments allowed)sales_orders.id
Customer / Ship toTextEntryFK + addressderived: SO customer; stored: shipments.ship_to (frozen copy of address)customers.id
Carrier / TrackingTextEntry; tracking as external url()FK + stringstored: shipments.carrier_id, .tracking_no (null for own fleet); carrier row holds tracking URL templatecarriers.id
Pkgs / kgTextEntryint + decimalstored: shipments.package_count, .gross_weight_kg
Progress / StatusViewEntry (step dots) + badge; Actions "Mark delivered" / "Report exception"enumstored: Packed → In delivery → Delivered (+ Exception); each change appends shipment_events (status, at, by, note)shipment_events
Shipped / ETA / DeliveredTextEntry::date(), red when ETA < today and not delivereddatesstored: shipped_at, eta, delivered_at (set by Mark delivered)
Line: ProductTextColumn::url() (relation manager)FKstored: shipment_lines.variant_idvariants.id
Line: Qty / PackagesTextColumn::numeric()qty + variant UoMstored: shipment_lines.quantity, .package_count
Line: Lot / Exp Gaia GMPTextColumn (font-mono)FK, REQUIRED (batch-tracked FG)stored: shipment_lines.batch_id — picked FG lot, prints on the packing slip; expiry carried from the batchbatches.id
Event: Status / at / by / noteRepeatableEntry (timeline)enum + timestamp + FK + textstored: shipment_events.status, .at, .by (user), .note — appended on each Advance / Mark delivered / Report exceptionusers.id

Engine notes

  • Packing picks FG batches (FEFO suggested) per line; the chosen lot numbers print on the packing slip and post so_fulfillment movements. COGS books at packing from FG moving-average — not at Mark delivered.
  • SO's Delivery chip derives from its shipments: none → Not shipped; some → Partially delivered; all → Delivered. SHP-26040 covers only line 1, so marking it delivered flips NVMSB-0309 to Partially delivered.
  • Status updates are manual v1 (driver / CS clicks Mark delivered). Carrier API webhooks can hydrate shipment_events later without schema change.
  • Report exception sets status Exception and notifies CS; a refused delivery raises a return (quarantine-first at receipt, per GMP).
  • shipment_lines.batch_id is REQUIRED (Gaia GMP superset) — FG shipped out is always lot-traceable for recall.