SAP MM 采购订单含税价实现方式

作者:郑德鼎 约 4 分钟阅读 更新日期:2024-02-22 2 年前更新 标签:MM, 物料管理

SAP MM 采购订单含税价实现方式

在很多企业里,采购跟供应商谈定的价格是含税价。采购订单价格一般都是通过含税价来实现的,但是SAP的标准功能要求采购订单上面输入的价格是一个净价,即不含税价。如果客户不使用净价做维护,那么就要使用含税价。

实现方式可以考虑:采购单输入的采购价格类型是PB00或者PBXX,是一个含税价。只要再做另外一个条件类型把税算出来,作为一个折扣项减去,最后得到的就是净价了。

按照这个思路我们来做。首先做一个条件类型ZTAX,折扣型的,负数。

然后再把这个折扣的条件类型放到定价过程里面,例如就使用标准的RM0000

有几个地方要注意:

1. From - to这里面要得到的是含税的总价。就直接参考step 1 -即PB00或PBXX

2. Subtotal一定要写9,9才会计算到net value里面去

3. 新建一个calculation formula,比如905.因为这个条件类型需要我们通过税码自己计算出来,而不是通过存取顺序维护条件记录的方式计算出来。

下面就是公式的内容了。

*&---------------------------------------------------------------------*

*&     Form  FRM_KONDI_WERT_905

*&---------------------------------------------------------------------*

*      text

*----------------------------------------------------------------------*

FORM frm_kondi_wert_905.
DATA: l_kbetr LIKE konp-kbetr.    "Tax Rate
DATA: l_krech LIKE t685a-krech.   "Inclusive or Exclusive
DATA: l_knumh LIKE a003-knumh.    "Condition Record Number
DATA: l_kschl LIKE a003-kschl.    "Condition Type
DATA: l_kappl(2) TYPE c VALUE 'TX'. "Application

• Get condition type and condition record

SELECT SINGLE knumh kschl

FROM a003

INTO (l_knumh,l_kschl)

WHERE kappl = l_kappl

AND aland = komk-aland

AND mwskz = komp-mwskz.

IF sy-subrc = 0.

• Get condition record value

SELECT SINGLE kbetr

INTO l_kbetr

FROM konp

WHERE knumh = l_knumh.

IF sy-subrc = 0.
SELECT SINGLE krech

INTO l_krech

FROM t685a

WHERE kschl = l_kschl.

• Set Condition Value

IF sy-subrc = 0.
IF l_krech = 'A'. "Tax Excluded

xkwert = -1 * xkomv-kawrt * l_kbetr / ( 100000 + l_kbetr ).

ELSEIF l_krech = 'I'. "Tax Included

xkwert = -1 * xkomv-kawrt * l_kbetr  / 100000.

ENDIF.
ENDIF.

l_kschl = xkomv-kschl.

• Set Condition Amount

LOOP AT xkomv WHERE kschl = l_kschl.

xkomv-kbetr = l_kbetr * -1.

ENDLOOP.

ELSE.

• Set Condition Value

xkwert = 0.

l_kschl = xkomv-kschl.

• Set Condition Amount

LOOP AT xkomv WHERE kschl = l_kschl.

xkomv-kbetr = 0.

ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.                 "FRM_KONDI_WERT_905

然后就可以了,做个采购订单,变换税率,ZTAX就会自动根据税码里面配置的金额发生变化。

这个公式里面涉及到了一个'A'和'I'的问题。A是价外税,I是价内税。举例来说:同样100块的含税价,17%的税率,如果按A的方式,那么税就是100/1.17*0.17 = 14.53,净价就是85.47.而如果是I的方式,税就是100*0.17 = 17,净价就是83

一般I这种方式在未加工农产品采购的时候会使用,多半是13%的税率,叫扣除率。

V1税码:价外税15%

输入含税价115,得到净价100。

W1税码价内税 13%

------------------------------------END-------------------------------

1、税率计算

步骤一、A003-KAPPL='TX',A003-ALAND='CN',A003-MWSKZ=EKPO-MWSKZ,取A003-KNUMH

步骤二、再根据KONP-KNUMH=A003-KNUMH,KONP-KOPOS='01',取KONP-KBETR

采购税率=KONP-KBETR/1000*100%

2、单价取值

步骤一、 根据采购订单号找到条件号 EKKO~KNUMV 再根据条件号和采购项目号到表PRCD_ELEMENTS找 PRCD_ELEMENTS~KINAK =空

步骤二、根据EKKO-KNUMV = PRCD_ELEMENTS-KNUMV,PRCD_ELEMENTS~KINAK =空,PRCD_ELEMENTS-KSCHL =PB00或者PBXX,取值KBETR/ KPEIN(金额/定价单位)*分母/分子

————————————————

版权声明:本文为CSDN博主「lewisking」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lewisking/article/details/108794844

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP MM 采购订单含税价实现方式.docx」整理生成,仅用于内部技术分享与学习交流。