Source: LC concept v0.1 (sheet LC-TH company) · BPE 01.01.07 §6.1–6.4 · FD TAX-ENH-4 (CR-TKT-03) · FD ENH-2 / ENH-3 · training TAX-101 / TAX-301 · knowledge session 7-Oct-2026
ไม่ใช่ทุกช่องใช้กับทุกเอกสาร — ถ้าไม่เกี่ยว ให้เขียน N/A พร้อมเหตุผล เสมอ (เช่น “LC3 blank – MY CoCd”)
① Expected value = เอกสารธุรกิจ (tax invoice, expected ใน script) + KDS · ② System source = master data / config ที่ทำให้ระบบ post ค่านั้น — ถ้า posted ≠ expected ให้ดูข้อ ② ก่อน: master data ผิด = data issue ไม่ใช่ defect
| Field | Expected from | System takes it from | Posted in |
|---|---|---|---|
| Business Place | KDS BUSINESS PLACE_TH · สาขา Client บน tax invoice | J_1BBRANCH · default ของ CoCd หรือ user กรอก | BSEG-BUPLA |
| BP Branch Code | สาขาคู่ค้าบน tax invoice (00000 = HO) | BP master + DFKKBPTAXNUM (TH1/TH3) | บรรทัด vendor/customer TBC field ใน SE11 |
| Tax Code | KDS IDT TAX CODE_ALL · script | PO item (MIRO) · entry (FB60/FB70) · SD condition MWST | BSEG/BSET-MWSKZ |
| Tax Base / Amount | Tax invoice · rate ใน FTXP | FTXP · OB40 | BSET FWBAS/FWSTE · HWBAS/HWSTE · H2… · H3… |
| WHT Type | KDS WHT · TH 3A–3F PND3 · 4A–4F PND53 · 5A/5D PND54 | BP → CoCd → WHT tab · T059P | WITH_ITEM-WITHT, QSREC |
| WHT Code | KDS WHT + ประเภทเงินได้ | BP default / ตอนจ่าย · T059Z | WITH_ITEM-WT_WITHCD |
| Segment | ZTAXB_T04 → 010 → CEPC | GGB1 TAX-ENH-4 | ACDOCA-SEGMENT |
| LC1 / LC2 / LC3 | LC concept + TCURR | GL-ENH-1: OB22 → ZGLX_T02 → ZGLX_T01 | ACDOCA HSL / KSL / OSL |
จาก Tax Posting Field Map (knowledge session 7-Oct-2026) · รู้ว่าผิดที่ชั้นไหน = รู้ว่าต้องส่งใคร
Data issue → แก้ BP / master (CO, BP, MM)
Config issue → Tax config owner (FTXP, OB40, T030K, T059Z) · mapping table → Tax team
Code defect → JIRA ถึง ABAP ของ WRICEF นั้น
| Field | ★ RPT-1 | ★ FRM-1 | ★ ENH-1 | ★ FRM-2 | ★ RPT-2 | RPT-6 | ENH-2 | ENH-4 |
|---|---|---|---|---|---|---|---|---|
| Business Place | ? | ? | ● | |||||
| BP Branch / Tax ID | ● | ? | ● | |||||
| Tax Code | ● | ● | ● | |||||
| Tax Base / Amount | ● | ● | ● | |||||
| Tax GL | ● | ● | ||||||
| WHT Type | ● | ● | ● | ● | ● | |||
| WHT Code | ● | ● | ● | ● | ||||
| WHT Amount | ● | ● | ● | ● | ● | |||
| WHT GL | ● | ● | ● | |||||
| Segment | ● | ● |
| Field | Expected | System source | Posted |
|---|---|---|---|
| Tax GL | KDS / CoA ที่ตกลง | account key MWS / VST → OB40 (T030K, ต้องใช้ KTOPL จาก T001-KTOPL) | ACDOCA tax line |
| WHT Amount | base × rate (หรือ gross-up) | T059Z · timing ตาม T059P | WT_QBSHB / QBSHH (ค่าที่ฟอร์มพิมพ์) / QBSH2 / QBSH3 |
| WHT GL | KDS | OBWW (WIT = payable “Paid Over”) + GRU = gross-up offsetting entry | ACDOCA KTOSL = WIT |
ตั้งค่าตอน posting โดย GL-ENH-1 (LC enhancement): OB22 default → ZGLX_T02 กฎรายบรรทัด → ZGLX_T01 override ตาม doc type (rate เดียวทั้งเอกสาร) BP
THB doc → LC1 = doc amount · USD doc → LC2 = LC3 = doc amount · FC อื่น → แปลงทั้งสามชั้น โดย LC2/LC3 เป็น cross rate ผ่าน THB = DC × ZTH(FC:THB) ÷ ZTH(USD:THB)
CIT_TH → ZTH ดังนั้น LC3 = LC2 ทุกบรรทัด · PITA1_TH / PITA3_TH / PSC_TH / MTJDA → PITB (ฝั่งซื้อ: expense, AP, liability) หรือ PITM (ฝั่งขาย: revenue, AR) เป็น rate รายเดือน C3: GL BPE ใช้ชื่อ PITB/PITS
| Line | LC1 rate @ date |
|---|---|
| Expense / AP | M @ posting date |
| Input VAT / VAT36 | B @ document date −1 |
| WHT at invoice | M @ posting date −1 (“M9”) |
| WHT at payment | M @ posting date (“M9”) |
| AR / sales, output VAT | B @ document date −1 (SD: billing date −1) |
| PO invoice GR/IR & GR<IR expense | @ วันที่ GR เดิม |
| Reversal / clearing | Historical |
บรรทัด AP ของ THB doc: LC2/LC3 @ posting date · บรรทัด AR ของ THB doc: @ document date −1 · “M9” ใน LC concept ยังไม่รู้ความหมาย (ไม่ใช่ rate type ใน TCURR) TBC
กฎทั้งหมดมาจาก LC concept v0.1 + GL-ENH-1 (หัวข้อด้านบน) · ใช้ตั้ง expected ก่อนเปิด SE16N layout /LC_CHECK — ไม่ได้คำนวณตัวเลขแทนระบบ
ST) · ENH-2 (SW) · ENH-3 (SA): THB doc → LC1 = doc amount, LC2 = ZTH, LC3 = ZTH/PITB (deferred output D1 → PITM) · Net VAT clearing (SO) → historical รายบรรทัดZGLX_T01 ให้ LC1 = M, LC3 = PITB ทุกบรรทัด · JD ยังไม่ maintain → account type D → LC1 B, LC3 PITM (C13)/LC_CHECK)CIT_TH: OSL = KSLDOCLN BUZEI RACCT KOART KTOSL SEGMENT PRCTR MWSKZ RWCUR WSL RHCUR HSL RKCUR KSL ROCUR OSL BUDAT BLDAT BLART
ดู RLDNR = 0L ก่อน แล้วค่อย T1
เดิมคือ TAX-ENH-9 → แทนที่ด้วย ENH-4 ผ่าน CR-TKT-03 · สร้างใน GGB1 (program substitution) FD
CEPC / KE53)FI postings ตาม README ของ simulator · กฎ IO (exact IO ชนะ → ไม่งั้นแถว IO ว่าง → doc ไม่มี IO ไม่ match แถวที่มี IO) เป็น สมมติฐาน ที่ต้องยืนยันกับ ABAP TBC · แถวซ้ำใช้แถวแรก · CEPC มีแค่บาง PC ในหน้านี้ — PC อื่นให้ดู KE53
CIT_TH ทั้งหมด| อาการ | สาเหตุที่น่าจะเป็น | ทำอะไร |
|---|---|---|
| FB03 โชว์ segment ของ PC แต่ Z-table บอกอีกค่า | แถว Z สร้างหลังเอกสาร หรือ posting date นอก validity | สร้างทีหลัง = ไม่ใช่ defect · validity ผิด = Tax team แก้ตาราง |
| IR ไม่ตรงกฎ 1–3 | กฎ procurement (copy จาก GR) | เทียบกับ GR ผ่าน PO history |
| Segment ของ PC ไม่เข้ากับธุรกิจ | PC master ผิด | ทีม CO — ไม่ใช่ defect TAX-ENH-4 |
| PC ไม่ตรงกับ cost object ตัวจริง | master ของ CC / WBS / Network | ทีม JVA / CO |
| บรรทัดในเอกสารเดียวได้ segment ต่างกัน | cost object ต่างกัน หรือ splitting ต่อบรรทัด | GL team ถ้าควรเหมือนกัน |
| 0L ≠ T1 / S1 | substitution ไม่วิ่งใน ledger นั้น | Defect TAX-ENH-4 / GL |
| ผิดหลังเช็กทุกข้อแล้ว | โปรแกรม | Defect TAX-ENH-4 พร้อม expected / rule / actual |
| Case | Goods receipt | Invoice receipt (MIRO) |
|---|---|---|
| GR before IR (เดิม) | 009 → 010 → PC | เอา segment ของ GR ที่ยังไม่ reverse ใน PO history (EKBE → FI GR/IR line KTOSL WRX, BSEG-SEGMENT) |
| IR before GR (ใหม่ตาม CR) | เอา segment ของ IR ที่ยังไม่ reverse ใน PO history | 009 → 010 → PC โดยใช้ CoCd, G/L, cost center, IO ของ PO (EKKN) |
| CoCd | Cost center | IO | Segment |
|---|---|---|---|
| TH01 | C_PC08 | — | CIT_TH |
| TH01 | C_PC09 | — | PITA1_TH |
| TH01 | C_PC09 | C40000000141 | CIT_TH |
| 1096 | C_PC10 | — | CIT_TH |
C_PC09 กับ IO อื่น — ตกไปแถว IO ว่าง หรือไปที่ PC? TBCSEGMENT / RECID TBCC-ZLK.D.00.26997.01 → CZLKD002699701) · segment / PC ต้องมาจากตัวจริงนี้ เว้นแต่แถว CC + IO ใน 010 override| Field | กฎ |
|---|---|
| Business Place | TH เท่านั้น · หนึ่งค่าต่อเอกสาร เหมือนกันทุกบรรทัด · ต้องอยู่ใน KDS ของ CoCd · SAP 4 หลัก บนแบบยื่น 5 หลัก · MY/MM = ว่าง · เอกสารไทยไม่มี tax code แต่มี default = ไม่ใช่ defect |
| BP Branch | สาขาของ คู่ค้า (ไม่ใช่ Client) · TH เท่านั้น · ส่งต่อให้ RPT-6 (“Head Office” เมื่อ 00000) |
| Tax code | ดูว่า เหมาะกับ scenario (goods vs service · claimable หรือไม่ · บริการต่างประเทศ → V*) ไม่ใช่แค่ตรงกับ script · MY U1/U2/U3 เป็น NVV (ภาษีอยู่ในบรรทัด cost) · การกระจาย NVV ของ MM TBC |
| Base / amount | base = Σ บรรทัดที่ใช้ code นั้น · amount = base × rate ±0.01 · เช็ก doc currency ก่อน แล้วค่อย LC |
| WHT | หา WIT line ที่ invoice หรือ payment ตาม T059P · recipient type ต้องตรงแบบ (03 / 53 / 54) ไม่งั้นหลุดจาก FRM-1 / ENH-1 · base ไม่รวม VAT · MY/MM หักตอนจ่าย (invoice amount 0) · MY resident คาดว่าไม่มี WHT verify BP |
| Gross-up 5G | พบบนเอกสาร (8084322612 5G/B8 · 2004328281 5G/O7) — สูตรและการรวมใน filter PND54 ของ RPT-1/FRM-1 TBC |
/CHECKDOC — Save As ด้วยชื่อตัวเอง| Material doc (GR/UD/SES/GI) | MIGO display → Doc info → FI Documents |
| Supplier invoice | MIR4 → Follow-on documents |
| Billing | VF03 → Accounting |
| Receipt / clearing | FEBAN → Documents (PA1 on-account, PA2 clearing) หรือ FBL5N cleared items |
| จาก PO | ME23N → PO history |
| ตาราง | BKPF AWTYP MKPF / RMRP / VBRK · AWKEY = doc + year |
| สัญญาณ | GR (MIGO) | IR (MIRO / VIM) |
|---|---|---|
| Doc type | WE | RE |
| BKPF-AWTYP | MKPF | RMRP |
| บรรทัด vendor | ไม่มี | มี (PK 31) |
| ฝั่ง GR/IR | Cr (PK 96) | Dr (PK 86) |
| Assignment ของ GR/IR | เลข PO | เลข PO |
Posting keys ที่เจอบ่อย: 40 / 50 G/L · 31 Cr vendor · 21 / 25 Dr vendor · 01 / 15 customer · 89 / 99 stock · 81 / 91 cost · 86 / 96 GR/IR · JVA: 0J / 1J partner · 2J cash-call offset · 3J cash-call request · ตัวอย่าง PO บริการ 100 + VAT 7%: GR = Dr expense 100 / Cr GR/IR 100 → IR = Dr GR/IR 100 + Dr input VAT 7 / Cr vendor 107 → payment = Dr vendor 107 / Cr bank 104, Cr WHT 3
ZCDS_DOC_TAX_WHT = BKPF ⟕ BSET ⟕ WITH_ITEM on BUKRS + BELNR + GJAHR (outer join · ห้าม key ด้วย BUZEI) → Tx · G/L · base · taxZCDS_TAX_RATE = A003 → KONP on KNUMH → KBETR เป็น per mille (70 = 7%) · ไม่มีแถว = 0% · ต้องเท่ากับ tax ÷ basejoin definition อยู่เฉพาะระบบที่สร้าง — DEV 120 ≠ QAS (ต้องสร้างใหม่ใน QAS) · ตัวอย่าง OX ของ MY: doc 3364322036 base 1,891,555.18 tax 0.00 GL A212X024 · T007S ZTXP_MY/OX “Non-Taxable Output Service Tax”
| TH | MY MY01 | MM MM01 | |
|---|---|---|---|
| Business place / BP branch | Required | Blank | Blank |
| Output codes | O*, DB, S1, ON | O1 6%, O2, O3, O4 −6%, OX | DB 5%, O1 5%, OX |
| Input codes | I*, N*/U*, D*, V* | R1/R2, U1 8%, U2 10%, U3 5% (NVV), UY, M1 | I1 5%, I2 3%, I3 15%, IX, D1–D3, C1 (0% posted / 5% reported) |
| WHT | 3x / 4x / 5x | BA–BE at payment | B0 / B2 at payment |
| Segments | CIT_TH, PITA1_TH, PITA3_TH, PSC_TH, MTJDA | CIT_MY, PSC_MY | CIT_MM, PSC_MM |
| LC1 / LC2 / LC3 | THB / USD / USDTH | MYR / USD / – | T001-WAERS / USD / – |
Malaysia SD billing ที่ใช้ OX ต้องมี Tax Exemption Reason text Z001 สำหรับ MyInvois (DRC, TAX-ENH-11)
1. USD invoice ใน CoCd TH01 segment CIT_TH — LC2 กับ LC3 ควรเป็นเท่าไร?
2. Input VAT บนเอกสาร EUR ใช้ rate LC1 ของวันไหน และเกิดบรรทัดอะไรเพิ่ม?
3. Segment ของบรรทัดมาจากไหน ตามลำดับ?
4. MIRO ที่มาก่อน GR เอา segment จากไหน?
5. เอกสาร stock ของ MY มี LC2 rate ต่างกันรายบรรทัด — เปิด defect ไหม?