经过研究发现,折扣范围是金蝶商贸版程序本身做的限制,没有提供调整参数,也没有隐藏的参数设置,因此这个限制本身是无法绕过去的。当时我考虑了一个变通的处理方法,即针对溢价销售的,折扣还调整为100%,但销售单价给调整上去,这样总销售金额不变。至于真实折扣,则写入到单据体自定义字段1。
图1、第一种思路的实现效果图
跟伙伴沟通后,伙伴又征求用户意见。用户说价格是公司统一制定的,不能调整,必须要在单据上显示公司定价和折扣率。那么刚才的变通处理思路就不行了,但是单据内置的折扣率字段肯定不能用,因为它不能超过100%的折扣。
那么解决之道就是,我们放弃单据内置的折扣率字段,自己做一个折扣率和折扣额字段。
步骤如下:
1、将单据体自定义字段1修改为“用户折扣率”,自定义字段2修改为“用户折扣额”。
2、在后台修改这两个字段的显示格式为百分比型和数值型。
3、开发插件,实现折扣计算,以及关联的销售金额、税额、价税合计计算。
4、同时插件还要处理修改发票类型、调整数量、价格、税率等情况,实现自动重算。
图2、第二种思路的实现效果图
运算逻辑:
discountRate:折扣率
discount:折扣额
saleAmount:销售金额
price:销售单价
qty:销售数量
taxRate:税率
taxAmount:税额
total:价税合计
discount=price*qty*(1-discountRate) //折扣额=数量*单价*(1-折扣率)
saleAmount=price*qty-discount //销售金额=数量*单价-折扣额
taxAmount=saleAmount*taxRate //税额=销售金额*税率
total=saleAmount+taxAmount //价税合计=销售金额+税额
以上全部符合商贸版本身的运算逻辑,无非是折扣率的取数来源不同。
通过以上开发,完美实现了金蝶商贸版销售单处理折扣率超过100%的销售业务,并与其他各模块数据衔接正常。
题外话:商贸版插件接入的操作比较复杂,它不像KIS专业版,每个插件占一条记录,以索引号确定调用先后顺序。商贸版是所有插件在同一个字段里,不同事务类型以|分隔,相同事务类型内的不同插件以;分隔,用=分隔事务类型名称和具体插件内容,结构上比较复杂。因此用SQL语句直接接入的话,你就要针对这个字符串进行很多处理,然后再组合起来,再Update,相当麻烦。
因此我给伙伴开发的插件,都提供一个专用的接入工具。
只需轻轻点击,自动接入插件。
咨询电话:027-84233202
公 司:湖北微信科技有限公司