กลับรายการเคส

เคสที่ 20 — AR ของขาดสต็อก + ทดแทนสินค้า + มัดจำ 100%

เคสที่ 20 — AR: SO 2 หน่วย Product A → รับมัดจำ 100% → DO (1 A + 1 B ทดแทน) → ใบกำกับภาษี PAID

ตัวเลข: SO 214,000 (200,000 + VAT 14,000) มัดจำ 100% 214,000

สถานการณ์: ลูกค้าสั่ง Product A 2 ชิ้น โอนเงิน 100% พร้อมรับใบกำกับภาษีของเงินมัดจำ ตอน picking พบว่า Product A มีเหลือแค่ 1 ชิ้น → ทดแทนด้วย Product B (ราคาเท่ากัน) 1 ชิ้น ลูกค้ายอมรับ

Flow

1
SO อนุมัติ2 × Product A = 214,000
2
รับมัดจำ 100% = 214,000ออกใบกำกับภาษีของเงินมัดจำ §78
3
DO อนุมัติ — 1 × A + 1 × B ทดแทน
4
ใบกำกับภาษี 214,000 — หักมัดจำ 100%→ PAID, VAT ไม่บันทึกซ้ำ
5
ปิด SO ครบ

ขั้นตอนที่เก็บมา

ทำไมใบกำกับภาษีไม่มี Output VAT

VAT 14,000 ได้ออกไว้บนใบกำกับภาษีของเงินมัดจำตอนรับเงินแล้ว — ระบบใช้กลไก totalAlreadyRealisedVAT ใน invoice_service.go ลบส่วน Output VAT บนใบกำกับภาษีหลักให้เหลือศูนย์ ป้องกันการบันทึก VAT ซ้ำ ใบกำกับภาษีตัวที่ออกหลัง DO จึงทำหน้าที่ รับรู้รายได้ เท่านั้น (Dr Customer Advances / Cr Revenue)

การทดแทนสินค้า

เนื่องจาก DO ผูกกับ SO ผ่าน source_so_id แต่บรรทัด DO ลิงก์ผลิตภัณฑ์เดี่ยวๆ ระบบยอมให้ DO และใบกำกับภาษีมีบรรทัดที่ ผลิตภัณฑ์ต่างจาก SO ได้ — เป็นการรองรับ short-pick + substitute โดยไม่ต้องสร้าง CN/รีเฟิร์น ใบกำกับภาษีที่ออกจะแสดงชื่อสินค้าจริงตามที่ส่งมอบ (1 A + 1 B)

สถานะสุดท้าย

บัญชีการเปลี่ยนแปลงสุทธิ
ธนาคาร+214,000
รายได้+200,000
Output VAT+14,000 (จากใบกำกับภาษีของเงินมัดจำ)
COGS+150,000 (จาก DO 2 ชิ้น × ต้นทุน 75,000)
สินค้าคงคลัง (A + B)−150,000
Customer Advances, AR, DO/Invoice clearing0

ถ้าลูกค้าไม่รับทดแทน

ถ้าลูกค้าต้องการเงินคืนสำหรับชิ้นที่ขาด ต้องผ่านขั้นตอน:

  1. DO ลด qty เหลือ 1 ชิ้น (ขายจริงเฉพาะที่ส่งได้)
  2. ใบกำกับภาษี 107,000 หักมัดจำเพียงครึ่ง — เหลือมัดจำ 107,000 ค้าง
  3. ออกใบลดหนี้ (CN) เพื่อนำมัดจำคงเหลือกลับคืนลูกค้า (เคสที่ 7 เป็นแม่แบบ)
  4. REFUND_TO_CUSTOMER receipt คืนเงิน 107,000

ก่อนหน้า: เคสที่ 14 ← · ← รายการเคส