ข้อมูลสินค้าเพิ่มเติม (ItemDetail2Screen)
จอแก้ข้อมูลสินค้า "ส่วนที่เหลือ" ที่ไม่อยู่ในจอ ข้อมูลสินค้า (ItemScreen): ยี่ห้อ/กลุ่ม/มิติ 45 ช่อง, ชื่อการตลาด/ชื่อ POS/ชื่อพิมพ์บิล, คลังประจำ, สถานะควบคุม, สินค้าทดแทน/พ่วง/แนะนำ ฯลฯ รวม 15 แท็บ แก้ได้อย่างเดียว (เพิ่มสินค้าใหม่หรือลบไม่ได้ ต้องไปที่ข้อมูลสินค้า) โหลดและบันทึกทั้งหมดผ่านชุดเดียวที่ฝั่ง Go (/api/process/itemdetail/get|save) หน้าจอทำหน้าที่แสดงผล รับค่า และเรียก API (หัวไฟล์ :3-7) ตรรกะฝั่งเซิร์ฟเวอร์ดู ข้อมูลสินค้าและข้อมูลสินค้าเพิ่มเติม (Item master & item detail)
วิธีเปิด
| รหัส | เมนู | หมายเหตุ |
|---|---|---|
| 2002 | ข้อมูลสินค้าเพิ่มเติม (menu_ic_item_detail_2) |
รายการซ้ายเรียงตามรหัสสินค้า |
| (ไม่อยู่ในเมนู) | menu_ic_item_detail_2_barcode |
จอเดียวกันแต่รายการซ้ายเรียงตามบาร์โค้ด (byBarcode) ลงทะเบียนใน screenRegistry.tsx:623-639 |
| กลไกเมนูดู ทะเบียนหน้าจอและโครงเมนู (Screen registry & smlMenu) |
โครงจอ
- ซ้าย: รายการสินค้า (อ่านอย่างเดียว) ดึง 500 แถวแรกจากการค้นหา (
queryLimit(..., 500),:358) คอลัมน์ตามรหัส: รหัส, ชื่อ, หน่วย, ยอดคงเหลือ, ต้นทุนเฉลี่ย; แบบบาร์โค้ด: บาร์โค้ด, รหัส, ชื่อ, หน่วย, ราคา กดสองครั้งที่แถว = เปิดแล้วเข้าโหมดแก้ไขทันที (:706) เปิดจอแล้วโหลดแถวแรกให้อัตโนมัติ ดูกลไก DataList ที่ รายการข้อมูล ค้นหา lookup และ dialog กลาง (SmlDataList / SmlLookupModal / SmlDialog) - ขวา: แถบสถานะ "บันทึกล่าสุด <เวลา>", "แก้ไขแล้ว N ช่อง", ป้าย "โหมดดูข้อมูล"/"โหมดแก้ไข" ใต้ลงมาเป็นช่อง ค้นหาบาร์โค้ด (พิมพ์แล้ว Enter หรือกดปุ่ม ค้นหา) และปุ่ม รูปภาพสินค้า (N) (ปิดไว้ถ้าสินค้าไม่มีรูป) ตัวจัดการรูปเต็มดู กำหนดรูปภาพสินค้า/พนักงาน/สินทรัพย์ และบันทึกรูปภาพเอกสาร (ItemPictureScreen, DocumentPictureScreen)
- ปุ่ม: โหมดดู = แก้ไข (ต้องมีสิทธิ์แก้) และ ปิดหน้าจอ; โหมดแก้ = บันทึก (กดได้เมื่อมีการเปลี่ยนแปลงเท่านั้น
disabled={!dirty}) และ ปิดหน้าจอ (จริงๆ คือ ยกเลิกการแก้ไข คืนค่าเดิมcancel,:428) - คีย์ลัด: Ctrl+S บันทึก, Esc ยกเลิกการแก้ไข (ทำงานเฉพาะขณะอยู่โหมดแก้ไข และเมื่อแท็บนี้แสดงอยู่
ScreenFrame.tsx:37-58), Ctrl+B ไปช่องค้นหาบาร์โค้ด (:839-852) คอมเมนต์ในโค้ดเรียก F12 แต่ที่ผูกจริงคือ Ctrl+S
15 แท็บ (TABS, :64-69) และฟิลด์
| แท็บ | เนื้อหา |
|---|---|
| 1.รายละเอียด | ยี่ห้อ, รูปแบบ, ลวดลาย/ดีไซน์, เกรด, รุ่น, หมวด, กลุ่มหลัก, ชั้นสินค้า, กลุ่มย่อย, กลุ่มย่อย 2 (ช่องค้นหาแบบ lookup; กลุ่มย่อยกรองตามกลุ่มหลักที่เลือก), รายละเอียด (ไม่เกิน 5000 ตัวอักษร), อัตราค่าคอมมิชชั่น, รูปแบบเลข Serial (:514-533) |
| 2.กลุ่ม,มิติ | 45 ช่อง dimension_1..45 ชื่อช่องดึงจากชื่อมิติที่ตั้งไว้ (dimNames, ไม่มีชื่อแสดง "มิติที่ N") ช่อง 1-20 เป็น lookup ตาราง ic_dimension ตามเลขมิติ ช่อง 21-45 พิมพ์ข้อความ แบ่งกล่อง "กลุ่ม (1-10, 21-30, 41-45)" และ "มิติ (11-20, 31-40)" |
| 3-6 | ตารางชื่อการตลาด / ชื่อย่อ-ชื่อเทียบเคียง / ชื่อสำหรับ POS / ชื่อสำหรับพิมพ์บิล (ใช้โครง NAME_GRID เดียวกัน) |
| 7.คลัง,พื้นที่เก็บประจำ | กล่อง คลังรับซื้อ / คลังขาย / คลังเบิก: คลัง + พื้นที่เก็บ + หน่วยนับ (พื้นที่เก็บกรองตามคลังที่เลือก, หน่วยนับกรองจาก ic_unit_use ของสินค้า :507-509) |
| 8.สถานะ | กลุ่มผู้ใช้ฝ่ายจัดซื้อ/ขาย/บริหาร/คลัง (erp_user_group), จุดสั่งซื้อ, ส่วนลด, จำนวนต่ำสุด, จำนวนสูงสุด และ checkbox 10 ตัว: สะสมแต้ม, ควบคุมยอดคงเหลือ, ควบคุมสินค้าค้างรับ/ค้างส่ง, ล็อคต้นทุน, เลิกผลิต/หมดอายุการขาย, ล็อคราคา, ล็อคส่วนลด, ระงับการซื้อ, ระงับการขาย, สินค้าของแถม (FLAGS, :58-60) |
| 9.หมายเหตุ | ข้อความ ไม่เกิน 255 ตัวอักษร |
| A.สินค้าทดแทน | รหัสสินค้า (lookup ic_inventory), ชื่อ, หมายเหตุ, ใช้งาน |
| B.รูปแบบสินค้า | รหัสรูปแบบ (ic_pattern), ชื่อ 1-2, ใช้งาน |
| C.สี | รหัสสี (ic_color), ชื่อสี, ใช้งาน |
| D.ขนาดสินค้า | รหัสขนาด (ic_size), ชื่อ, กว้างxยาวxสูง, น้ำหนัก, ใช้งาน |
| E.สินค้าพ่วง | บาร์โค้ด (ค้นจาก ic_inventory_barcode), รหัสสินค้า, ชื่อ, หน่วยนับ, จำนวน (ค่าเริ่มต้น 1) |
| F.สินค้าแนะนำ | รหัสสินค้า (ic_inventory), ชื่อ, ใช้งาน |
| G.รายชื่อผู้ผลิต | รหัสผู้ผลิต (lookup ap_supplier), ชื่อ, ใช้งาน |
ตารางทุกแท็บ: ปุ่มเพิ่มแถว, ลบแถว (ไอคอนถังขยะ :287), ย้ายลำดับ, พิมพ์รหัสแล้วออกจากช่องระบบ lookup ทันที (resolveRow, :120-140) ไม่พบรหัสขึ้น ไม่พบ : <รหัส> แล้วล้างแถว (commitCode, :465-470) |
การโหลดและบันทึก
- เปลี่ยนสินค้าระหว่างแก้ไขค้าง: ขึ้นเตือน "มีข้อมูลที่ยังไม่บันทึก กรุณาบันทึกหรือยกเลิกก่อนเปลี่ยนรายการ" (
:411) - ปุ่ม แก้ไข: ต้องมีสิทธิ์แก้; ถ้าเซิร์ฟเวอร์ตอบ
editable = false(ตามic_inventory.update_detail = 1, หัวไฟล์:7) ขึ้น "สินค้านี้ยังไม่พร้อมแก้ไข จึงแก้ข้อมูลเพิ่มเติมไม่ได้" (:423) - บันทึก (
save,:430-455): ไม่มีสิทธิ์ขึ้นคุณไม่มีสิทธิ์ "แก้ไขข้อมูล" ในหน้าจอนี้ ...; ส่งPOST /api/process/itemdetail/saveก้อนเดียวพร้อมitem,detailและตาราง 11 ชุด (market, short, pos, billing, colors, sizes, patterns, replace, bundle, suggest, manufacturers) สำเร็จขึ้น "บันทึกข้อมูลสินค้าเพิ่มเติมแล้ว" และรีโหลดค่าจากเซิร์ฟเวอร์ - รูปภาพโหลดตามต้องการผ่าน
POST /api/process/itempicture/get(kind: "item")
ตารางที่เกี่ยวข้อง
ทะเบียนสินค้า (ic_inventory), รายละเอียดสินค้าเพิ่มเติม (ic_inventory_detail), บาร์โค้ดและราคาขายหน้าร้าน (ic_inventory_barcode), หน่วยนับที่ใช้ของสินค้า (ic_unit_use), พื้นที่เก็บสินค้า (ic_shelf), คลังสินค้า (ic_warehouse), ทะเบียนเจ้าหนี้/ผู้ขาย (ap_supplier) ส่วนตารางจอ lookup (ic_brand, ic_pattern, ic_design, ic_grade, ic_model, ic_category, ic_group, ic_class, ic_group_sub, ic_group_sub2, ic_color, ic_size, ic_dimension, erp_user_group) เป็นตารางรหัสที่อ่านผ่านหน้าต่างค้นหา
ข้อควรระวัง
- ฟอร์มเดียวแต่เก็บ 2 ก้อน (
itemกับdetail) ตัวนับ "แก้ไขแล้ว N ช่อง" นับทีละฟิลด์ของสองก้อนนี้ และนับ 1 ต่อหนึ่งตารางย่อย (grid) ที่มีการเปลี่ยน (:339-343) - ช่องมิติ 21-45 ไม่มี lookup เป็นข้อความอิสระ
- การเปลี่ยนรายการที่ยังไม่บันทึกถูกบล็อก ไม่ได้ถามแบบ "ทิ้ง/ทำต่อ" เหมือนจอ ข้อมูลสินค้า (ItemScreen)
ที่มาในโค้ด
frontend/account/master/ItemDetail2Screen.tsx:51-70ค่าคงที่แท็บ/ฟิลด์;:75-118นิยามตาราง;:120-140resolveRow;:308-คอมโพเนนต์;:410-455โหลด/แก้ไข/บันทึก;:514-600เนื้อแท็บ;:700-770รายการซ้ายและแถบปุ่มfrontend/account/master/ScreenFrame.tsx:37-58คีย์ลัดfrontend/account/tabs/screenRegistry.tsx:605-639ผูกเมนู- ดูเพิ่ม: รายละเอียดสินค้า แก้ด่วนแบบกลุ่ม และกำหนดระดับสินค้า (ItemDescriptionScreen, ItemDescriptionFastScreen, ItemLevelScreen) · กำหนดรูปภาพสินค้า/พนักงาน/สินทรัพย์ และบันทึกรูปภาพเอกสาร (ItemPictureScreen, DocumentPictureScreen) · รายการจอข้อมูลหลักแบบตารางเดียว (IC_MASTER_CONFIGS) · สารบัญหน้าจอทั้งหมดของ SML Ai Account (ต้นไม้เมนู → หน้าจอ → โน้ต)