含税价的解决方案"/>
SAP采购订单使用含税价的解决方案
SAP系统采购订单上面输入的价格是不含税价格,但国内很多企业跟供应商谈的价格是含税价,所以采购部门一般都会提出系统要能够维护含税价格记录,采购订单要能够录入含税价的需求。SD销售模块要做含税价,SAP有标准的定价过程可以参考,但是不知道为何采购订单却没有标准的定价过程可以参考,需要顾问自己想办法去配置定价过程来满足这方面需求。现网上有不少针对这问题的解决方案,总结这些方案基本都是在定价过程中加入折扣的条件类型来把税算出来,作为一个折扣项减去,这样实现PB00或PBXX输入的是含税价,最后得到的采购订单所需的净价。看过网上一些的方案并结合在项目中实际应用来看,我综合了网上很多方法,特别整理了一下,之前参考网上的方法一直没有成功后来才发现很多都少说明了定价值激活的问题。
下面详细介绍下这业务方案的具体实施过程
1.创建一个条件类型 Z001
根据条件类型RA00创建一个新的条件类型:Z001,其它参数可以不用修改保持和标准一致即可。
2.将条件类型加入到定价过程
把上面创建的Z001这折扣的条件类型放到定价过程里面。注意箭头的参数!
本例使用定价过程ZRM0000,可以复制标准RM0000创建,然后将步骤1创建的折扣的条件类型Z001放到定价过程里面,具体位置可以根据实际需要放置。
条件金额备选计算例程】:填上911,这个例程需要提前创建好,例程号码可以900-999都行。创建计算税额的例程(事务码:VOFM),具体可按如下步骤操作。
应用程序填写M,表示采购定价例程。然后在如下界面增加计算程序(如下图)
最后激活此例程即可。注意一定是两次激活,程序要激活,外面还需要激活!
第二步激活,保证活动的已打勾!
此例程源代码如下:
FORM FRM_KONDI_WERT_911.
*{ INSERT S4HK919394 1
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.
*} INSERT
ENDFORM.
备注:以上代码来源于网络,因多次转载,无法确定原作者和声明出处,如有侵权联系删除。
4.将此定价过程分配给对应采购组织
5.实际效果测试:
更多推荐
SAP采购订单使用含税价的解决方案
发布评论