欢迎来到萧静默的博客

书山有路勤为径,学海无涯苦作舟。

SAP-采购订单取税额

SAP 采购订单税额‌无法直接单字段读取‌,需通过‌税码(EKPO-MWSKZ)关联条件表计算‌或‌直接从 KONV 表提取税金条件值‌;核心路径为:取行项目税码 → 查 A003/KONP 得税率 → 结合净价计算;或直接筛选PRCD_ELEMENTS中税金条件类型(如 MWST)的KBETR。‌‌

1、老的版本使用A003\KNOP获取

EKPOMWSKZ(税码)和 NETPR(净价),通过 A003 关联 KONP 获取税率(KBETR/1000),公式:税额 = (净价 / 单价单位) × (1 + KBETR/1000)

SELECT EKPO~EBELN,
         EKPO~EBELP,
         EKKO~BUKRS,
         T001~BUTXT,
         EKKO~EKORG,
         T024E~EKOTX,
         EKKO~BSART,
         EKKO~LIFNR,
         LFA1~NAME1,
         EKKO~BEDAT,
         EKPO~MATNR,
         MAKT~MAKTX,
         EKPO~MENGE,
         EKPO~MEINS,
         EKPO~PEINH,
         EKPO~NETWR AS SUMPRICE_NO_TAX,"未税总值
         EKPO~BRTWR AS SUMPRICE_TAX, "含税总值
         EKPO~MWSKZ,
*         EKPO~EBELP AS ZTAX,
         EKKO~WAERS,
        CASE WHEN EKPO~PEINH = 0 THEN 0
         ELSE DIVISION( EKPO~NETPR ,EKPO~PEINH,3 ) END AS UNPRICE_NO_TAX, "未税单价
        CASE WHEN EKPO~MENGE = 0 THEN 0
         ELSE DIVISION( EKPO~BRTWR ,EKPO~MENGE,3 ) END AS UNPRICE_TAX,"总金额除以数量=含税单价
         EKKO~LANDS
    FROM EKPO
    INNER JOIN EKKO ON EKKO~EBELN = EKPO~EBELN
    LEFT JOIN MAKT ON MAKT~MATNR = EKPO~MATNR
    LEFT JOIN T024E ON T024E~EKORG = EKKO~EKORG
    LEFT JOIN LFA1 ON LFA1~LIFNR = EKKO~LIFNR
    LEFT JOIN T001 ON T001~BUKRS = EKKO~BUKRS

    WHERE EKKO~EBELN IN @LR_EBELN
          AND  EKKO~BSART IN @LR_BSART
          AND  EKKO~EKORG IN @LR_EKORG
          AND  EKKO~BUKRS IN @LR_BUKRS
          AND  EKKO~LIFNR IN @LR_LIFNR
          AND  EKPO~MATNR IN @LR_MATNR
          AND EKKO~BEDAT IN @LR_DATE
          AND EKPO~LOEKZ <> 'X'           " 排除已删除项目
          AND EKKO~BSTYP = 'F'  "只取采购订单的
       INTO CORRESPONDING FIELDS OF TABLE @T_PURINFO.

这里主要获取EKPO-MWSKZ  税码字段;EKKO-LANDS  国家字段

SELECT SINGLE KNUMH INTO @DATA(LS_KNUMH) FROM A003 WHERE MWSKZ = @LS_PURINFO-MWSKZ AND ALAND = @LS_PURINFO-LANDS.
          SELECT SINGLE KBETR INTO @DATA(LS_KBETR) FROM KONP WHERE KNUMH = @LS_KNUMH.

"含税单价
           <FS_ALV>-ZHSDJ = <FS_ALV>-NETPR / <FS_ALV>-KPEIN * ( 1 + LS_KBETR / 1000 ).

2、新版本,直接取数法(推荐,若税金已作为独立条件行)‌:查询表PRCD_ELEMENTS,关联 EKKO-KNUMVEKPO-EBELP,筛选条件类型 KSCHL 为税金代码(标准通常为 MWST 或企业自定义如 YMWS),金额字段取 KWERT(总金额)或按 KBETR/KPEIN 换算单价。

SELECT A~EBELN, A~EBELP ,C~KNUMV ,B~KPOSN ,B~KBETR, B~KPEIN
       FROM EKPO AS A
INNER JOIN EKKO AS C ON EKKO~EBELN = EKPO~EBELN
       INNER JOIN PRCD_ELEMENTS AS B ON A~KNUMV  = B~KNUMV  AND A~EBELP = SUBSTRING( B~KPOSN,2,5 )
      WHERE  B~KSCHL = 'ZP00' "这里根据实际配置调整
        AND KBETR NE 0
      INTO TABLE @DATA(LT_PRCD_ELEMENTS).

 

 

 
posted @ 2026-07-13 09:53  萧静默  阅读(39)  评论(0)    收藏  举报