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

Stock adjustments

SA # Adjusted date Location Reason Value Adjustment delivery
Showing 1–18 of 438 (sample rows from Katana snapshot)

Project Gaia — static mockup in Filament v3 table idiom. No backend. Sample data: Katana tenant snapshot 2026-04-12; entry-form capture 2026-07-07.

Stock adjustments — field manifest

FieldFilament componentTypeSourceFK target
(row selector)Checkbox column (BulkAction plumbing)uiUI-only; no bulk-action bar visible in capture (nothing selected)
SA #TextColumn::searchable(isIndividual)->url()string doc numberstored: 'SA-' + sequence assigned at creation (out of order under date sort)stock_adjustments.id
Adjusted dateTextColumn::dateTime()->sortable() (default DESC); DateTimePicker on the formDATETIMEstored: user-editable effective datetime, default now — entry capture shows "2026-07-07 05:18 PM"; time-of-day ordering matters for the inventory ledger (list renders the date part)
LocationTextColumn::searchable(isIndividual) + SelectFilterstring via FKstored: one location per adjustment ('11, Balakong Jaya', 'VO5-05-08 Sunway Velocity', '29,Balakong Jaya')locations.id
ReasonTextColumn::searchable(isIndividual)->limit()string, nullablestored free text; blank allowed (SA-515); auto-filled with stocktake number ('STK-63') when generated from a stocktake(soft link stocktakes)
ValueTextColumn::numeric()->color(fn: red when negative)money MYR, signedderived: Σ over adjustment lines of (qty change × cost per unit) — the entry form's signed "Total" feeds this column; 0 MYR rows exist
Adjustment deliveryTextColumn::badge() (gray)enumstored: only 'Not applied' observed across the whole capture

Entry form fields (capture: New stock adjustment, 2026-07-07)

FieldFilament componentTypeSourceFK target
Stock adjustment #TextInput (editable)string doc numberdefault: next 'SA-' sequence suggested (capture: SA-583) — user-editable before savestock_adjustments
ReasonTextInputstring, nullablefree text ("Type reason for adjustment"); auto-filled with the stocktake # when generated from a stocktake
LocationSelect::relationship() (required)FKone location per document — every line adjusts stock at this location; defaults to the active factory's main locationlocations.id
Item (line)Select::relationship()->searchable(), Repeater rowFKadjustment line item, variant-level; column filter box in Katana's grid headeritem_variants.id
Adjustment +/- (line)TextInput::numeric() (signed)decimalqty change in the item's stock UoM — negative writes stock down/out, positive writes up/in
In stock (line)Placeholder (read-only)derivedcurrent stock of the item at the chosen location, refreshed when item or location changesstock_movements
Cost per unit (line)TextInput::numeric() ("Type cost per unit")money, STOREDuser-editable valuation override on the line (NOT derived); defaults to the item's moving-average cost at the location
Adjustment value (line)Placeholder (derived, red when negative)money MYR, signedderived: qty × cost per unit; document Total = Σ lines and feeds the list's Value column
Batch (line)Select::relationship() — Gaia additionFK, required when batch-trackedper-line batch picker for batch-tracked items — deliberate GMP superset of Katana's batchless adjustment linesbatches.id
Additional infoTextareatext, nullablestored: stock_adjustments.additional_info — Katana shows a rich-text toolbar (B/I/U/link/lists); a plain Textarea is fine for Gaia

Engine notes

  • Value is a signed money total per adjustment: negative = stock written down/out, positive = stock written up/in; 0 MYR rows exist ("Unit Changes", "Transfer to Navi", blank-reason SA-515).
  • Location-to-location transfers are emulated as paired adjustments with reason "Stock Transfer to Inventory": SA-520 −10500.00 MYR at VO5-05-08 Sunway Velocity pairs with SA-521 +10490.38 MYR at 11, Balakong Jaya (same date). The legs do not net to zero — each leg is valued at that location's own moving-average cost.
  • Adjustments generated from stocktakes carry the stocktake document number as Reason ("STK-63", "STK-61", "STK-60"), linking to the Stocktakes sub-tab.
  • SA numbers are assigned sequentially at creation, independent of Adjusted date (SA-527 dated 2026-03-17 sits below SA-516 of the same date; SA-509 dated 2026-02-11 sits between SA-496 and SA-503).
  • Default sort is Adjusted date descending; "438 items" total (infinite scroll in Katana → paginated table here).
  • No totals/footer row on this screen.
  • Entry form captured 2026-07-07 (SA-583 suggested as next number) — later than the 2026-04-12 list snapshot; the list keeps the April rows, the card shows the July capture state.
  • Gaia adds a per-line Batch picker for batch-tracked items on adjustment lines — a deliberate GMP superset of Katana's batchless lines (write-offs must hit a specific lot for traceability).
  • Units rule: line qty is entered in the item's stock UoM and stored in the base unit (mg / ml / pcs) — the unit rides on the item (admin-locked units table, never typed); conversion factors are hard-coded, display auto-scales.

Stock adjustment

Not saved

Editable — next sequence suggested.

DateTimePicker — stored to the minute, defaults to now.

One location per document.

# Item Adjustment +/- stock UoM In stock Cost per unit Adjustment value Batch Gaia

Total: MYR

Katana renders a rich-text toolbar here; Gaia keeps a plain Textarea.