
SAP/ERP系统采购订单上面输入的价格是不含税价格,但国内很多企业跟供应商谈的价格是含税价,所以采购部门一般都会提出系统要能够维护含税价格记录,采购订单要能够录入含税价的需求。 SD销售模块要做含税价,SAP有标准的定价过程可以参考,但是不知道为何采购订单却没有标准的定价过程可以参考,需要顾问自己想办法去配置定价过程来满足这方面需求。 现网上有不少针对这问题的解决方案,总结这些方案基本都是在定价过程中加入折扣的条件类型来把税算出来,作为一个折扣项减去,这样实现PB00或PBXX输入的是含税价,最后得到的采购订单所需的净价。 看过网上一些的方案并结合在项目中实际应用来看,我认为如下方案是比较通用灵活并且是比较符合实际业务需求的。 下面详细介绍下这业务方案的具体实施过程 1.创建一个条件类型 Z001
复制系统标准的折扣条件类型RA00创建一个新的条件类型:Z001,其它参数可以不用修改保持和标准一致即可。
2.将条件类型加入到定价过程
把上面创建的Z001这折扣的条件类型放到定价过程里面。
本例使用定价过程ZRM0001,可以复制标准RM0000创建,然后将步骤1创建的折扣的条件类型Z001放到定价过程里面,具体位置可以根据实际需要放置。
2-1. 【从步骤】/【步骤】:决定计算条件类型Z001对应的折扣金额的基准金额,从步骤1到步骤"空"的值就是PB00或PBXX两个中有效的值(含税价),它用来计算条件类型Z001对应的折扣金额(税金额)。 2-2. 【小计】:填写9

2-3. 【条件金额备选计算例程】:填上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.
|