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

Sales order
Open 15 Done 280
Rank Created date Order # Customer Total amount Delivery deadline Sales items Ingredients Production Invoice Delivery
527,908.70 MYR Total amount (Sum summarizer, full filtered Open set)
Showing 1–15 of 15 open orders (full set from Katana snapshot)

Project Gaia — static mockup in Filament v3 table idiom. No backend. Sample data: Katana tenant snapshot 2026-04-12, all locations.

Sales orders (Open) — field manifest

FieldFilament componentTypeSourceFK target
Drag handleTable::reorderable('rank') gripiconUI: drag-to-reorder production priority
RankTextColumn (sort key of reorderable())int 1–15stored: sales_orders.rank — manual priority, drives stock allocation
CheckboxTable bulk selection (BulkAction Edit / Delete, both requiresConfirmation())selectUI: Edit = bulk field patch (blank = keep); Delete skips rows with linked MOs/shipments
Created dateTextColumn::date()->sortable() + Filter (date range)datestored: sales_orders.created_date; list sorted ascending by it
Order #TextColumn::searchable(isIndividual)->url()string, user-editablestored: sales_orders.order_no — free text, prefixes NVMSB- / YGMSB-, "(2026)" disambiguator
CustomerTextColumn::searchable(isIndividual)stringstored: sales_orders.customer_idcustomers.id
Total amountTextColumn::numeric()->summarize(Sum)money MYRderived: Σ order line totals; 0.00 MYR orders allowedso_lines
Delivery deadlineTextColumn::date()->color(fn at-risk ⇒ danger)datestored: promised-delivery date; red when fulfillment at risk (14 of 15 rows)
Sales itemsTextColumn::badge() (In stock green / Not available red)derived statusderived: finished-goods availability of order lines vs inventorystock_movements
IngredientsTextColumn::badge() (Picked / In stock / Expected date / Not available)derived statusderived: material availability for making the items; Expected date from linked PO arrivalpo_lines / mos
ProductionTextColumn::badge()->url() when Done; Action::button() "Make..." when no MOderived status / actionderived from linked manufacturing orders; Done drills into the MOmos.id
InvoiceSelectColumn (inline dropdown, badge-styled)enum: Invoiced / Not invoicedstored: invoicing status, inline-editable; likely synced with accounting integrationinvoices
DeliverySelectColumn (inline dropdown, badge-styled)enum: Ready for packing / Packed / Partially delivered / Not shippedstored: fulfillment status; "Ready for packing" auto-derived when items In stock

Engine notes

  • Pinned "Total:" 527,908.70 MYR verified equal to the exact sum of the 15 visible order totals (recomputed over the filtered Open view).
  • Status cascade: Sales items "In stock" rows all show Ingredients "Picked" + Production "Done" (goods already made/allocated); "Not available" rows show raw-material availability (In stock / Expected date / Not available) + a "Make..." call-to-action to create a manufacturing order.
  • Ingredients "Expected 2026-05-09" implies linkage to an open purchase order's expected arrival (row 10, deadline 2026-05-08 — arrival 1 day after the deadline, hence red).
  • Delivery deadline renders red as an overdue/at-risk warning (14 of 15 rows); only 2026-04-24 renders black — red is tied to fulfillment risk/lateness, not simple past-date.
  • Rank + per-row drag handles = manual priority ordering that determines stock allocation priority (Filament reorderable()).
  • Open/Done tabs partition orders by lifecycle; Invoice and Delivery are inline-editable dropdowns directly in the grid; Production "Done" cells drill into the linked MO.
  • Zero-value orders (0.00 MYR) are permitted (rows 5, 8, 15). "All locations" dropdown scopes availability/status computation per warehouse location.