# Field and dropdown reference [Task map](tasks.txt) Business-complete input and form validation are different. Use known positive conversion/output quantities even if a button is available. Optional metadata does not substitute for a missing costing fact. ## Ingredients | Visible label | Input/source | Important check | |---|---|---| | ชื่อวัตถุดิบ | Product identity | Distinguish brand/pack when relevant | | รหัส (ถ้ามี) | Member code, optional | Use to confirm identity | | หมวดหมู่ | ตั้งค่า → หมวดหมู่วัตถุดิบ | Packaging classification affects direct menu packaging | | ราคา (ต่อหน่วยพื้นฐาน) | Purchase price per base unit | Zero may mean incomplete data | | หน่วยพื้นฐาน | Presets or custom typed-and-selected name | Purchase basis; may lock when used | | คอมเมนต์ / บันทึก / ผู้จำหน่าย (ถ้ามี) | Optional purchasing notes | Record approved assumptions if relevant | | อัปโหลดรูป | Optional image | Image operations need a separate supported procedure | | ตั้งค่าขั้นสูง (Advanced Options) → หน่วยแปลง | Target quantity per1 base unit; saved manual conversions | Maximum5; do not invent the factor | | เลือกหน่วยย่อย | Available conversion targets | Check duplicates and automatic partners | | ระบบคำนวณ Yield | Before/after usable measurements | Comparable quantity basis | | คำนวณ Yield เข้าไปในต้นทุน | Apply measured Yield to costing | Measurement alone does not enable it | | ต้องการถอดภาษีซื้อ 7% ออกจากราคาซื้อ | Remove included purchase VAT under applicable shop setting | Price must be VAT-inclusive | ## Preparations | Visible label | Meaning/source | Important check | |---|---|---| | ชื่อสูตรเตรียม | Batch product identity | Reuse only the intended recipe | | ปริมาณที่ได้จริง / หลังปรุง | Actual usable output | Positive, measured or explicitly provisional | | หน่วยพื้นฐาน | Output unit | Can differ from purchase units | | รายการในสูตร → เพิ่มรายการ → วัตถุดิบ | Saved ingredients | Enter quantity and an available unit | | รายการในสูตร → เพิ่มรายการ → สูตรย่อย | Eligible saved preparations | Uses child output unit; avoid cycles | | สูตรอาหาร / SOP / บันทึก | Method supplied/approved by member | Review text when inputs change; align it within approved scope or flag the conflict | | ต้นทุนรวม / ต้นทุนต่อ 1… | Calculated results | Allocate from full batch values, not rounded unit display | ## Menus | Visible label | Meaning/source | Important check | |---|---|---| | ข้อมูลเมนู | Name, code, category, SOP and composition | One consistent sale unit | | ชื่อเมนู / รหัส (ถ้ามี) | Menu identity and optional code | Code is not carried into a copy | | หมวดหมู่ | ตั้งค่า → หมวดหมู่เมนู | Different list from ingredient categories | | วัตถุดิบในเมนู → เพิ่มรายการ | วัตถุดิบ or สูตรเตรียม | Not the BOM picker label สูตรย่อย | | เพิ่มแล้ว | Already included | Avoid duplicate addition | | ปริมาณ / unit selector | Usage per sale unit | Ingredient options come from its base/conversions; BOM uses output unit | | ช่องทางการขาย → เพิ่มช่องทาง | Saved sales-channel definitions | Check each selected card | | ราคาขาย (บาท) | Price for this card | Not a universal price across channels | | คอมมิชชัน (GP) / VAT บน GP | Channel's saved rates | Read actual values, not assumed platform fees | | ช่องทางการขายนี้ไม่ได้ใช้บรรจุภัณฑ์ | Default or per-menu override | Final direct packaging, not consumed BOM packaging | | กลับไปใช้ค่าตั้งต้นจากช่องทาง | Restore packaging inheritance | Save menu afterward | | ค่าใช้จ่ายเสริม | ตั้งค่า → ต้นทุนอื่นๆ | Only selected definitions apply | | ส่วนลด | ตั้งค่า → ส่วนลด | Fixed/percentage bases in costs page | | ตัวช่วยตั้งราคา (ตัวเลือกเสริม) | Target Food Cost helper | Apply to draft, then save menu | ## Save boundaries | Context | Persistence action | |---|---| | Record/definition form | บันทึก, wait, reopen | | Quick purchase price | Enter or ✓; blur is not save; Esc cancels | | Duplication | ยืนยันทำซ้ำ creates immediately | | Shop currency/tax switches | Change can save immediately; confirm intended scope first | | Price helper | Applying changes the draft; parent บันทึก still needed | Scroll within the active panel to reach footer controls. Match the record and panel before choosing a repeated button label.