#screens#master
รายละเอียดสินค้า, แก้ด่วนแบบกลุ่ม, กำหนดระดับสินค้า
สามจอเล็กที่อยู่ในไฟล์เดียวกัน (IcExtraScreens.tsx) แก้ข้อมูลสินค้าเฉพาะด้าน ทั้งสามเขียนฐานข้อมูลด้วยชุดคำสั่ง SQL ผ่าน queryExecBatch โดยตรงจากหน้าจอ
| รหัส | เมนู | คอมโพเนนต์ | โหมดผูก |
|---|---|---|---|
| 2003 | รายละเอียดสินค้า (menu_ic_description) |
ItemDescriptionScreen |
screenRegistry.tsx:641- |
| 2004 | แก้ไขรายละเอียด(เร็ว) (menu_ic_description_fast) |
ItemDescriptionFastScreen |
:653- |
| 2023 | กำหนดลำดับการค้นหา (menu_ic_item_level) |
ItemLevelScreen |
:690-701 |
| 2024 | กำหนดลำดับการค้นหา (เร็ว) (menu_ic_multi_item_level) |
ItemLevelScreen multi |
:703-715 |
ชื่อบนจอของ 2023/2024 ดึงจากชื่อเมนูจริง (getMenuTextByName) ค่าเริ่มต้นในโค้ดคือ "กำหนดระดับสินค้า" กลไกเมนูดู ทะเบียนหน้าจอและโครงเมนู (Screen registry & smlMenu) |
2003 รายละเอียดสินค้า (ItemDescriptionScreen)
เขียนบรรยายสินค้าเป็นข้อความจัดรูปแบบ (HTML) เก็บต่อสินค้า
- ซ้าย: รายการสินค้า (รหัส, ชื่อ, หน่วยนับ) ค้นหา/เลือกได้ (
useItemLoader,:190-292) เปิดจอแล้วเลือกแถวแรกให้เอง ดูกลไกที่ รายการข้อมูล ค้นหา lookup และ dialog กลาง (SmlDataList / SmlLookupModal / SmlDialog) - ขวา: การ์ด "ข้อมูลอ้างอิงสินค้า" อ่านอย่างเดียว (รหัส, หน่วยนับ, ชื่อ 1-2, ประเภท, ชนิด, รูปแบบสินค้า, วิธีคำนวณต้นทุน, ประเภทภาษี, กลุ่มสินค้า
:117-187) แล้วตัวแก้ข้อความ: ตัวเลือกรูปแบบบล็อก/ฟอนต์/ขนาด, ตัวหนา, ตัวเอียง, ขีดเส้นใต้, รายการสัญลักษณ์, รายการลำดับเลข, ปุ่ม Preview สลับดูตัวอย่าง (:462) ช่องว่างแสดง "กรอกรายละเอียดสินค้าเพิ่มเติม (รองรับข้อความและ HTML)..." ไม่มีรายละเอียดแสดง "ไม่มีรายละเอียด" - ปุ่ม: โหมดดู = แก้ไข (ต้องมีสิทธิ์), ปิดหน้าจอ; โหมดแก้ = บันทึก, ปิดหน้าจอ (คือยกเลิกการแก้)
- บันทึก (
:345-366) ลบแถวเดิมของสินค้านั้นในic_descriptionแล้วเพิ่มใหม่ และ เขียน HTML เดียวกันทับคอลัมน์ic_inventory.remarkด้วย ในธุรกรรมเดียวกัน; ตอนโหลดถ้ายังไม่มีแถวในic_descriptionจะใช้ค่าremarkเดิมมาแสดงแทน (:318-340) สำเร็จขึ้นบันทึกรายละเอียดสินค้า <รหัส> เรียบร้อยแล้ว - ข้อควรระวัง: หมายเหตุในแท็บ "9.หมายเหตุ" ของ ข้อมูลสินค้าเพิ่มเติม 15 แท็บ (ItemDetail2Screen) ใช้คอลัมน์
remarkตัวเดียวกัน (ไม่เกิน 255 ตัวอักษร) การบันทึกรายละเอียด HTML จากจอนี้จะทับหมายเหตุนั้น
2004 แก้ไขรายละเอียด(เร็ว) (ItemDescriptionFastScreen)
แก้ฟิลด์ที่ติ๊กเลือกกับหลายสินค้าพร้อมกัน (รวบรวมเป็น UPDATE ครั้งเดียว)
- กล่อง "รายชื่อสินค้าที่ต้องการแก้ไขพร้อมกัน": ตารางสินค้า ลากสลับลำดับได้ ลบทีละแถวด้วยไอคอนถังขยะ ปุ่ม เพิ่มสินค้า (เปิดหน้าต่าง "เลือกสินค้าเข้าตารางแก้ไขด่วน") และ ล้างตารางสินค้า
- เปิดจอครั้งแรกตารางไม่ว่าง: ระบบใส่ 10 สินค้าแรกเรียงตามรหัส ให้เอง (
SELECT ... ORDER BY code ASC LIMIT 10,:1054-1056) ต้องล้างหรือลบเองถ้าไม่ต้องการแก้สินค้าเหล่านั้น
- เปิดจอครั้งแรกตารางไม่ว่าง: ระบบใส่ 10 สินค้าแรกเรียงตามรหัส ให้เอง (
- 7 ส่วน (ปุ่ม "ข้ามไปยังส่วน:" เลื่อนหน้า)
FAST_EDIT_TABS,:803-1000: 1.ทั่วไป (กลุ่มหลัก, ยี่ห้อ, รูปแบบ, ดีไซน์, หมวด, ระดับ, เกรด, รุ่น, สี, ขนาด) 2.หน่วยนับ/สต็อก (รูปแบบต้นทุน, การควบคุมยอดคงเหลือ, การรับ-จ่าย Serial, การคำนวณจุดสั่งซื้อ, ปริมาณสั่งซื้อที่เหมาะสม) 3.บัญชี (ผังบัญชีซื้อ, ขายสด, ขายเชื่อ, ต้นทุนขาย) 4.ขาย (ประเภทภาษี, ประเภทการขาย, ห้ามแก้ไขราคาขาย, ห้ามแก้ไขส่วนลด, กำหนดราคากลาง, สถานะป้ายราคา) 5.ซื้อ (เจ้าหนี้หลัก, สินค้าเครื่องดื่ม) 6.การผลิต (ระยะเวลาการผลิต(วัน), ใช้วันหมดอายุ, ควบคุมยอดค้างรับ/ค้างส่ง) 7.POS (คีย์ลัด POS, อนุญาตป้อนราคาขณะขาย, พิมพ์ใบสั่งอาหารแยกต่อหน่วย)- ทุกฟิลด์มี checkbox หน้าช่อง: ฟิลด์ที่ไม่ติ๊กจะไม่ถูกแก้
- บันทึก (
handleSave,:1069-1118): ต้องมีสิทธิ์แก้; ไม่มีสินค้าในตารางขึ้น "กรุณาเลือกสินค้าอย่างน้อย 1 รายการ"; ไม่ติ๊กฟิลด์ใดขึ้น "กรุณาติ๊กเลือกฟิลด์ที่ต้องการแก้ไขอย่างน้อย 1 ช่อง" ตัวเลข/ตัวเลือกใช้decimalSql(..., "0")ข้อความใช้escapeSql; ฟิลด์ของic_inventory->UPDATE ... WHERE code IN (...); ฟิลด์ของic_inventory_detail-> สร้างแถวว่างให้สินค้าที่ยังไม่มีก่อน แล้วค่อยUPDATE ... WHERE ic_code IN (...)สำเร็จขึ้นบันทึกการแก้ไขแบบกลุ่ม (N สินค้า, M ฟิลด์) เรียบร้อยแล้ว
- ฟิลด์ที่ติ๊กแต่ปล่อยค่าว่างจะเขียนค่าว่างทับ (ข้อความ) หรือ 0 (ตัวเลข/ตัวเลือก) ทุกสินค้าในตาราง
2023/2024 กำหนดระดับสินค้า (ItemLevelScreen, เทียบ SMLERPIC._icItemLevel)
กำหนดระดับ 1-4, ราคาแนะนำ, คำแนะนำ และเงื่อนไข 1-4 ต่อบาร์โค้ด
- 2023 (โหมดปกติ): รายการสินค้าซ้าย เลือกสินค้าแล้วตารางด้านขวาแสดงทุกบาร์โค้ดของสินค้านั้น
- 2024 (
multi): ไม่มีรายการซ้าย มีช่อง จากรหัสสินค้า / ถึงรหัสสินค้า กดปุ่ม ประมวลผล เพื่อโหลดตามช่วงรหัส - ตาราง (บาร์โค้ด, รหัสสินค้า, หน่วย, ระดับ 1-4, ราคาแนะนำ, คำแนะนำ, เงื่อนไข 1-4) ดึงจาก
ic_inventory_barcodeเชื่อมic_inventory_levelและic_inventory_barcode_conditionเฉพาะบาร์โค้ดที่ไม่ว่าง และ จำกัด 150 แถว (LIMIT 150,:1389-1417) ราคาแนะนำถ้ายังไม่มีระดับจะเติมราคาจากบาร์โค้ด - บันทึก (
:1445-1475): ทุกแถวที่แสดงถูกลบแล้วเพิ่มใหม่ทั้งหมดในic_inventory_levelและic_inventory_barcode_condition(ไม่เฉพาะแถวที่แก้) สำเร็จขึ้นบันทึกระดับสินค้า N รายการเรียบร้อยแล้ว - ข้อควรระวัง: ช่วงรหัสที่มีบาร์โค้ดเกิน 150 แถวจะเห็นแค่ 150 แถวแรกเรียงตามรหัส/บาร์โค้ด ต้องแบ่งช่วงรหัสทำทีละช่วง
ตารางที่เกี่ยวข้อง
ทะเบียนสินค้า (ic_inventory), รายละเอียดสินค้าเพิ่มเติม (ic_inventory_detail), บาร์โค้ดและราคาขายหน้าร้าน (ic_inventory_barcode) ส่วน ic_description, ic_inventory_level, ic_inventory_barcode_condition ยังไม่มีบันทึกตารางในฐานความรู้
ที่มาในโค้ด
frontend/account/master/IcExtraScreens.tsx:79-292โครงจอ/การ์ดอ้างอิง/ตัวโหลดสินค้า;:294-566รายละเอียดสินค้า;:794-1350แก้ด่วน;:1351-1650ระดับสินค้าfrontend/account/tabs/screenRegistry.tsx:641-715ผูกเมนู- ดูเพิ่ม: ข้อมูลสินค้า (ItemScreen) · ข้อมูลสินค้าเพิ่มเติม 15 แท็บ (ItemDetail2Screen) · สารบัญหน้าจอทั้งหมดของ SML Ai Account (ต้นไม้เมนู → หน้าจอ → โน้ต)