เคสที่ 27 — AR: Pre-order Invoice → ปิดบัญชี → ลูกค้าคืน 1 ชิ้น → CN → REFUND_TO_CUSTOMER
ตัวเลข: SO 2 ชิ้น × 100,000 = 214,000 → รับชำระเต็ม → คืน 1 ชิ้น (มูลค่า 107,000)
สถานการณ์: ใช้ pre-order Invoice ขายเชื่อแบบ case-25 → ส่งของ → ลูกค้าจ่ายเต็ม → ตรวจพบสินค้าชิ้นหนึ่งบกพร่อง ขอคืน + คืนเงิน
Flow
ขั้นตอนที่เก็บมา
Tax Invoice Scope — ไม่ใช้ (ไม่มี Receipt ก่อน)
เคสนี้ ไม่มีการรับเงินมัดจำก่อน (เริ่มต้นที่ Invoice ขายเชื่อ) — เลยไม่มี Receipt ที่ต้องเลือก scope ตอนออกใบกำกับภาษี:
- IssueTaxInvoice บน Invoice → ออก "ใบกำกับภาษี (เต็มรูป) / Tax Invoice §86/4" แบบมาตรฐาน
- ไม่มี section "หักเงินมัดจำ" ใน PDF (ไม่มีเงินมัดจำมาก่อน)
- CN ที่ออกตอนคืนสินค้าจะลดยอดของใบนี้ตรง ๆ
⚠ หมายเหตุ: pattern "Pre-order ขายเชื่อ + ไม่มีมัดจำ" (case-25) ถูกถอนออกแล้วเพราะไม่สมจริงในตลาด SME ไทย — ผู้ขายมักรอให้รับมัดจำหรือส่งของจริงก่อนถึงจะออกใบแจ้งหนี้ Pre-order ของ case-27 นี้ก็อยู่ในข่ายเดียวกัน อาจแก้ในเซสชั่นถัดไป (ใส่มัดจำ 50% เพิ่มก่อน RTV scenario)
ทำไม "การคืนสินค้าหลังรับรู้รายได้" ของ pre-order ใช้ pattern เดียวกับ Invoice ปกติ
ที่ขั้นรับรู้รายได้ (step 5): pending_revenue_amount = 0 + Pre-order Tag เคลียร์ — ใบแจ้งหนี้ "ใช้ชีวิตปกติ" แล้ว ขั้น CR → CN → REFUND ตามมาตรฐาน เหมือน case-07 (refund) ทุกประการ ไม่มี logic พิเศษ
Scenario B (REFUND_TO_CUSTOMER) — คืนเป็นเงินสด
ใช้ source_customer_return_id ผูก CN กับ CR — backend route ยอด 107,000 ไปบัญชี Customer Refund Payable (ไม่ใช่ AR) แล้ว REFUND_TO_CUSTOMER receipt จ่ายล้างจากบัญชีนั้น
ทางเลือก Scenario A (apply to next invoice) — case-08 — ไม่ครอบคลุมในเคสนี้
สถานะสุดท้าย
| บัญชี | สุทธิตลอด chain |
|---|---|
| ธนาคาร | +107,000 (รับ 214k - คืน 107k) |
| ลูกหนี้ (AR) | 0 |
| รายได้ | +100,000 สุทธิ (200k recognised - 100k CN) |
| Output VAT | +7,000 สุทธิ |
| COGS, สินค้าคงคลัง | สุทธิ 1 ชิ้น |
| Customer Refund Payable | 0 |