วงเงินสดย่อย cb_petty_cash
ตารางหลัก (master) ของ วงเงินสดย่อยแต่ละวง — หนึ่งแถวต่อหนึ่งวง (เช่น เงินสดย่อยของแผนก/สาขา). ตัวเลขเคลื่อนไหวไม่ได้เก็บในตารางนี้ แต่คำนวณจากเอกสารเบิก/คืน/ตัดจ่าย แล้วรวมกับยอดยกมา (balance_money) ที่เก็บในตารางนี้.
เอกสารที่เกี่ยวข้อง (ดู รหัสชนิดเอกสาร trans_flag และทิศทางสต็อก (Trans Flag Map)): 300 เบิก/ขอวงเงินสดย่อย, 301 คืน/ลดวงเงินสดย่อย, 302 ยกเลิกคืน/ลดวงเงิน (doc_flow_graph.go:217-219), และการตัดจ่ายผ่านแท็บชำระเงินเป็น cb_trans_detail.doc_type = 4 (รายละเอียดรับ/จ่ายเงินแยกรายการ (cb_trans_detail)).
คอลัมน์ที่เห็นในโค้ด
| column | ความหมาย | ใช้ที่ไหน |
|---|---|---|
code |
รหัสวงเงินสดย่อย (key ธุรกิจ) — ic_trans_detail.item_code ของ 300/301 และ cb_trans_detail.trans_number ของ doc_type 4 อ้างค่านี้ |
report_menu_cb.go:329,667-681,721-737 |
name_1 |
ชื่อวงเงินสดย่อย | report_menu_cb.go:329,692,737 |
balance_money |
ยอดยกมาของวงเงิน (ตั้งต้นของรายงานสถานะ/เคลื่อนไหว) | report_menu_cb.go:692-737 (COALESCE(pc.balance_money,0) + Σ movements ก่อนวันเริ่ม) |
chart_of_account |
รหัสผังบัญชีของวงเงินสดย่อย ใช้ตอนลง GL (ผังบัญชี (gl_chart_of_account)) | gl_template.go:202 (SELECT chart_of_account FROM cb_petty_cash WHERE code=$1) |
คอลัมน์อื่นของตารางไม่ปรากฏใน SQL ที่อ่าน → "(ไม่ชัดจากโค้ด)".
วิธีคำนวณยอดเคลื่อนไหว (CTE pm)
cbmPettyCTE (report_menu_cb.go:667-681) สร้างรายการเคลื่อนไหวต่อ code แบบมีเครื่องหมาย:
| calc | ที่มา | เครื่องหมาย |
|---|---|---|
| 1 เบิก | ic_trans 300 (+ ic_trans_detail.sum_amount) ที่ last_status = 0 ทั้งหัว-บรรทัด |
− |
| 2 รับคืน | ic_trans 301 |
+ |
| 3 ตัดจ่าย | cb_trans_detail doc_type = 4 ของเอกสารกลุ่มจ่าย (cbmPettyPay) |
− |
| 4 รับ | cb_trans_detail doc_type = 4 ของเอกสารกลุ่มรับ (cbmPettyRcv) |
+ |
ยอดคงเหลือ = balance_money + Σ การเคลื่อนไหว (report_menu_cb.go:721-737). รายงานสถานะ "ยอดยกมา เบิก คืน ตัดจ่าย รับ ยอดยกไป" ตามช่วงวันที่ และรายงานเคลื่อนไหวแบบแสดงรายละเอียด/ยอดสะสม ใช้ CTE นี้.
ความสัมพันธ์
- ← หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans) / รายการสินค้าในเอกสาร (ic_trans_detail) (300/301) ผ่าน
item_code = code - ← รายละเอียดรับ/จ่ายเงินแยกรายการ (cb_trans_detail) (
doc_type = 4) ผ่านtrans_number = code - → ผังบัญชี (gl_chart_of_account) ผ่าน
chart_of_account - เอกสาร GL ที่เกิดขึ้นอธิบายใน เครื่องมือลงบัญชีตามรูปแบบ GL (GL Template Engine)
ใครเขียน / ใครอ่าน
- เขียน: เป็น master ที่แก้ผ่านเส้นทาง master-data เดิม — อยู่ใน allow-list legacy ของ generic write (
domain/query/write_policy_legacy.go:16) ซึ่งต่างจากตารางเงินcb_trans*; รายละเอียดการบันทึก master ดู ข้อมูลหลักแบบหัว-รายการ รหัสอัตโนมัติ และเลย์เอาต์รายการ (Master-detail, code auto-run, DataList). - อ่าน: รายงานเงินสดย่อยทั้งชุด (
report_menu_cb.go:329-335,692-737) และชื่อวงเงินในรายงานเบิก/คืน (ใช้item_nameถ้ามี ไม่งั้นดึงpc.name_1) ; GL template ชุดเงินสดย่อย (gl_template.go:202). - ไม่มีที่ไหนใน backend ที่อัปเดต
balance_moneyตามการเคลื่อนไหว (ที่อ่านพบ) — เป็นยอดยกมาเท่านั้น.
ข้อควรระวัง
balance_moneyไม่ใช่ยอดคงเหลือปัจจุบัน เป็นยอดยกมา; ต้องบวกเคลื่อนไหวเสมอ.- ความหมายของเครื่องหมาย 300 (−) / 301 (+) ตรงข้ามกันในมุมวงเงินสดย่อย: เบิกเงินออกจากวง = ลด.
- กรองเอกสารยกเลิก: ใช้
last_status = 0ทั้งหัวและบรรทัดของ 300/301 และเงื่อนไข parent OK ของcb_trans_detail(report_menu_cb.go:154,681) — ไม่เช่นนั้นยอดจะนับเอกสารที่ยกเลิกแล้ว. - ตารางนี้อยู่ในกลุ่ม master ที่มี allow-list ต่างจากตารางเงิน — แต่การเปลี่ยน
codeต้องตามอ้างอิงในic_trans_detail.item_codeเอง (ไม่เห็นรายการcb_petty_cashในcodeRefของworkflow.go→ ไม่ชัดจากโค้ดว่ามี tool เปลี่ยนรหัสอัตโนมัติ).
ที่มาในโค้ด
backend/internal/application/process/report_menu_cb.go:154,318-335,667-740backend/internal/application/process/gl_template.go:202backend/internal/application/process/doc_flow_graph.go:217-219backend/internal/domain/query/write_policy_legacy.go:16