#doctypes#purchase
จ่ายเงินล่วงหน้า (10) / ยกมา (9010) / รับคืน (20)
ใช้เมื่อไร
- 10 "จ่ายเงินล่วงหน้า" (PD, transMenuMap.ts:159) จ่ายเงินให้ผู้ขายก่อนรับสินค้า อ้างใบสั่งซื้อ 6 ได้
- 9010 "จ่ายเงินล่วงหน้ายกมา" (PDB, transMenuMap.ts:145) ใช้บันทึกยอดยกมา
- 20 "รับคืนจ่ายเงินล่วงหน้า" (PDR, transMenuMap.ts:233) ใช้รับเงินคืน อ้างใบ 10
trans_flag/ตาราง
- หัวเอกสารอยู่ใน หัวเอกสารสินค้า/ซื้อ/ขาย (ic_trans) ส่วนบรรทัดเป็นแถว "รายละเอียด + จำนวนเงิน" ใน รายการบรรทัดใบวางบิล/ชำระหนี้ (ap_ar_trans_detail) ไม่ใช่รายการสินค้า (
depositFlagstrans.go:219) - กลุ่ม
advancePurchaseใช้ flag 10/9010, เอกสารคืน 20, doc_type 5 และบัญชี 115710 (trans_deposit.go:38)
ฟิลด์/แท็บบนหน้าจอ
- 9010: party, depositTerm ไม่มีแท็บ (FLAG_SPEC transLayouts.ts:70)
- 10: party, depositTerm แท็บ pay, gl (transLayouts.ts:71)
- 20: party, refDoc, depositRef, depositTerm แท็บ pay, gl (transLayouts.ts:72) ช่องอ้างอิงชื่อ "เลขที่ใบจ่ายล่วงหน้า" (
DEPOSIT_REF_LABELtransLayouts.ts:56) - ทั้งสาม flag ไม่มีช่อง inquiry จึงเปิดแท็บชำระเสมอ (
payTabEnabledpay_check.go:36)
ผลต่อสต็อก
ไม่มี เพราะไม่อยู่ใน stockRowsSQL (stock_rebuild.go:18)
ผลต่อภาษี (VAT/WHT)
- ไม่มี VAT: กลุ่มล่วงหน้าไม่มีช่องอัตราภาษี จึงไม่อยู่ใน
depositVatFlags(trans.go:223) และไม่อยู่ในtransVatTabs(trans_tax.go:37) - ไม่มี WHT: ไม่อยู่ใน
transWhtParty(trans_tax.go:48)
การลงบัญชี
ใช้ standard GL (service.go:2185)
| flag | Dr | Cr |
|---|---|---|
| 10 | 115710 (ยอดรวม) | เงินที่จ่ายตามแท็บชำระ (payTenders) |
| 20 | เงินที่รับตามแท็บชำระ | 115710 |
| 9010 | ไม่ลง GL (ไม่อยู่ใน glRebuildTransFlags service.go:1731) |
ดูรายละเอียดเพิ่มที่ เงินมัดจำและเงินล่วงหน้า (Deposits & Advances) และ แท็บรับ/จ่ายเงิน และการชำระหนี้ตามบิล (Payment Tab & Bill Settlement)
เอกสารต้นทาง-ปลายทาง
- ต้นทาง: ใบสั่งซื้อ 6 (transMenuMap.ts:159)
- ยอดคงเหลือ = ยอดของใบ 10 − ใบคืน 20 ที่ doc_ref ชี้มา − แถวที่นำไปใช้ใน cb_trans_detail (
depositBalanceSQLtrans_deposit.go:65) - ใบกำกับที่ตัดยอดล่วงหน้า doc_type 5: (ไม่พบในโค้ดที่อ่าน) เพราะ
depositKinds(trans_deposit.go:48) ผูกใบซื้อไว้กับกลุ่มมัดจำเท่านั้น
ยกเลิก/แก้ไข
- ยกเลิก 10 ด้วย 150 และยกเลิก 20 ด้วย 161 (
cancelOrigFlagsdoc_cancel.go:51) - 9010 ไม่มีคู่ยกเลิกใน
cancelOrigFlags(ไม่พบในโค้ด) - ลบใบที่ถูกใช้แล้วหรือมีใบคืนอ้างอยู่ไม่ได้ (
refuseUsedDepositDeletetrans_deposit.go:246)
ข้อควรระวัง
- บัญชี 115710 เป็นรหัส hardcode ถ้าผังบัญชีไม่มีรหัสนี้จะไปลงบัญชีพัก (
resolveChartAccountservice.go:1755)
ที่มาในโค้ด
frontend/account/tabs/transMenuMap.ts:145/:159/:233เมนูfrontend/account/transaction/transLayouts.ts:70FLAG_SPEC 9010/10/20backend/internal/application/process/trans.go:219depositFlags /:223depositVatFlagsbackend/internal/application/process/trans_deposit.go:38depositKindbackend/internal/application/process/service.go:2185GL มัดจำ/ล่วงหน้าbackend/internal/application/process/doc_cancel.go:51ยกเลิก 150/161