#tables#gl
ทะเบียนภาษีขาย (gl_journal_vat_sale)
ทะเบียน/รายงานภาษีขาย (ใบกำกับภาษีที่เราออกให้ลูกค้า) 1 แถวต่อ 1 ใบกำกับของเอกสาร ใช้ทำรายงานภาษีขาย (ภ.พ.30) และเป็นแหล่งยอดภาษีขายที่ GL ดึงไปลงบัญชี ฝั่งซื้อคือ ทะเบียนภาษีซื้อ (gl_journal_vat_buy) ชื่อคอลัมน์ฝั่งขายต่างจากฝั่งซื้อ (ยอดภาษีคือ amount ไม่ใช่ vat_amount) ระวังอย่าเขียน SQL ตามกัน ภาพรวมอยู่ที่ ทะเบียนภาษีซื้อ/ภาษีขาย และภาษีหัก ณ ที่จ่าย (VAT Register & WHT)
คอลัมน์สำคัญ
| คอลัมน์ | ความหมาย | ใช้ที่ไหน |
|---|---|---|
doc_no, doc_date, trans_flag |
เอกสารเจ้าของแถว | ลบ/สร้างใหม่ trans_tax.go:99 |
book_code, line_number |
ว่าง / ลำดับแถวในแท็บภาษี เริ่ม 0 | journaltax.go:160, journaltax.go:178 |
vat_calc |
เครื่องหมายคูณยอด 1 ปกติ, -1 ใบลดหนี้/รับคืน | trans_tax.go:37, report_menu_gl_fa.go:1042 |
trans_type |
ประเภทรายการของเอกสาร | journaltax.go:160 |
vat_date |
วันที่ใบกำกับภาษี | รายงาน |
vat_number |
เลขที่ใบกำกับภาษีขาย (ไม่ซ้ำข้ามทั้งระบบ เทียบแบบตัวใหญ่) | รายงาน, trans_tax_doc_no.go:26 |
vat_effective_period, vat_effective_year |
เดือน/ปีภาษีที่ยื่น (ปี ค.ศ.) | journaltax.go:160 |
description |
รายละเอียด | journaltax.go:160 |
tax_group |
กลุ่มภาษี อ้าง gl_tax_group.code |
journaltax.go:160 |
base_caltax_amount, tax_rate, amount, except_tax_amount |
ฐานภาษี, อัตรา, ยอดภาษี, ยอดยกเว้น | รายงาน report_menu_gl_fa.go:1040, gl_template.go:789-839 |
vat_type |
0 ปรกติ, 1 ไม่ถึงกำหนดชำระ (ฝั่งขายมีแค่ 0-1) | journaltax.go:38, journaltax.go:179-181 |
is_add |
1 = ยื่นเพิ่มเติม | รายงาน |
ar_code, ar_name, tax_no, branch_type, branch_code |
ลูกหนี้ (รหัส/ชื่อ/เลขผู้เสียภาษี/สำนักงานใหญ่ 0 สาขา 1/รหัสสาขา) | รายงาน |
manual_add |
1 = ผู้ใช้กรอกชื่อ/เลขผู้เสียภาษี/สาขาเอง ไม่ดึงจากทะเบียนลูกหนี้ | journaltax.go:160 |
ref_vat_no, ref_vat_date, ref_doc_no, ref_doc_date |
ใบกำกับ/เอกสารอ้างอิง ใช้กับเอกสารรับชำระ 239 ที่ล้างภาษีไม่ถึงกำหนด | gl_template.go:836-837 |
is_doc_copy |
1 = แถวสำเนา รายงานตั้งเป็น 0 (ความหมายเต็ม: ไม่ชัดจากโค้ด) | report_menu_gl_fa.go:1042, :1716 |
คีย์และความสัมพันธ์
- เจ้าของแถว: หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans) (ขาย 44,46,48,99,101,103,144,250,252,254 และมัดจำขาย 110,112), หัวเอกสารสินทรัพย์ (as_trans) (ขายสินทรัพย์ 1802), หัวเอกสารใบวางบิล/ใบเสร็จ-จ่ายชำระหนี้ (ap_ar_trans) (รับชำระ 239), หรือ JV ทำมือ (หัวสมุดรายวันทั่วไป (gl_journal) flag 0/1999)
- ลูกหนี้: ทะเบียนลูกหนี้/ลูกค้า (ar_customer) (
ar_code) ชื่อและเลขผู้เสียภาษีดึงจากar_customerและar_customer_detailถ้าผู้ใช้ไม่กรอก - ฝั่ง WHT ของเอกสารเดียวกัน: หัวเอกสารหัก ณ ที่จ่าย (gl_wht_list)
- มีดัชนี
UPPER(vat_number)สร้างเมื่อคอลัมน์vat_numberมี (service.go:928-931) ไว้ตรวจเลขใบกำกับซ้ำตอนบันทึก
ใครเขียน (writers)
- แท็บภาษีขายของ JV ทำมือ:
journalVatStmtsjournaltax.go:178ผ่านvatInsertSQL(true)journaltax.go:160 - เอกสาร หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans):
transTaxStmtstrans_tax.go:109สร้างแถวเดียวจากหัวเอกสาร (defaultTransVattrans_tax.go:74) เว้นvat_type = 3ที่ไม่มีแถวภาษี - ขายสินทรัพย์ 1802:
insertAssetSaleVatfa_sale.go:645ใช้derivedVatStmtsสร้างแถวเดียวกับที่ rebuild จะได้ - เอกสารรับชำระหนี้ 239:
apArTaxTabstrans_tax.go:53 - สร้างใหม่ทั้งชุด:
RebuildTransTaxtrans_tax.go:252(ข้ามเอกสารที่ผู้ใช้คีย์ภาษีเอง)
ใครลบและใครอ่าน
- ลบ: JV
journaltax.go:89-90,journaltax.go:130-131; ตามเอกสารtrans_tax.go:199-203; แถวกำพร้าtrans_tax.go:243; ลบเอกสารขายสินทรัพย์fa_sale.go:488 - อ่าน: รายงานภาษีขายและรายงานทางเลือก (2557/รวมภาษี)
report_menu_gl_fa.go:1040-1135; join กับic_trans.last_statusreport_menu_gl_fa.go:1715; ยอดภาษีขายที่ลง GLgl_template.go:789-839; ตรวจเลขใบกำกับซ้ำtrans_tax_doc_no.go:26
ข้อควรระวัง
- เอกสารยกเลิก (
last_status = 1) หรือแถวสำเนา (is_doc_copy = 1) แถวยังอยู่ รายงานตั้งยอดเป็น 0 ผ่านเครื่องหมายcalc(report_menu_gl_fa.go:1042) ห้าม SUM ตรง ๆ - ภาษีขายที่
vat_type = 1(ไม่ถึงกำหนดชำระ) ถูกแยกไปลงบัญชีพักภาษีตอน GL: ฝั่งขายเอกสารtrans_type = 2ดึงSUM(amount)ของvat_type = 1(gl_template.go:789) ถ้าแก้ค่านี้ต้อง rebuild GL ของเอกสาร (กระบวนการสร้างสมุดรายวัน GL ใหม่ (GL Rebuild Process)) - ใบกำกับภาษีขายห้ามซ้ำทั้งระบบ (เทียบ
UPPER(vat_number)) ต่างจากฝั่งซื้อที่ซ้ำได้ต่างเจ้าหนี้ ตรวจแบบ advisory lock ต่อเลขที่ในขณะบันทึก (trans_tax_doc_no.go:26-32) - เอกสารขายสินทรัพย์ 1802 ใช้ตารางนี้ร่วมกับเอกสารสินค้า ต้องระบุ
trans_flagทุกครั้งที่ลบ/อ่านเพื่อไม่ชนกับic_transเลขที่เดียวกัน - เงินเป็น NUMERIC ส่งเป็น string (การปัดเศษ ทศนิยม และตัวเลขเงิน (Rounding & Decimal Policy))
ที่มาในโค้ด
backend/internal/application/process/journaltax.go:160vatInsertSQL(true)ชื่อคอลัมน์ฝั่งขายbackend/internal/application/process/journaltax.go:178journalVatStmtsbackend/internal/application/process/trans_tax.go:37transVatTabsbackend/internal/application/process/trans_tax.go:99transVatStmtsbackend/internal/application/process/trans_tax.go:252RebuildTransTaxbackend/internal/application/process/trans_tax_doc_no.go:26ตรวจเลขใบกำกับซ้ำbackend/internal/application/process/fa_sale.go:645insertAssetSaleVatbackend/internal/application/process/fa_sale.go:488ลบแถวตอนลบเอกสาร 1802backend/internal/application/process/gl_template.go:789ยอดภาษีขายลง GLbackend/internal/application/process/service.go:928ดัชนี vat_numberbackend/internal/application/process/report_menu_gl_fa.go:1040รายงานภาษีขายbackend/internal/application/process/report_menu_gl_fa.go:1715join last_status