รายละเอียดลูกหนี้ (CustomerDetailScreen)
จอทะเบียนลูกหนี้แบบเต็ม เมนู 6002 "รายละเอียดลูกหนี้" (menu_ar_detail_2, รหัสเก่า 6.1.2, screenRegistry.tsx:569-574) เป็นแบบ "ฟอร์มยาวหน้าเดียว" รวมข้อมูลหลักของ กำหนดลูกหนี้ และรายละเอียดสมาชิก (CustomerScreen, DealerScreen) (6001) กับข้อมูลการค้า วงเงินสินเชื่อ การวางบิล มิติ กลุ่ม ผู้ติดต่อ แคชเชียร์ สินค้าที่ผูกกับลูกหนี้ รูปภาพ และพิกัด ตาราง ทะเบียนลูกหนี้/ลูกค้า (ar_customer) + รายละเอียดเงื่อนไขลูกหนี้ (ar_customer_detail) ส่วนตารางย่อยดูท้ายหัวข้อ กลไกเมนูดู ทะเบียนหน้าจอและโครงเมนู (Screen registry & smlMenu)
โครงจอ
- ซ้าย: รายการลูกหนี้ (รหัส · ชื่อ 1 · โทรศัพท์ · เขตการขนส่ง · เว็บไซต์ · ระดับราคา · หมายเหตุ · ผู้แก้ไขล่าสุด) ค้นจากรหัส/ชื่อ/ที่อยู่/โทรศัพท์ จำกัด 500 แถว (
:248-256) กลไกรายการดู รายการข้อมูล ค้นหา lookup และ dialog กลาง (SmlDataList / SmlLookupModal / SmlDialog) - ขวา: แถบ "ข้ามไปยังส่วน" 8 ปุ่ม เลื่อนไปยังส่วนที่ต้องการในหน้าเดียวกัน (
:1360-1383) แล้วส่วนต่างๆ เรียงลงมา (ทุกส่วนแสดงพร้อมกัน ไม่ใช่แท็บที่ซ่อนอีกส่วน) - ป้ายหัวจอ 6002 อ่านจากเมนู; ปุ่ม แก้ไข / เพิ่มใหม่ / ลบ / บันทึก / ปิดหน้าจอ เหมือน 6001
- โหมดอ่านอย่างเดียวขึ้นป้าย "โหมดแสดงผล (Read-Only)" ตอนยังไม่กดแก้ไข
ส่วนของฟอร์ม
| # | ส่วน | เนื้อหา (สคีมา arCustomerDetail.ts) |
|---|---|---|
| 1 | ข้อมูลทั่วไปลูกหนี้ | ชุดเดียวกับ กำหนดลูกหนี้ และรายละเอียดสมาชิก (CustomerScreen, DealerScreen) (รหัส ชื่อ ที่อยู่ จังหวัด/อำเภอ/ตำบล ไปรษณีย์ ประเทศ โทร โทรสาร SMS อีเมล์ ประเภทลูกหนี้ เว็บ สถานะลูกหนี้ สถานะ คำนำหน้า ชื่อ นามสกุล วันเกิด วันลงทะเบียน เลขภาษี เลขบัตร สถานประกอบการ เลขที่สาขา หมายเหตุ) |
| 2 | รายละเอียดการค้าและทั่วไป | เขตการขาย (ar_sale_area) · พนักงานขาย (erp_user) · เลขทะเบียนการค้า · ใบทะเบียนภาษี · ประเภทการขาย (0 ขายเงินสด, 1 ขายเงินเชื่อ, 2 ทั้งสอง) · กำหนดประเภทภาษี (ติ๊ก) · ประเภทภาษี (0 แยกนอก, 1 รวมใน, 2 อัตราศูนย์) · อัตราภาษี % (ค่าเริ่มต้น 7) · ผูกรหัสบัญชี (gl_chart_of_account) · ส่วนลดสินค้า · ส่วนลดท้ายบิล · เขตขนส่ง (ar_logistic_area) · รหัสเจ้าหนี้อ้างอิง (ap_supplier) |
| 2 | วงเงินและสินเชื่อ | วงเงินสินเชื่อ · วงเงินสินเชื่อสูงสุด · จำนวนวันเครดิต (ค่าเริ่มต้น 30) · วันที่เริ่มให้สินเชื่อ (วันนี้) · สถานะสินเชื่อ (เปิดวงเงิน 0 / ปิดวงเงิน 1 / หยุดขายชั่วคราว 2) · วันที่ปิดวงเงิน · ไม่อนุญาตให้ปิดวงเงินอัตโนมัติ · จำนวนวันเกินกำหนด · เหตุผลในการระงับ · แจ้งเตือนเมื่อเกินวงเงินสินเชื่อ |
| 3 | เงื่อนไขการวางบิลและรับเช็ค | วันที่วางบิล · วันที่รับเช็ค (ตัวเลือก "ไม่ระบุ" หรือ "ทุกวันที่ 01-31") · ประเภทการส่งมอบ (รับเอง 0 / ส่งให้ 1 / อื่นๆ 2, shipping_type) |
| 4 | มิติและกลุ่มลูกหนี้ | มิติลูกหนี้ 10 ช่อง ข้อความไม่เกิน 100 (การ์ดนี้แสดงเฉพาะรุ่น Pro; หัวการ์ดเขียน "Dimension 1-5" แต่จอมีช่อง 1-10 :2710-2746) · ข้อมูลอ้างอิงเฉพาะธุรกิจ 1-3 (255) · กลุ่มลูกหนี้ กลุ่มหลัก + กลุ่มย่อย 1-4 (ค้นหา ar_group) |
| 5 | ผู้ติดต่อ (N) | ตาราง: ชื่อผู้ติดต่อ (*) · ที่อยู่ · โทรศัพท์ · มือถือ · อีเมล · แผนก · ตำแหน่ง · กลุ่มผู้ติดต่อ; ปุ่ม "เพิ่มผู้ติดต่อ" และถังขยะต่อแถว (เฉพาะตอนแก้ไข) |
| 6 | แคชเชียร์ (N) | รหัสพนักงานขาย/แคชเชียร์ (*) ค้นหาจาก erp_user · ชื่อพนักงาน (แสดงอย่างเดียว); ปุ่ม "เพิ่มแคชเชียร์" |
| 7 | สินค้าตามลูกหนี้ (N) | รหัสสินค้า (*) ค้นหาจาก ic_inventory · ชื่อสินค้า · หมายเหตุ · สถานะ (ปกติ 0 / ระงับ 1); ปุ่ม "เพิ่มสินค้า" |
| 8 | รูปภาพและพิกัด | แผนที่ "ตำแหน่งลูกค้า (ลูกหนี้)" เลือกพิกัดได้ พร้อมลิงก์ "เปิดบน Google Maps"; ช่องรูปภาพและเอกสารแนบ สูงสุด 5 รูป (ตอนอัปโหลด/ลบรูป ปุ่มถังขยะ "ลบรูปภาพนี้" และคลิกรูปเพื่อดูขยาย) |
การ์ดข้อมูลเฉพาะธุรกิจ BusinessExtFieldsCard ใช้ร่วมกับ 6001 ชนิดฟิลด์ตามธุรกิจที่เปิดไว้ใน กำหนดข้อเลือกพิเศษต่างๆ (OptionsForm) |
ปุ่มลัดและพฤติกรรมเฉพาะ
- Ctrl+S บันทึก Esc ยกเลิกการแก้ (ผูกในจอเอง,
:1094-1110; ทำงานเฉพาะแท็บที่ active); รหัสใหม่มีปุ่ม "ใส่รหัสถัดไปอัตโนมัติ" และรันรหัสเมื่อออกจากช่อง ใช้กลไกเดียวกับ 6001 - สถานะลูกหนี้ = บุคคลธรรมดา ช่อง "ชื่อ 1" ถูกล็อก (อ่านอย่างเดียว) และระบบประกอบให้เองจาก คำนำหน้า+ชื่อ แล้วเว้นวรรคตามด้วยนามสกุล (
updateFullNameIfPersonality,:119-135) ถ้าเลือก "นิติบุคคล" ชื่อ 1 แก้เองได้ - ตารางย่อย (ผู้ติดต่อ/แคชเชียร์/สินค้า/รูป) ไม่อยู่ใน
form.valuesจึงนับเป็น "แก้ไข" แยกด้วยsubDirtyไม่งั้นแก้แค่ตารางย่อยแล้วกดบันทึกไม่ได้ (:116-119) - รายการสินเชื่อใช้ช่องตัวเลขทศนิยมไม่ติดลบ และแปลงเข้า SQL ด้วย
decimalSqlไม่ปัดผ่านเลขทศนิยมไบนารี ดู ตัวเลข เงิน ภาษี และปี พ.ศ. ฝั่ง frontend (numeric.ts)
การบันทึก (:634-935)
ตรวจ: สิทธิ์ → รหัสว่าง "กรุณาระบุ 'รหัสลูกหนี้'" → ชื่อ 1 ว่าง "กรุณาระบุ 'ชื่อ 1'" → รหัสซ้ำเมื่อเพิ่มใหม่ (เสนอรหัสถัดไป) จากนั้นชุดคำสั่งเดียว (queryExecBatch):
- INSERT หรือ UPDATE
ar_customer - UPDATE
ar_customer_detailถ้ามีแถวอยู่แล้ว มิฉะนั้น INSERT (นับก่อนด้วยcount(*)) - ซิงก์ตารางย่อยแบบ ลบทั้งหมดแล้วใส่ใหม่:
ar_contactor,ar_customer_cashier_list,ar_item_by_customer - รูปภาพ: เฉพาะช่องที่ผู้ใช้เปลี่ยน (
dirty) ลบแล้วใส่ที่imagesรหัสภาพCONTRACT<รหัส>ตามลำดับช่อง ไม่แตะรูปที่โปรแกรม desktop เก็บในที่อื่น (:916-930) - บันทึกประวัติ
masterLogSqlของเมนูmenu_ar_detailจอนี้ ไม่มี การตรวจเลขผู้เสียภาษี 13 หลัก/ความซ้ำ หรือเลขที่สาขา 5 หลัก ที่ 6001 มี (ค้นไม่พบในโค้ดCustomerDetailScreen.tsx)
การลบ (:960-1060)
ห้ามลบถ้ารหัสถูกใช้ใน ic_trans, ic_trans_detail, ap_ar_trans, ap_ar_trans_detail, cb_trans ("มีการใช้งานรหัสดังกล่าวในเอกสารขาย/ลูกหนี้/การเงินแล้ว ไม่สามารถลบได้") ผ่านแล้วถามยืนยัน ต้องการลบลูกหนี้ [รหัส] จริงหรือไม่ แล้วลบรูปสัญญา, ผู้ติดต่อ, แคชเชียร์, สินค้าตามลูกหนี้, รายละเอียด, สมาชิก ar_dealer, ลูกหนี้ และบันทึกประวัติการลบ ดู ข้อมูลตัวแทนจำหน่าย/จุดขายของลูกหนี้ (ar_dealer), หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans)
รูปภาพ
เลือกไฟล์รูปแล้วอัปโหลดไปที่ POST /api/crm/upload (multipart) ได้ URL กลับมาเก็บใน images ฐานข้อมูลไม่เก็บไฟล์ ถ้าอัปโหลดไม่สำเร็จขึ้น "อัปโหลดรูปภาพไม่สำเร็จ" ดูกลไกแกลเลอรีสินค้าที่ใกล้เคียงใน กำหนดรูปภาพสินค้า/พนักงาน/สินทรัพย์ และบันทึกรูปภาพเอกสาร (ItemPictureScreen, DocumentPictureScreen)
ข้อควรระวัง
- ข้อมูล 6001 กับ 6002 เขียนตาราง
ar_customerเดียวกัน แก้ที่จอไหนก็เห็นทั้งสองจอ แต่กฎตรวจต่างกัน (ดูหัวข้อบันทึก) ผู้ใช้ที่ต้องการให้ตรวจเลขภาษีควรบันทึกที่ 6001 - ตารางย่อยถูกลบ-ใส่ใหม่ทุกครั้งที่บันทึก ไม่มีประวัติรายแถว
- การ์ดมิติลูกหนี้ไม่ปรากฏในรุ่นที่ไม่ใช่ Pro (
editionCaps.hasAdvancedProFeatures)
ที่มาในโค้ด
frontend/account/master/CustomerDetailScreen.tsx:109ตัวจอ;:119-135ประกอบชื่อ;:248-256รายการ;:296-400โหลดข้อมูล/ตารางย่อย;:634-935บันทึก;:725แปลงเลขเป็น SQL;:960-1060ลบ;:1094-1110คีย์ลัด;:1128-1180อัปโหลดรูป;:1360-1383แถบข้ามไปยังส่วน;:2423-2580สินเชื่อ;:3484-3550พิกัด/รูปfrontend/src/config/schemas/arCustomerDetail.ts:21-413frontend/account/tabs/screenRegistry.tsx:569-574- ดูเพิ่ม: กำหนดเจ้าหนี้ และรายละเอียดเจ้าหนี้ (SupplierScreen, SupplierDetailScreen) · รายการจอข้อมูลหลักแบบตารางเดียว (IC_MASTER_CONFIGS) · สารบัญหน้าจอทั้งหมดของ SML Ai Account (ต้นไม้เมนู → หน้าจอ → โน้ต)