ชนิดเอกสาร (trans_flag)
ในระบบนี้คืออะไร
ทุกเอกสารซื้อ ขาย สต็อก หนี้ และเงิน เก็บ "ชนิดเอกสาร" เป็นเลขในคอลัมน์ trans_flag เช่น 44 = ขายสินค้า/บริการ (SI) และ 12 = ซื้อ/ตั้งหนี้ (PU)
เมนูแต่ละเมนูผูกกับ flag หนึ่งค่าผ่าน TransMenuConfig (transMenuMap.ts:11) ฟิลด์ที่ผูกไว้ได้แก่ transType, transFlag, calcFlag, screenCode, docFormatCode, partyType (ap/ar/none), mode (doc/cancel/approve) และ origFlag
identifier / ตาราง / คอลัมน์
| คำที่ผู้ใช้พูด | identifier | ที่อยู่ |
|---|---|---|
| ชนิดเอกสาร | trans_flag |
ic_trans, ic_trans_detail, ap_ar_trans, cb_trans, gl_journal, gl_journal_vat_*, gl_wht_list |
| กลุ่มระบบของเอกสาร | trans_type |
ic_trans.trans_type และ cb_trans.trans_type |
| ทิศทางสต็อก (+ เข้า / − ออก) | calc_flag |
ic_trans_detail.calc_flag |
| รหัสจอ / ตัวย่อเอกสาร | screenCode เช่น SI, PU, IM |
transMenuMap.ts |
| ตารางที่เอกสารลง | kind / TransKind |
ic_trans, ap_ar_trans, cb_trans, cb_chq_list, gl_journal, pp_trans (transMenuMap.ts:3) |
ค่าที่เป็นไปได้
trans_type: 1 = ซื้อ/เจ้าหนี้ (transMenuMap.ts:54), 2 = ขาย/ลูกหนี้ (:541), 3 = สินค้า/คลัง (:922)calc_flag: ยอดคงเหลือคำนวณจากSUM(qty * calc_flag * (stand_value/divide_value))(service.go:1069) ดังนั้น +1 = เข้า, −1 = ออก, 0 = ไม่กระทบสต็อก- backend คำนวณ
calc_flagเองจากtrans_flagไม่เชื่อค่าที่ client ส่งมา (calcFlagByTransFlag,transcalc.go:9-27) flag ที่ไม่อยู่ในรายการได้ 0 - flag ที่ไม่ใช่เอกสารสต็อก เช่น 30/34/36 ก็มี
calc_flag = 1ด้วย แต่ไม่กระทบยอด เพราะยอดคงเหลือนับเฉพาะtrans_flagในรายการstockRowsSQL(stock_rebuild.go:18-22) ดู ยอดคงเหลือสินค้า และต้นทุนเฉลี่ย (stock balance / balance_qty / average_cost / sum_of_cost)
- backend คำนวณ
- ตัวอย่าง flag ที่พบบ่อย (จาก
transMenuMap.ts):- ซื้อ: 2 PR ใบเสนอซื้อ (
:56), 6 PO ใบสั่งซื้อ (:99), 12 PU ซื้อ/ตั้งหนี้ (:295), 16 PT ส่งคืน/ลดหนี้ซื้อ (:388), 14 PA เพิ่มหนี้ซื้อ (:479) - ขาย: 30 SO ใบเสนอราคา (
:543), 34 SR สั่งจอง (:586), 36 SS สั่งขาย (:631), 44 SI ขาย (:827), 48 ST รับคืน/ลดหนี้ (:859), 46 SA เพิ่มหนี้ (:890) - สต็อก: 54 IB ยกมา (
:924), 56 IO เบิก (:996), 58 IR รับคืนจากเบิก (:1027), 72 IM โอนออก (:1073), 66 IA ปรับปรุงเพิ่ม (:1149), 68 IS ปรับปรุงลด (:1163) - หนี้: 19 DE จ่ายชำระหนี้ (
:1374), 239 EE รับชำระหนี้ (:1573), 213 DD ใบรับวางบิล (:1345), 235 ED ใบวางบิล (:1544) - เงิน: 401 DM ฝาก (
:1887), 402 WM ถอน (:1902), 422 TM โอนเงิน (:1917), 0 JV ข้อมูลรายวัน (:2368)
- ซื้อ: 2 PR ใบเสนอซื้อ (
- ค่าคงที่ฝั่ง backend: 72 โอนออก, 70 โอนเข้า, 124 ขอโอน, 422 โอนเงิน (
trans.go:18-27)
หน้าจอที่ใช้
ทุกจอเอกสารใน frontend/account/transaction/* เปิดตาม TransMenuConfig เดียวกัน รายการเต็มดูได้ที่ รหัสชนิดเอกสาร trans_flag และทิศทางสต็อก (Trans Flag Map)
ข้อควรระวัง
- flag ของเอกสารยกเลิก/อนุมัติเป็นเอกสารแยก มีเลขของตัวเอง เช่น 45 ยกเลิกขาย (เอกสารเดิมคือ 44) และ 4 อนุมัติใบเสนอซื้อ (เอกสารเดิมคือ 2) ดู สถานะยกเลิก/อนุมัติเอกสาร (last_status / approve_status / cancel flag)
- flag 300/301 (เงินสดย่อย) โค้ดเรียกว่า 300 "คืน/ลด วงเงินสดย่อย" (
transMenuMap.ts:1796) และ 301 "รับ/เพิ่ม วงเงินสดย่อย" (:1813) แต่โน้ต รหัสชนิดเอกสาร trans_flag และทิศทางสต็อก (Trans Flag Map) เขียนว่า 300 เบิก / 301 คืน ให้ยึดตามโค้ด cb_chq_listใช้trans_flag1 เช็ครับ, 2 เช็คจ่าย, 3 บัตรเครดิต (:1991,:2180,:2325) ซ้ำเลขกับ flag ของic_transจึงต้องดูประกอบกับตารางทุกครั้ง
ลิงก์
รหัสชนิดเอกสาร trans_flag และทิศทางสต็อก (Trans Flag Map) · หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans) · รายการสินค้าในเอกสาร (ic_trans_detail) · ตัวย่อระบบ/คำนำหน้าตาราง (module prefix / ic ap ar gl cb as erp) · ประเภทรายการ เงินสด/เงินเชื่อ (inquiry type / inquiry_type) · glossary-overview
ที่มาในโค้ด
frontend/account/tabs/transMenuMap.ts:3(TransKind),:11-30(TransMenuConfig),:54,:541,:922(trans_type)frontend/account/tabs/transMenuMap.ts:295,:827,:1796,:1813,:2368backend/internal/application/process/trans.go:18-27backend/internal/application/process/service.go:1069backend/internal/application/process/transcalc.go:9-27;stock_rebuild.go:18-22