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

NVMSB-0309

Sales order · Open · Rank 10
Sales items Not available Ingredients Expected 2026-05-09 Production Make… Invoice Invoiced Delivery Not shipped
Print confirmation
Customer
NatusVincere Marketing Sdn Bhd
Entity / series
NVMSB (NVMSB-{seq})
Created date
2026-03-09 by Kevin Wong
Delivery deadline
2026-05-08
Location
11, Balakong Jaya · CTSB
Currency
MYR
Invoice status
Invoiced flag only — accounting lives in QuickBooks, no invoice documents in Gaia
Customer ref #
PO-NV-2317 printed on confirmation & packing slip
Bill to
NatusVincere Marketing Sdn Bhd 23, Jalan PJU 5/11, Kota Damansara, 47810 Petaling Jaya, Selangor
Ship to
Same as billing address printed on the packing slip

Lines

4 lines · availability computed at 11, Balakong Jaya
# Product Qty Unit price Disc % Tax Line total Availability Production
1 Apple Fiber / 2025-01 End Product 1,120 pcs 9.45 MYR 0% SST 0% 10,584.00 MYR In stock — from stock
2 [2024-02] Double Root Coffee / 2024-02 End Product 16,800 pcs 7.50 MYR 0% SST 0% 126,000.00 MYR Not available NVMSB-0309 / 2 · WIP
3 [2024-04-Hologram] JuicyPop / 2024-04-Hologram End Product 5,917 pcs 4.32 MYR 0% SST 0% 25,561.44 MYR Not available NVMSB-0309 / 3 · WIP
4 Aiternanthere Sessillis Tea Bag End Product 1,000 pcs 2.80 MYR 0% SST 0% 2,800.00 MYR Not available
Total units 24,837 pcs
Subtotal 164,945.44 MYR
Shipping fee — own fleet, delivery included 0.00 MYR
Tax (SST 0% — supplements exempt) 0.00 MYR
Total 164,945.44 MYR = Σ(qty × price × (1 − disc)) + shipping + tax

Delivery

1 shipment All shipments →
Shipment # Route Carrier Tracking # Packages Status Shipped
SHP-26040Packing slip ↗ Balakong → KL DC Own van — own fleet 8 / 96 In delivery 2026-07-07

Pack flow: "Pack & deliver" picks finished-goods batches (FEFO suggested) for each line — the chosen lot numbers print on the packing slip and post so_fulfillment movements. COGS is booked at that moment from the FG moving-average cost.

SHP-26040 is a Gaia demo shipment created after the snapshot (SO chip still "Not shipped" as of 2026-04-12).

Demand chain

