ดึงเอกสารอ้างอิง (ปุ่มดึงเอกสาร) ทำไมเอกสารต้นทางไม่ขึ้น
ตอบสั้น: รายการที่ขึ้นในหน้าต่างดึงเอกสารถูกกรองหลายชั้น เอกสารต้องเป็นชนิดที่หน้าจอนี้ดึงได้, ยังไม่ยกเลิก (last_status = 0), ยังไม่ปิดรายการ (doc_success = 0 สำหรับหลายหน้าจอ), ลูกค้า/เจ้าหนี้และประเภทภาษีตรงกับหัวเอกสาร, ผ่านการอนุมัติตามออปชัน และอยู่สาขาเดียวกัน (ถ้าเปิดออปชันสาขา)
รายละเอียด
ปุ่ม "ดึงเอกสาร" มีเฉพาะหน้าจอที่ตั้ง hasRefDoc (TransTopForm.tsx:409-417, UniversalTransScreen.tsx:3227) คำสั่งค้นอยู่ที่ loadRefDocs ค้น ic_trans ตาม refTransFlags ของเมนู, last_status = 0 และเงื่อนไขจากหลังบ้าน (RefDocLookupFilter) แสดงสูงสุด 100 ใบ เรียงวันที่ใหม่สุดก่อน (UniversalTransScreen.tsx:2234-2268)
เหตุผลที่เอกสารไม่ขึ้น (refDocWhere, lookup_trans.go:140-175):
- ยังไม่เลือกลูกค้า/เจ้าหนี้: กลุ่ม 12, 14, 16, 34, 36, 44, 46, 48, 144, 310, 311, 315-317 ฯลฯ กรอง
cust_codeตามหัวเอกสาร ถ้ายังไม่เลือกคู่ค้าจะไม่ขึ้นเลย (ตามที่ C# ทำ) (lookup_trans.go:51-55) - ประเภทภาษีไม่ตรง: บางหน้าจอกรอง
vat_type= ของหัวเอกสาร (lookup_trans.go:58-60) - ปิดรายการแล้ว: 6, 12, 44, 56, 72, 144, 310, 315 ต้อง
doc_success = 0คือใบต้นทางยังเหลือให้ดึง - ยังไม่อนุมัติ: ดึงเข้า 44/144 จะเห็นใบสั่งจอง (34) หรือใบสั่งขาย (36) เฉพาะที่
approve_status = 1เมื่อเปิดdoc_ref_reservation_approve/doc_ref_salesorder_approve; ดึงเข้า 12/310 เห็นใบสั่งซื้อ (6) ที่อนุมัติแล้วเมื่อเปิดref_po_approve; ดึงเข้า 6 ไม่เห็นใบขอซื้อ (4) ที่not_approve_1ไม่เป็น 0 - คนละสาขา: เมื่อบริษัทใช้สาขา + เปิด
show_branch_doc_only+ ผู้ใช้เปลี่ยนสาขาไม่ได้ จะเห็นเฉพาะใบของสาขาตัวเอง (docBranch,lookup_trans.go:176) - ชนิดเอกสารไม่อยู่ในโซ่: ดึงได้เฉพาะตาม
refImportSourcesเช่น 6<-{4,2}, 12<-6, 310<-6, 315<-310, 16<-12, 44<-{30,34,36}, 48<-44 (trans_ref_import_lines.go:52-55) ชนิดอื่นขึ้น "เอกสารประเภท X อ้างอิงเอกสารประเภท Y ไม่ได้" (:301) - ยกเลิกแล้ว: ใบ
last_status = 1ไม่ขึ้นเสมอ
หลังเลือกเอกสาร ระบบเลือกได้ครั้งละ 1-50 ใบ (refImportMaxDocs, :46 และ :288) และเติมรายการด้วยยอดคงเหลือ ไม่ใช่ยอดเต็ม เช่น ใบสั่งซื้อ -> ซื้อ หักที่รับ/ซื้อไปแล้ว (refImportSpecs {12,6}, trans_ref_import.go:34) รายการที่คงเหลือ 0 จะไม่ถูกดึง
ข้อควรระวัง
- ออปชัน
check_qty_over_doc_refตรวจจำนวนเกินใบอ้างอิงตอนบันทึก (trans_qty_over_ref.go:13);receive_more_poยอมให้รับ/ซื้อเกินใบสั่งซื้อ และallow_sale_over_reserveยอมให้ขายเกินใบสั่งจอง (trans_validate.go:79-82) - ระบบคำนวณ
used_status/doc_successของใบต้นทางใหม่จากใบที่อ้างถึงมันเสมอ (doc_flow.go:15-17) ต้นทางที่ถูกใช้แล้วจึงแก้/ลบไม่ได้จนกว่าจะลบหรือยกเลิกใบปลายทาง ดู ทำไมลบหรือแก้เอกสารไม่ได้ ขึ้น ห้ามแก้ไข หรือลบข้อมูล - มัดจำ/เงินล่วงหน้า (10, 11, 40, 110) ไม่ดึงรายการสินค้า ใช้
doc_refของหัวเอกสารเท่านั้น (คอมเมนต์trans_ref_import_lines.go:48-51)
ดูเพิ่ม
- เอกสารอ้างอิง และการดึงเอกสาร (doc_ref / ref_doc_no / doc_ref_type)
- บทเรียนเอกสารอ้างอิงและ Doc Flow (Document Reference & Flow)
- จัดซื้อถึงจ่ายเงิน (Procure-to-Pay)
- ขายถึงรับเงิน (Order-to-Cash)
- ทำไมลบหรือแก้เอกสารไม่ได้ ขึ้น ห้ามแก้ไข หรือลบข้อมูล
- ข้อเลือกพิเศษ / ค่าตั้งระบบ (erp_option)
ที่มาในโค้ด
backend/internal/application/process/lookup_trans.go:92RefDocLookupFilterและ:140refDocWherebackend/internal/application/process/lookup_trans.go:106refSourceWhere(จำกัดตามโซ่ที่ดึงได้)backend/internal/application/process/trans_ref_import_lines.go:52refImportSourcesและ:279checkRefImportbackend/internal/application/process/trans_ref_import.go:21refImportSpecs(ยอดคงเหลือ)backend/internal/application/process/trans_validate.go:79ออปชันข้ามการตรวจรายการอ้างอิงbackend/internal/application/process/doc_flow.go:15คำนวณสถานะ used/success ของต้นทางใหม่frontend/account/transaction/UniversalTransScreen.tsx:2234loadRefDocsfrontend/account/transaction/TransTopForm.tsx:409ปุ่ม "ดึงเอกสาร"