#tables#ic
ข้อมูลการจัดส่งของเอกสาร (ic_trans_shipment)
หน้าที่: เก็บชื่อ ที่อยู่ เบอร์โทร ผู้ขนส่ง เลขพัสดุ และพิกัดของการจัดส่งสินค้าของเอกสาร 1 ใบ (หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans)) คู่กับ ic_trans.send_type (0 รับเอง / 1 ส่งให้) พอร์ตจาก C# _shipmentControl (trans.go:174) ไม่เกี่ยวกับสต๊อกหรือ GL
คอลัมน์ (INSERT ที่ trans.go:1187-1188)
| column | ความหมาย | ขีดจำกัดที่โค้ดตรวจ |
|---|---|---|
doc_no, trans_flag |
เอกสารเจ้าของ (key ร่วมกับ หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans)) | — |
doc_date |
วันที่เอกสาร | — |
cust_code |
รหัสลูกค้า (คัดลอกจากหัว; เปลี่ยนรหัสลูกหนี้แล้วแก้ตาม workflow.go:120) |
— |
transport_name |
ชื่อผู้รับ/ชื่อที่จัดส่ง | ≤ 255 ตัวอักษร |
transport_address |
ที่อยู่จัดส่ง | ≤ 1000 |
transport_telephone |
โทรศัพท์ | ≤ 100 |
transport_code |
รหัส/ชื่อผู้ขนส่ง | ≤ 25 |
ship_code |
เลขพัสดุ/เลขติดตาม (shipTrackingNo) |
≤ 50 |
latitude, longitude |
พิกัด (numeric, ทศนิยมตามที่ validate; 0 = ว่าง) |
ตรวจเป็นเลข scale 10 |
roworder |
ลำดับแถวจริง (หน้าจออ่านแถวล่าสุด ORDER BY roworder DESC LIMIT 1) |
— |
กระบวนการ
- เขียน:
saveTransTxลบแถวเดิมของเอกสาร (trans.go:422,535) แล้ว INSERT 1 แถวเฉพาะเมื่อผู้ใช้กรอกข้อมูลจัดส่งอย่างน้อยหนึ่งช่อง (trans.go:1181-1190) ดู ลำดับการบันทึกเอกสาร (Transaction Save Flow) - อ่าน: หน้า
UniversalTransScreenดึงแถวล่าสุดของเอกสารตามtrans_flagแล้วเติมแท็บ "ข้อมูลการจัดส่ง / ใบปะหน้าพัสดุ" (UniversalTransScreen.tsx:1418-1422,TransExtraTabs.tsx:479) - ลบ: ถูกลบพร้อมเอกสาร (
trans.go:422)
ข้อควรระวัง
- ไม่มี DDL ใน repo จึงยืนยันได้เฉพาะคอลัมน์ที่ INSERT/SELECT เห็น (11 ตัวข้างบน)
- ความยาวเกินขีดจำกัดจะถูกปฏิเสธด้วยข้อความ "ข้อมูลการจัดส่งยาวเกินขนาดที่กำหนด" (
trans.go:1183-1185) - ข้อมูลที่อยู่/เบอร์โทรเป็นข้อมูลส่วนบุคคลของลูกค้า — อย่านำค่าจริงไปใส่ในเอกสาร/ล็อก
ที่มาในโค้ด
backend/internal/application/process/trans.go:174-181,:422,:535,:1175-1190backend/internal/application/process/workflow.go:120frontend/account/transaction/UniversalTransScreen.tsx:1418-1422frontend/account/transaction/TransExtraTabs.tsx:479