SAP采购价税分离(转)

一般国内的采购都是以含税价(价外税),SAP的标准功能采购订单价格是净价,如果要通过含税价计算不含税价需要通过配置移动类型、增加例程。

  • 增加例程:
    VOFM->公式->定价值

  • 创建新的例程,维护应用程序

  • 选中新增的例程,点击原文本,编辑例程代码,以下为从其他网站找到的例程代码FORM

frm_kondi_wert_998.

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. " FORM FRM_KONDI_WERT_998.

定价等级:条件类型的分类,决定了条件类型属于税,折扣中的哪一类。
正负:该条件类型的值是正数、负数
计算类型:该值是百分数,值,百分比;
舍入规则:商业:四舍五入;
向上取整:无论最后以为是几都入一位;
向下取整:无论最后以为是几都舍一位;

  • 定义计算方案SPRO-物料管理-采购-条件-定义价格确认流程-定义条件类型复制RM000创建新的计算方案ZWH01,维护条件类型Z001:进项税;商品不含税价

计算类型:即定价例程,维护刚才的定价例程
步骤:计算方案的步骤,一般不同类型的条件类型间隔都为10,这样如果需要对某个条件类型进行计算,可以在中间增加;
计数项:同一类条件类型的编号,比如针对运费做不同维度的计算,可以用计数来区分;
从:如果只维护从,例如1,表示按照步骤1的条件类型做计算;
到:维护从、到,例如从1到5,表示累计从步骤1到5的条件类型;
统计:选中表示该值不参与计算;

  • 创建新的采购订单测试效果

含税价PBXX:1170=117*10 进项
税率:J1:17% 进项税Z001:117-117/1.13=170净价:1170-170=1000

测试通过!