เคสที่ 16 — AP บิลผสม VAT / non-VAT
ตัวเลข: บิล 2 บรรทัด:
- บรรทัด 1: ค่าที่ปรึกษา 100,000 + VAT 7% = 107,000
- บรรทัด 2: ค่าเดินทาง (reimbursement) 5,000 + VAT 0% = 5,000
- บิลรวม: 112,000
พบเมื่อผู้ขายเรียกเก็บค่าบริการที่มี VAT พร้อมค่าใช้จ่ายที่จ่ายแทน (ค่าเดินทาง ค่าส่ง ค่าเงินตราต่างประเทศ) ซึ่งเป็น reimbursement ไม่มี VAT
Flow
1
บิล 112,000 — 2 บรรทัดL1: 100k บริการ +VAT 7k · L2: 5k ค่าเดินทาง +VAT 0
2
VAT คำนวณต่อบรรทัดL1: 100k × 7% = 7,000 · L2: 5k × 0% = 0 → รวม 7k
3
ชำระ 112,000Dr AP / Cr Bank + cash-basis VAT swap → Input VAT 7k
4
ภาษีซื้อ +7,000 จากบรรทัด VAT เท่านั้นบรรทัด non-VAT ไม่เคลม Input VAT แต่ยังลงค่าใช้จ่าย
ขั้นตอนที่เก็บมา
ทำไม VAT คำนวณต่อบรรทัด ไม่ใช่ต่อยอดรวม
total_tax ของบิล = ผลรวมของ line_amount × tax_rate / 100 ต่อแต่ละบรรทัด — ไม่ใช่ total_pretax × overall_rate
VAT บรรทัด 1 = 100,000 × 7 / 100 = 7,000
VAT บรรทัด 2 = 5,000 × 0 / 100 = 0
─────────────────────────────────────
รวม VAT = 7,000ยอดบิลรวม = 100,000 + 7,000 + 5,000 + 0 = 112,000 ไม่ใช่ 105,000 × 1.07 = 112,350
ใช้ 0% หรือไม่มี VAT เลย
| สถานการณ์ | tax_rate | ยื่น PP30 |
|---|---|---|
| บริการ/สินค้ามี VAT | 7 | ใช่ พร้อม VAT |
| Reimbursement (เช่น ค่าเดินทางจ่ายแทนลูกค้า) | 0 | ใช่ แต่ไม่มี VAT |
| บริการยกเว้น VAT (เช่น การรักษาพยาบาล) | 0 | ใช่ ในหมวดยกเว้น |
| Out of scope (เช่น ดอกเบี้ยจากธนาคาร) | — (ไม่เพิ่มบรรทัด) | ไม่ — ไม่อยู่ใน PP30 |
ในระบบเรา ตั้ง tax_rate: '0' สำหรับบรรทัดที่อยู่ใน PP30 แต่ไม่มี VAT
สถานะสุดท้าย (หลังชำระ)
| บัญชี | การเปลี่ยนแปลงสุทธิ |
|---|---|
| ค่าใช้จ่าย | +105,000 (รวม 2 บรรทัด) |
| ภาษีซื้อ (เคลมได้) | +7,000 (จากบรรทัด 1) |
| ธนาคาร | −112,000 |
| AP | 0 (ปิด) |