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 Expected arrival Created by Note
15,480.00 MYR Total order value (Sum summarizer, 2 draft orders)
Showing 1–2 of 2 (draft lifecycle — numbers reserved at creation)

Project Gaia — static mockup in Filament v3 table idiom. No backend. Draft tab was never captured in Katana — thin reconstruction: two illustrative drafts consistent with the Affron shortage on MO YGMSB-260401 / 1 and the PO-558 customer-supplied packaging flow.

Moves this draft to the Open tab and makes it available for Receive items and bill refs. No stock or accounting effects until receipt — the reserved number is kept.

Purchase orders (Draft) — field manifest

FieldFilament componentTypeSourceFK target
(checkbox)Table selection + DeleteBulkActionselection— (bulk delete of selected drafts)
statusTab (lifecycle partition)enum: draft / open / donestored: purchase_orders.status; Draft tab = status=draft
Created dateTextColumn::date()->sortable()datestored: purchase_orders.created_date
Order #TextColumn::searchable(isIndividual)->url()stringnumber reserved at creation, editable; 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 on the draft's linespo_lines
Expected arrivalTextColumn::date()datestored: purchase_orders.expected_arrival_date
Created byTextColumnstring (display name)stored: purchase_orders.created_byusers.id
NoteTextColumn::limit()->tooltip()textstored: purchase_orders.note — drafts carry the routing context: replenishment / MO shortage / manual
Open orderAction::requiresConfirmation()row actionsets status=open — the PO appears on the Open tab
Location scopeSelectFilter (header "All locations" dropdown)FK filterstored: purchase_orders.location_idlocations.id

Engine notes

  • Drafts are excluded from the Open tab count (23) and its Sum summarizer — the lifecycle partition is exclusive: status=draft / open / done.
  • Drafts post nothing to stock: no expected-arrival supply on Planning, no Committed quantities, no receipts until the order is opened.
  • "Save as draft" on the PO form (po-new.html) lands here; the Order # is reserved at creation so the number survives the draft → open transition.
  • "Open order" = Action::requiresConfirmation() → status=open; the row moves to the Open tab and becomes eligible for Receive items and bill refs.
  • Deleting a draft frees nothing — reserved order numbers are not reused (audit continuity).