#tables#ap-ar
ที่อยู่จัดส่ง / ป้ายขนส่ง ap_ar_transport_label
ตาราง ที่อยู่ผู้รับสำหรับพิมพ์ป้ายจัดส่งสินค้า ของทั้งเจ้าหนี้และลูกหนี้ในตารางเดียว แยกฝั่งด้วย ar_ap_type. ชื่อตารางขึ้นต้น ap_ar_ แต่ เป็น master ไม่ใช่เอกสารเงิน — นโยบายเขียนจึงอยู่ใน allow-list legacy (write_policy_legacy.go:11) และ regex ตารางเงิน ap_ar_trans(_\w+)? ถูกออกแบบให้ ไม่ จับตารางนี้ (write_policy.go:23 comment "ap_ar_transport_label is a master and must not match ap_ar_trans(_...)").
ชนิดแถว (ar_ap_type)
| ar_ap_type | ความหมาย | ที่มา |
|---|---|---|
| 0 | เจ้าหนี้ (ทะเบียนเจ้าหนี้/ผู้ขาย (ap_supplier)) | report_menu_ap_ar.go:954-968 (s.pick("0","1")), sysproc_tools.go:218-232 |
| 1 | ลูกหนี้ (ทะเบียนลูกหนี้/ลูกค้า (ar_customer)) | เช่นเดียวกัน |
คอลัมน์ที่เห็นในโค้ด
| column | ความหมาย | ใช้ที่ไหน |
|---|---|---|
cust_code |
รหัสลูกหนี้/เจ้าหนี้ (ตามชนิด) — รวมกับ ar_ap_type เป็น key ธุรกิจ |
sysproc_tools.go:230-232; workflow.go:121 |
ar_ap_type |
0 = เจ้าหนี้, 1 = ลูกหนี้ | ข้างบน |
name_1 |
ชื่อผู้รับ | report_menu_ap_ar.go:970-975 |
address, telephone, fax, email |
ที่อยู่/ติดต่อผู้รับ | report_menu_ap_ar.go:970-975; คัดลอกจาก master ตอน import sysproc_tools.go:230 |
remark_1, remark_2 |
หมายเหตุป้าย 1/2 | report_menu_ap_ar.go:976-977 |
send_name_1, send_address, send_country, send_province, send_amper, send_tambon, send_zip_code, send_telephone, send_fax, send_email, send_id_date |
ที่อยู่/ข้อมูลของ "ผู้ส่ง" (ชุด send_*) — คอลัมน์ที่เพิ่มด้วย ADD COLUMN IF NOT EXISTS ตอนเริ่มระบบ (send_id_date เป็น DATE ที่เหลือ TEXT) |
service.go:817-827, platform/db/pool.go:37-47 |
transport_code |
รหัสผู้ให้บริการขนส่ง | service.go:828, pool.go:48 |
roworder |
ลำดับแถว (เรียงรหัส/รายงาน) | report_menu_ap_ar.go:980-991 |
ความหมายของแต่ละ send_* เป็นชื่อสื่อความตามคอลัมน์ ไม่มีโค้ดอ่าน-เขียนจริงใน backend ที่ใช้คอลัมน์เหล่านี้ → การใช้งานในหน้าจอ "ไม่ชัดจากโค้ด".
ความสัมพันธ์
- N → 1 ทะเบียนลูกหนี้/ลูกค้า (ar_customer) หรือ ทะเบียนเจ้าหนี้/ผู้ขาย (ap_supplier) ผ่าน
cust_code+ar_ap_type - ถูกอ้างอิงโดยกลไกเปลี่ยนรหัส (
workflow.go:121— กรองด้วยar_ap_type = transportType; ลูกหนี้ใช้ 1 เจ้าหนี้ใช้ 0) - ไม่ถูกอ้างจากตารางเอกสาร (หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans)) ในโค้ดที่อ่าน
ใครเขียน / ใครอ่าน
- เขียน (import):
ImportTransportLabel(sysproc_tools.go:218-236) คัดลอกcode,name_1,address,telephone,fax,emailจากar_customerหรือap_supplierที่ ยังไม่มีแถวในตารางนี้ (กัน duplicate ด้วยNOT EXISTS ... ar_ap_type AND cust_code) — ตรงกับ C#_importTransportLabel. - เขียน (แก้ไขเอง): หน้าจอ master (ผ่าน generic/legacy write).
- อ่าน: รายงาน "พิมพ์ที่อยู่จัดส่งสินค้า" (
report_menu_ap_ar.go:968-991) และรายงานดูตัวอย่างรายการที่ ยังไม่ถูก import ซึ่งเทียบกับ master (:954-964— read-only preview). - ปรับโครงสร้าง: ALTER เพิ่มคอลัมน์ที่
service.go:817-828และpool.go:37-48(ทำซ้ำได้อย่างปลอดภัยด้วยIF NOT EXISTS).
ข้อควรระวัง
- ที่อยู่ที่ import แล้วเป็น สำเนา — แก้ที่ master ภายหลังไม่ตามมา (และ import ซ้ำจะข้ามรหัสที่มีแล้ว) ต้องแก้ในตารางนี้เอง.
- รายงานป้ายใช้ค่า "จำนวนดวง" เป็น
'1'คงที่ (report_menu_ap_ar.go:978) — ไม่ใช่คอลัมน์. - ตารางมีทั้งสองฝั่งปนกัน ต้องกรอง
ar_ap_typeทุกครั้ง มิฉะนั้นรหัสลูกหนี้กับเจ้าหนี้ที่ซ้ำกันจะปน. - ชื่อตารางขึ้น
ap_ar_อาจถูกเข้าใจผิดว่าเป็นตารางเงิน — ไม่ใช่ (นโยบายแยกชัดwrite_policy.go:23).
ที่มาในโค้ด
backend/internal/application/process/sysproc_tools.go:208-236backend/internal/application/process/report_menu_ap_ar.go:954-991backend/internal/application/process/service.go:817-828backend/internal/platform/db/pool.go:37-48backend/internal/application/process/workflow.go:121backend/internal/domain/query/write_policy.go:23backend/internal/domain/query/write_policy_legacy.go:11