#tables#gl
หัวสมุดรายวันทั่วไป (gl_journal)
ตารางหัวเอกสารของสมุดรายวันบัญชีแยกประเภท: 1 เอกสารบัญชี = 1 แถว ยอดรวม debit/credit ของเอกสาร ส่วนบรรทัดบัญชีอยู่ที่ รายการบัญชีแยกประเภท (gl_journal_detail) ทุกเอกสารที่ลงบัญชี (ซื้อ/ขาย/รับจ่ายเงิน/สินทรัพย์/ปิดบัญชี/JV) จบที่ตารางนี้ ดูตัวเลข trans_flag ที่ รหัสชนิดเอกสาร trans_flag และทิศทางสต็อก (Trans Flag Map) และวิธีสร้างบรรทัดที่ การลงบัญชี Dr/Cr มาตรฐานแยกตามชนิดเอกสาร (Standard GL Posting), เครื่องมือลงบัญชีตามรูปแบบ GL (GL Template Engine)
คอลัมน์สำคัญ
| คอลัมน์ | ความหมาย | ใช้ที่ไหน |
|---|---|---|
doc_date |
วันที่เอกสาร (คีย์ร่วมกับ book_code, doc_no) | ทุก writer และรายงาน |
doc_no |
เลขที่เอกสาร ตรงกับ ic_trans.doc_no / ap_ar_trans.doc_no / as_trans.doc_no ของเอกสารต้นทาง |
join ทุกที่ |
book_code |
สมุดรายวัน อ้าง สมุดรายวัน (gl_journal_book) code มาจาก erp_doc_format.gl_book |
gl_template.go:1050, ตรวจ workflow.go:606 |
trans_flag |
ชนิดเอกสารต้นทาง (1801 ค่าเสื่อม, 1802 ขายสินทรัพย์, 1998/1999 ปิดบัญชี, 0/1999 JV ทำมือ) | rebuild/ลบ/รายงาน |
trans_direct |
0 = ระบบสร้างอัตโนมัติ rebuild ได้, 1 = คีย์ตรง/ระบบเฉพาะ ห้าม rebuild ทับ | gl_template.go:1166, service.go:1427-1440 |
journal_type |
0 รายวัน, 1 ยกมางวด, 2 ปิดงวด, 3 ปรับปรุง, 4 ยอดยกมา | stock_beginning.go:111, report_menu_gl_fa_tb.go:8-24 |
debit, credit |
ยอดรวมเดบิต/เครดิตของเอกสาร (สองฝั่งต้องเท่ากัน) | writer ทุกตัว, workflow.go GLCheck |
description |
คำอธิบายรายการ (ตัดที่ 5000 ตัวอักษร) | gl_template.go:1050 |
period_number, account_year |
งวด/ปีบัญชี จาก erp_account_period ตามวันที่ ถ้าไม่พบใช้เดือน/ปีของ doc_date |
service.go:1684-1700 |
branch_code |
สาขา (ถ้าว่าง rebuild ใส่ '00000') |
service.go:1684-1700 |
doc_format_code |
รูปแบบเอกสารต้นทาง อ้าง erp_doc_format — รูปแบบ/ชนิดเอกสารและเลขที่รัน | gl_template.go:1050 |
ref_no, ref_date |
เอกสารอ้างอิง (เขียนเฉพาะ JV ทำมือและยอดยกมาสต็อก) | docs.go:294, stock_beginning.go:558 |
is_pass |
สถานะผ่านรายการ 0/1 ปุ่มผ่านรายการตั้ง 1 ปุ่มยกเลิกตั้ง 0 รายงานอ่านเฉพาะ in (0,1) ค่าอื่น (ไม่ชัดจากโค้ด) |
workflow.go:478-521, report_menu_gl_fa.go:1688 |
guid_code, create_code, create_date_time_now |
รหัส GUID, ผู้สร้าง, เวลาสร้าง (เขียนเฉพาะ writer ของ FA/ปิดบัญชี) | fa_depreciation.go:995, workflow.go:910 |
roworder |
ลำดับแถวภายใน (ใช้เรียง ORDER BY roworder) |
doc_cancel.go:612 |
คีย์ไม่ซ้ำคือ (doc_date, book_code, doc_no) ตามคอมเมนต์ที่ doc_cancel.go:659-662 (รหัส Postgres 23505 ถูกแปลงเป็นข้อความเลขที่ซ้ำ)
คีย์และความสัมพันธ์
- ลูก: รายการบัญชีแยกประเภท (gl_journal_detail) เชื่อมด้วย (
doc_no,doc_date,book_code) และหลาย writer ใช้trans_flagร่วมด้วย - สมุดรายวัน: สมุดรายวัน (gl_journal_book) (
book_code=code) - เอกสารต้นทาง: หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans), หัวเอกสารใบวางบิล/ใบเสร็จ-จ่ายชำระหนี้ (ap_ar_trans), หัวเอกสารสินทรัพย์ (as_trans) (ผ่าน
doc_no+trans_flag) - งวดบัญชี: erp_account_period — งวดบัญชี (เปิด/ปิดงวด); รูปแบบเอกสาร: erp_doc_format — รูปแบบ/ชนิดเอกสารและเลขที่รัน; สาขา: erp_branch_list — ทะเบียนสาขา
- ตารางภาษีของเอกสารเดียวกัน: ทะเบียนภาษีซื้อ (gl_journal_vat_buy), ทะเบียนภาษีขาย (gl_journal_vat_sale), หัวเอกสารหัก ณ ที่จ่าย (gl_wht_list)
ใครเขียน (writers)
| ที่มา | ที่ | trans_direct |
|---|---|---|
| ลงบัญชีตาม template ของรูปแบบเอกสาร | gl_template.go:1050 |
0 |
| ลงบัญชีมาตรฐาน (ไม่มี template) | service.go:1620 |
(ดู การลงบัญชี Dr/Cr มาตรฐานแยกตามชนิดเอกสาร (Standard GL Posting)) |
| JV ทำมือ | docs.go:294 |
1 |
| ยกเลิกเอกสาร กลับเดบิต/เครดิต | doc_cancel.go:643 |
0 |
| ค่าเสื่อมราคา (1801) | fa_depreciation.go:995 |
1 |
| ขายสินทรัพย์ (1802) แบบไม่มี template | fa_sale.go:576 |
0 |
ปิดบัญชีสิ้นงวด (journal_type 2) |
workflow.go:910 |
1 |
| ยอดยกมาสต็อก | stock_beginning.go:558 |
ตามอินพุต |
ผ่าน/ยกเลิกผ่านรายการ (UPDATE is_pass) |
workflow.go:511 |
- |
ปรับ account_year/period_number/journal_type/branch_code/book_code หลัง rebuild |
service.go:1684 |
- |
ใครลบและใครอ่าน
- ลบ: rebuild
service.go:1413-1440(เฉพาะtrans_direct<>1),deleteAutoGLgl_template.go:1159-1166, ลบ JVdocs.go:421-450, ลบ/สร้างใหม่ของเอกสารยกเลิกdoc_cancel.go:627-642, ยอดยกมาสต็อกstock_beginning.go:486, ลบเอกสารขายสินทรัพย์fa_sale.go:488 - อ่าน: รายงานสมุดรายวัน/แยกประเภท
report_menu_gl_fa.go:1688, งบทดลองตามjournal_typereport_menu_gl_fa_tb.go:8-24, หน้าผ่านรายการworkflow.go:393, ตรวจรายวัน (GLCheck)workflow.go:553-612, ผู้ช่วย MCPadapter/inbound/http/mcp/gateway.go:1421
ข้อควรระวัง
- ห้าม rebuild ทับแถว
trans_direct = 1: JV ทำมือ ค่าเสื่อม ปิดบัญชี ยอดยกมา จะไม่ถูกสร้างใหม่ ต่างจากแถวtrans_direct = 0ที่ถูกลบแล้วสร้างใหม่ทุกครั้ง ดู กระบวนการสร้างสมุดรายวัน GL ใหม่ (GL Rebuild Process) - เลขที่เอกสารเดียวกันอาจมีหลายสมุด (เช่น สมุด POS กับรายวันตรง) ดังนั้นการลบ/ซิงก์ต้องใช้คีย์
doc_no+book_code+trans_flagไม่ใช่doc_noอย่างเดียว (คอมเมนต์ที่service.go:1429) - หัวที่ไม่มีบรรทัดลูกเลยจะถูก rebuild ลบทิ้งก่อน (แม้
trans_direct = 1)service.go:1413-1423 - เอกสารที่ถูกยกเลิกไม่ถูกลบ GL แต่ระบบสร้างรายการกลับด้านพร้อมชื่อบัญชีนำหน้าด้วย
*(doc_cancel.go:648-652) ดู การลบ แก้ไข และล็อกเอกสาร (Transaction Delete / Edit Guards) - ยอดตัวเลขเก็บเป็น NUMERIC ส่งผ่าน string/
big.Ratห้ามใช้ float (กฎการปัดเศษที่ การปัดเศษ ทศนิยม และตัวเลขเงิน (Rounding & Decimal Policy)) - ความหมายค่า
is_passอื่นนอกจาก 0/1: (ไม่ชัดจากโค้ด)
ที่มาในโค้ด
backend/internal/application/process/gl_template.go:1050insert หัวจาก templatebackend/internal/application/process/gl_template.go:1159deleteAutoGLbackend/internal/application/process/service.go:1413rebuild ลบ orphan/รายการอัตโนมัติbackend/internal/application/process/service.go:1620insert ลงบัญชีมาตรฐานbackend/internal/application/process/service.go:1684normalize หลัง rebuildbackend/internal/application/process/docs.go:294JV ทำมือbackend/internal/application/process/docs.go:421ลบ JVbackend/internal/application/process/doc_cancel.go:627ลบ GL เอกสารยกเลิกbackend/internal/application/process/doc_cancel.go:643insert รายการกลับด้านbackend/internal/application/process/fa_depreciation.go:995GL ค่าเสื่อม 1801backend/internal/application/process/fa_sale.go:576GL ขายสินทรัพย์ 1802backend/internal/application/process/workflow.go:478JournalPassbackend/internal/application/process/workflow.go:910GL ปิดบัญชีbackend/internal/application/process/stock_beginning.go:558ยอดยกมาbackend/internal/application/process/report_menu_gl_fa.go:1688รายงานสมุดรายวันbackend/internal/adapter/inbound/http/mcp/gateway.go:1421คำอธิบายตารางสำหรับ MCP