SO line → MO → PO (when materials are short)
Line 1 · Apple Fiber × 1,120 In stock — FG batch picked at packing
Line 4 · Sessillis Tea Bag × 1,000
MOs auto-number as {SO#} / {line}. The header "Ingredients — Expected 2026-05-09" chip is the latest expected-arrival date across the open POs covering MO shortages — one day after the 2026-05-08 deadline, which is why the deadline renders red.

Notes

additional info — printed on the order confirmation

Deliver lines 1–3 together to KL DC; line 4 may follow separately. Include halal certs and CoA per FG batch with the shipment documents.

Customer PO PO-NV-2317 covers all four lines — quote this reference on the confirmation, packing slip and correspondence.

Project Gaia — static mockup in Filament v3 table idiom. No backend. Sample data: Katana tenant snapshot 2026-04-12, location 11, Balakong Jaya. Order header, MO links and total are real; line quantities for lines 2–3 are real MO quantities; unit prices and lines 1/4 detail are illustrative, consistent with the captured 164,945.44 MYR total.

Sales order detail — field manifest

Filament SalesOrderResource ViewRecord page: Infolist (key facts) + header Actions + RelationManagers: LinesRelationManager (so_lines), ShipmentsRelationManager (shipments), demand-chain ViewEntry.

FieldFilament componentTypeSourceFK target
Order #TextEntry (title) / TextInput on editstring, user-editable series NVMSB-{seq}stored: sales_orders.number
CustomerTextEntry::url() / Select::relationship on editFKstored: sales_orders.customer_idcustomers.id
Customer ref #TextEntry / TextInput on editstring, nullablestored: sales_orders.customer_reference — printed on the order confirmation and packing slip
Bill to / Ship toTextEntry ×2 / Select::relationship on editFK ×2, nullablestored: sales_orders.billing_address_id / shipping_address_id — Ship to falls back to billing ("Same as billing address"); the packing slip prints Ship tocustomer_addresses.id
Created date / byTextEntry::date()date + FKstored: sales_orders.created_at, created_byusers.id
Delivery deadlineTextEntry::date()->color(fn) red when at riskdatestored: sales_orders.delivery_deadline; red = ingredients ETA > deadline or overdue
LocationTextEntryFKstored: sales_orders.location_id (scopes availability)locations.id
CurrencyTextEntrystringstored: sales_orders.currency (MYR)
RankTextEntry; reorderable() on listintstored: sales_orders.rank — manual stock-allocation priority
Invoice statusTextEntry::badge() + Action (toggle)enum Not invoiced / Invoicedstored FLAG ONLY: sales_orders.invoice_status — accounting in QuickBooks, Gaia stores no invoice rows
Delivery statusTextEntry::badge() + Action dropdownenumstored: sales_orders.delivery_status (Not shipped / Ready for packing / Packed / Partially delivered)
Line: ProductTextColumn::url() (relation manager)FKstored: so_lines.variant_idvariants.id
Line: QtyTextColumn::numeric()qty + variant UoM (pcs)stored: so_lines.quantity
Line: Unit priceTextColumn::numeric()money MYRstored: so_lines.unit_price
Line: Disc %TextColumn::numeric()numeric, default 0stored: so_lines.discount_percent — net unit price after discount must still respect the floor price
Line: TaxTextColumnFKstored: so_lines.tax_rate_id — tax_rates seeded with SST 0% and '5% - Sales Tax', tenant-configurable default (SST 0% across this snapshot)tax_rates.id
Line: Line totalTextColumn::numeric()->summarize(Sum)money MYRderived: qty × unit_price × (1 − disc); order Total = Σ line totals + shipping fee + tax = 164,945.44
Shipping feeTextInput group (tfoot row)string / money / FKstored: sales_orders.shipping_fee_description / shipping_fee_amount / shipping_fee_tax_rate_id (0.00 here — own fleet, delivery included)tax_rates.id
NotesTextarea / RichEditor (Infolist section)rich text, nullablestored: sales_orders.notes — additional info printed on the order confirmation
Line: AvailabilityTextColumn::badge()derived chipderived: line qty vs FG in-stock at location (In stock / Not available)stock_movements
Line: ProductionTextColumn::badge()->url() or Action "+ Make"FK, nullablestored: so_lines.mo_id; "+ Make" creates MO numbered {SO#} / {line}mos.id
Add line (CreateAction)LinesRelationManager CreateAction modal (2-col form)so_lines insertstored: so_lines(variant_id, quantity, unit_price ≥ floor after discount, discount_percent, tax_rate_id); availability chip recomputes vs FG at location; a new line with no stock surfaces a "+ Make" action numbered NVMSB-0309 / 5variants.id / tax_rates.id → mos.id
ShipmentsShipmentsRelationManager tablerowsstored: shipments.so_id; packing picks FG batch_ids → lot numbers on packing slip; shipments.tracking_number nullable ("— own fleet" when self-delivered)shipments / shipment_lines

Engine notes (from sales-list capture)

  • Five derived chips: Sales items = aggregate FG availability of order lines vs inventory (In stock / Not available); Ingredients = material availability for making the items — Picked (allocated to MO) / In stock / Expected <date> (from linked PO arrival) / Not available; Production = derived from linked MOs (Done / Make…); Invoice and Delivery are stored, inline-editable statuses.
  • Status cascade: "In stock" rows show Ingredients Picked + Production Done; "Not available" rows surface raw-material availability + a Make… call-to-action.
  • "Expected 2026-05-09" implies linkage to an open PO's expected arrival — one day after the 2026-05-08 deadline, hence the red deadline (risk highlight, not simple past-date).
  • Rank + drag handles = manual priority ordering that drives stock allocation.
  • COGS posts at fulfillment (pack & deliver) from FG moving-average cost — not at invoicing; invoicing itself lives in QuickBooks, Gaia keeps only the flag.
  • Pack & deliver is an Action::requiresConfirmation() gate in front of shipment-pack: partial packing is allowed when only some lines have FG (here line 1 only, FEFO lot APF-2605-01); confirming posts so_fulfillment movements per lot and flips Delivery to Partially delivered.
  • Order total is derived: Total = Σ(qty × price × (1 − disc)) + shipping fee + tax; 0.00 MYR orders allowed (customer-paid packaging flows).
  • "+ Add line" opens the LinesRelationManager CreateAction modal: unit price auto-fills from the last paid price and is validated against the variant price band/floor — a below-floor net price (after discount) flips the input red, disables Add, and raises an owner approval request (same hard lock as so-new and Retail). On save the availability chip recomputes vs FG at the order location; a line with no stock offers a "+ Make" numbered NVMSB-0309 / 5.