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

Manufacturing orders

+ Manufacturing order
Open Done 2
Order # Customer Product Category Plan/Act. qty Plan/Act time Materials Sub-assemblies Operations Total Done date Production
212,000 / 212,000 pcs … / … 84,766.75 MYR 0 MYR 0 MYR 84,766.75 MYR Sum summarizers
Showing 1–2 of 2 done manufacturing orders (Done at: last 7 days)

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

Manufacturing orders (Done) — field manifest

FieldFilament componentTypeSourceFK target
Checkbox / ⓘautomatic with BulkActions (export / print / delete)uiUI-only bulk select; header ⓘ tooltip slot dropped
Order #TextColumn::searchable(isIndividual: true)->url()stringstored: MO number '{prefix}-{number} / {sequence}'manufacturing_orders.id
CustomerTextColumn::placeholder('—')string, nullablestored: FK customer via linked sales order; blank for make-to-stock MOs (both captured rows empty)contacts.id
ProductTextColumn::searchable(isIndividual: true)stringderived: product name + ' / ' + variant suffixvariants.id
CategoryTextColumn (badge-style) + SelectFilterstringstored: item master product category, read-only herecategories.id
Planned / Actual qtyTextColumn::state("{planned} / {actual}")->summarize(Sum)qty pair + UoMplanned stored on MO; actual written at completion (actual = planned in both sample rows)
Planned / Actual timeTextColumn::placeholder('… / …')duration pair, nullablederived: Σ planned vs tracked operation durations; '… / …' when no operation time exists
Materials costTextColumn::numeric()->summarize(Sum)money MYRderived: Σ ingredient qty × moving-average cost at consumption (one MO shows 0.00 legitimately)
Sub-assemblies costTextColumn::numeric()->summarize(Sum)money MYRderived: cost of consumed manufactured-ingredient items, split from raw materials
Operations costTextColumn::numeric()->summarize(Sum)money MYRderived: Σ operation costs (time × rate or fixed) from MO operation rows
Total costTextColumn::numeric()->summarize(Sum)money MYRderived: Materials + Sub-assemblies + Operations (84766.75 + 0 + 0 checks out)
Done dateTextColumn::date()->sortable() (default sort desc)datestored: timestamp set when MO marked Done; drives the 'Done at' range filter
ProductionSelectColumn (inline-editable badge, green)enumstored: MO status; reopening moves the MO back to the Open tab

Engine notes

  • Total cost = Materials + Sub-assemblies + Operations per row (84766.75 = 84766.75 + 0 + 0).
  • Totals over the filtered set: 212000 / 212000 pcs (= 12000 + 200000), … / … time, 84766.75 MYR materials, 0 MYR sub-assemblies, 0 MYR operations, 84766.75 MYR total (Katana pins this on top; Filament uses tfoot summarizers).
  • Row count '2 orders' reflects the active Done-at range + location filters.
  • Planned vs Actual pattern on both qty and time: MO stores planned values, completion writes actuals.
  • Time shows '… / …' placeholder when no operation time data exists — the totals row inherits the same placeholder.
  • Costs are location- and consumption-time based: materials cost captured at completion (moving average of consumed ingredients), so a done MO can legitimately show 0.00 MYR.
  • List is scoped to one inventory location — MOs live per location.
  • Done tab has its own toolbar variant: 'Done at' range picker replaces the Open tab's scheduling controls.