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

Batches

Name Variant code Batch number In stock 1 ▲ Expiration date 2 ▲ Created date
Showing 1–18 of 313 (sample rows from Katana snapshot)

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

Batches — field manifest

FieldFilament componentTypeSourceFK target
(row selector)Checkbox column (BulkAction plumbing)uiUI-only; no bulk actions visible in capture
NameTextColumn::searchable(isIndividual)->url()string (item / variant)derived: item.name + " / " + variant option value; variant-less items show bare name ("Instant Cereal Flake")variants.id
Variant codeTextColumn::searchable(isIndividual)stringstored: variants.sku/code; dataset also uses supplier-like values ("Nexus Wise", "Bionutricia")
Batch numberTextColumn::searchable(isIndividual)string (free-text lot ID)stored: batches.batch_number; formats vary; NOT unique per rowbatches.id
In stockTextColumn::numeric()->url() (movement drill-down)qty + variant UoMderived: Σ batch-tracked stock movements at selected locationstock_movements
Expiration dateTextColumn::date()->sortable()->color(fn: red when past)date, nullablestored: batches.expiration_date; default sort priority 1 ASC
Created dateTextColumn::date()->sortable()datestored: batch creation/receipt date; default sort priority 2 ASC
Show empty batchesFilter (Toggle), default offboolean filterderived: hides batches with zero remaining qty; the "313 batches" count follows it
Location scopeSelectFilter (toolbar-level)FKstored: scopes every row + count to one locationlocations.id
Tabs All / Products / MaterialsTabs (type filter on same query)enum filterderived: item type partition; sample rows are all materials

Engine notes

  • Default sort is multi-column with numbered priority badges: Expiration date ASC (1), then Created date ASC (2) — FEFO (first-expiry-first-out) presentation.
  • Expiration dates earlier than the capture date render red = expired-batch warning (red rows run 2025-05-27 through 2026-04-05, normal from 2026-04-16).
  • Rows are batch records, not batch-number aggregates: "Pea Protein / Nexus Wise" batch 3700D04019DB240227 appears twice with 20000000 mg and 680000 mg.
  • "Show empty batches" off by default: zero-quantity batches are excluded from the list and the "313 batches" count.
  • In stock quantity is per selected location; switching the location dropdown re-scopes every row and the count.
  • In stock values are links, implying drill-down to the batch's consumption/movement history.
  • All quantities in this dataset display in mg — UoM comes from the item/variant, appended as a unit suffix inside the cell.
  • Units rule: qty stored in the base unit (mg / ml / pcs); display auto-scales (123,300,000 mg shows as 123.3 kg). Units FK → admin-locked units table; conversion factors hard-coded — staff never type units.