业务背景:客户采购部门和供应商签订的价格合同都是含税价体现,如果是13%的进项税,净价100CNY, 税率13%,那么价格合同就会显示113CNY,为含税价格。SAP系统默认要求输入100CNY为净价(不含税价格)。这种情况下,客户要求在SAP系统中也直接输入含税价格113CNY。为了满足客户的特殊要求,我们就需要更改SAP系统原来的默认逻辑,需要使用新的计算公式(例程)来解决。
含税价计算公式:含税价113CNY=不含税价格(净价)100CNY*(1+进项税率13%)
不含税(净价)计算公式:不含税价格(净价)100CNY=含税价113CNY/(1+进项税率13%)
价外进项税计算公式:价外进项税13CNY=不含税价格(净价)100CNY*进项税率13%
解决方案:在采购定价计算方案商引入新的含税价格计算例程,例程=公式=formula,需要开发人员将ABAP代码写入到例程中(已激活),然后在采购定价计算方案中进行绑定。
进项税税率取决于企业的具体情况和所购买的原材料的类别。一般情况下,进项税的税率有3%、6%和17%三种。此外,对于购进农产品的纳税人,原适用10%扣除率的,扣除率调整为9%。纳税人购进用于生产或者委托加工13%税率货物的农产品,按照10%的扣除率计算进项税额。
需要注意的是,增值税一般纳税人发生增值税应税销售行为或者进口货物,原适用16%税率的,税率调整为13%;原适用10%税率的,税率调整为9%。此外,适用13%税率的境外旅客购物离境退税物品,退税率为11%;适用9%税率的境外旅客购物离境退税物品,退税率为8%。
城市维护建设税的税率根据地区的不同分为三档:纳税人所在地在市区的,税率为7%;所在地在县城,镇的,税率为5%;其他地区税率为1%。土地增值税是对有偿转让或处置不动产取得的收入减去"扣除项目"后的"增值收入"按30%-60%的超率累进税率征收的税项。
含税价例程代码如下:
'''
FORM FRM_KONDI_WERT_902.
CASE KOMP-MWSKZ.
WHEN 'J1'. "1%税率
XKOMV-KBETR = 1*1000.
XKWERT = XKOMV-KAWRT * 1 / 101.
WHEN 'J2'. "13%税率
XKOMV-KBETR = 13*1000.
XKWERT = XKOMV-KAWRT * 13 / 130.
WHEN 'J3'." 3%税率
XKOMV-KBETR = 3*1000.
XKWERT = XKOMV-KAWRT * 3 / 103.
WHEN 'J4'." 17%税率
XKOMV-KBETR = 17*1000.
XKWERT = XKOMV-KAWRT * 17 / 170.
WHEN 'J5'." 5%税率
XKOMV-KBETR = 5*1000.
XKWERT = XKOMV-KAWRT * 5 / 105.
WHEN 'J6'." 6%税率
XKOMV-KBETR = 6*1000.
XKWERT = XKOMV-KAWRT * 6 / 106.
WHEN 'J7'." 7%税率
XKOMV-KBETR = 7*1000.
XKWERT = XKOMV-KAWRT * 7 / 107.
WHEN 'J9'." 9%税率
XKOMV-KBETR = 9*1000.
XKWERT = XKOMV-KAWRT * 9 / 109.
WHEN 'J0'." 0%税率
XKWERT = 0.
ENDCASE.
ENDFORM.
'''
例程代码解释:
#1 902例程是用来计算价外税额的,也就是根据采购信息记录或手工输入的含税价格进行计算
#2 902例程会根据不同的税率进行价外含税金额的计算
#3 使用事务码SE11可以查结构KOMP-定价通讯项目,字段MWSKZ-销售/购买税代码
#4 使用事务码SE11可以查结构KOMV-定价通讯-条件记录,字段KBETR-条件金额或百分比
#5 XKWERT 表示价外税额(不含税净价*税率)
#6 XKOMV-KAWRT定价基数,表示含税价格
#7 XKWERT 表示价外税额 = XKOMV-KAWRT定价基数(含税价格) / (1+税率) * 税率
事务码VOFM创建例程:
4处,输入例程编码、例程描述、激活状态显示、应用程序输入M-采购或V-销售
5处,点击“源码”按钮,进入SE38代码编辑界面
6处,程序名称
7处,例程代码显示,如果输入的含税价格有超过3位小数的情况,可以将含税价格扩大1000倍再输入。
'''
FORM FRM_KONDI_WERT_902.
CASE KOMP-MWSKZ.
WHEN 'J1'. "1%税率
XKOMV-KBETR = 1*1000.
XKWERT = XKOMV-KAWRT * 1000 / 101000.
WHEN 'J2'. "13%税率
XKOMV-KBETR = 13*1000.
XKWERT = XKOMV-KAWRT * 130000 / 1130000.
WHEN 'J3'." 3%税率
XKOMV-KBETR = 3*1000.
XKWERT = XKOMV-KAWRT * 30000 / 1030000.
WHEN 'J4'." 17%税率
XKOMV-KBETR = 17*1000.
XKWERT = XKOMV-KAWRT * 170000 / 1170000.
WHEN 'J5'." 5%税率
XKOMV-KBETR = 5*1000.
XKWERT = XKOMV-KAWRT * 50000 / 1050000.
WHEN 'J6'." 6%税率
XKOMV-KBETR = 6*1000.
XKWERT = XKOMV-KAWRT * 60000 / 1060000.
WHEN 'J7'." 7%税率
XKOMV-KBETR = 7*1000.
XKWERT = XKOMV-KAWRT * 70000 / 1070000.
WHEN 'J9'." 9%税率
XKOMV-KBETR = 9*1000.
XKWERT = XKOMV-KAWRT * 90000 / 1090000.
WHEN 'J0'." 0%税率
XKWERT = 0.
ENDCASE.
ENDFORM.
'''
8处,程序激活状态
返回到VOFM例程界面如下:
9处,显示例程还没有被激活,选中需要激活的例程
10处,点击“编辑”按钮,显示下拉列表
11处,选择“激活”按钮,对选中行例程进行激活,弹出TR界面,输入TR编号或新建TR
12处,显示例程已经被激活,勾选表示已激活状态
报错原因分析:902例程SE38程序已经激活,902例程VOFM也已经激活,但是902对应的SE3程序RV64A902,没有在INCLUDE 到RV64ANNN程序中。
解决方案:使用事务码SE38进入程序RV64ANNN
还可以使用SE38程序进行自动更新:RV80HGEN即可修复BUG,而不需要在目标系统中通过VOFM激活例程。该程序的作用是根据表TFRM,TFRMT在RV64ANNN等程序中增加INCLUDE RV64A902这样的代码,如此才能正常运行。
采购定价计算方案-绑定902例程:
这个步骤属于MM模块配置范畴,需要使用SPRO进入。
SPRO路径:SPRO->物料管理->采购->条件->定义价格确认流程->设置计算方案 - 采购
报错:采购定价计算方案中,输入例程902后,显示报错,无法找到对应的例程
选择例程902然后保存。
注意点:条件表创建的编号9xx=存取顺序维护的条件表编号9xx=自定义进项税条件类型绑定的存区顺序9xx=采购价格计算方案增强历程编码9xx 否则找不到对应的历程
完毕!
2024年3月18日 写于杭州