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

← R&D requests / New

New R&D request

Not saved

Request info

filled by Sales at creation

Series RND-{yyyy}-{seq} — next sequence suggested, editable.

FK customers.id — Sales creates the request from the customer conversation.

defaults to today

The ONLY prioritisation signal — no priority field (founder decision). List sorts by deadline ascending.

Filament tenant — determines which factory works the request.

Assignment

R&D lead assigns

Design is a parallel side-track — never blocks the R&D status.

Client context

Visible to Sales + Boss + R&D lead ONLY

Section-level visibility policy — hidden from FM / QC / QA / operators (never rendered, not just disabled).

Cancel Create request

On create: status = Requested (5-status model: Requested → In development → Sample sent → Confirmed / Cancelled), auto-logs the first progress entry “— → Requested. Created by Sales (customer tagged).” (see RND-2026-00011 log).

Project Gaia — static mockup in Filament v3 idiom. No backend. Create navigates to the RND-2026-00011 worked example; RND-2026-00015 would be the next number in the series (snapshot 2026-04-12).

New R&D request — field manifest

FieldFilament componentTypeSourceFK target
Request #TextInput (series RND-{yyyy}-{seq,5})stringstored: rnd_requests.code — next sequence suggested at create, user-editable
CustomerSelect::searchable() + createOptionFormFKstored: rnd_requests.customer_id — Sales creates the request from the customer conversationcustomers.id
Contact person / numberTextInput ×2stringstored: contact_name, contact_phone — free text, not the customer master contact
Product name / typeTextInput + Selectstring + enumstored: product_name, product_type enum (Sachet / Capsule / Gummy / Drink / Tea)
Target ingredientsTextInputtextstored: target_ingredients — free text at request stage, structured later in the formulation
Reference productTextInputtextstored: reference_product — what the customer pointed at ("same as current blend but no sugar")
Target price / quantityTextInput ×2textstored: target_price, target_qty — kept as text (ranges like "RM 12–15 per box" are normal at intake)
Raw materialsSelectenumstored: raw_material_status — Existing (all in item master) / Requesting (waiting supplier samples)
Requested dateDatePicker::default(today)datestored: requested_date
DeadlineDatePicker::required()datestored: deadline — the ONLY priority signal (founder decision: no priority field); list default-sorts by deadline ascending
FactorySelect (Filament tenant)FKstored: factory_id — determines which factory works the requestfactories.id
AssignmentSelect → users ×2FK ×2stored: pic_user_id (R&D lead assigns), designer_user_id (nullable — parallel design side-track)users.id
Client contextTextarea in Section::visible(fn)textstored: rnd_requests.client_context — section-level visibility policy: Sales + Boss + R&D lead only; hidden from FM / QC / QA / operators (never rendered, not just disabled)

Engine notes

  • CreateRecord page of RndRequestResource — 'Create & add another' is CreateAction::createAnother().
  • Create auto-logs the first Status entry '— → Requested' in rnd_progress_log (see the RND-2026-00011 log) — status changes are always auto-logged, so 'Last update' never goes stale.
  • Draft ingredients / sample / design / costing sections do NOT appear at create — they live on the detail page and fill as the request progresses (design is a parallel side-track, costing a section within In development).
  • Trials are not stock-tracked, so no lot/batch fields here (founder decision).