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

Purchase orders

+ Draft order + Purchase order
Open 23 Draft 2 Done 521
Created date Order # Supplier Total order value Received date Billing status
3,600,780.63 MYR Total order value (Sum summarizer, all 521 done orders)
Showing 1–18 of 521 (sample rows from Katana snapshot, sorted by Received date desc)

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

Purchase orders (Done) — field manifest

FieldFilament componentTypeSourceFK target
(checkbox)Table selection + DeleteBulkActionselection— (bulk delete of selected POs)
Created dateTextColumn::date()->sortable() + Filter (date range)datestored: purchase_orders.created_date
Order #TextColumn::searchable(isIndividual)->url()stringstored: purchase_orders.order_no — NOT unique (PO-555 appears twice in this sample), PK is internal id
SupplierTextColumn::searchable(isIndividual)string (display name)stored: purchase_orders.supplier_idsuppliers.id
Total order valueTextColumn::numeric()->summarize(Sum)money MYRderived: Σ po_lines.qty × unit_price; 0 MYR done orders exist and still count in the totalpo_lines
Received dateTextColumn::date()->sortable() — defaultSort desc + Filter (date range)datestored at receipt (last/final receipt date); drives Done tab membershippo_line_receipts
Billing statusTextColumn::badge() + SelectFilterenum: Billed / Billed (n) / Not billedderived from bill linkage, independent of receipt — a Done PO can still be Not billedsupplier_bills
Expected arrival— (dropped: not shown on the Done tab — replaced by Received date)datestored: purchase_orders.expected_arrival_date
Delivery— (dropped: every Done row is fully received, column is redundant here)enumderived: received vs ordered qty
Location scopeSelectFilter (header "All locations" dropdown)FK filterstored: purchase_orders.location_idlocations.id
Draft tab— (dropped: Draft view not captured)lifecycle tabOpen/Draft/Done partition POs by lifecycle state

Engine notes

  • Totals footer: Total: 3600780.63 MYR under Total order value — sums ALL 521 filtered Done orders, not just the visible page.
  • Done tab = purchase orders fully received; each row carries a Received date, so tab membership is driven by receipt state, not a manually set status.
  • Billing status is derived from bill linkage, independent of receipt: an order can be Done (received) yet "Not billed" (e.g. PO-559, PO-548); "Billed (n)" shows multiple bills against one PO.
  • Default sort is Received date descending (sort arrow rendered in that header).
  • 0 MYR done orders exist (all NatusVincere Marketing Sdn Bhd rows) — zero-value POs are legal and still count in the total.
  • Order # is not enforced unique (duplicate "PO-555"), so the DB key must be an internal id, with order_no as editable text.
  • Money rendered as amount + de-emphasized currency code (MYR = factory default currency) — store amount + currency code.