获取采购参考价后按单位换算率换算单价
@[TOC](目录)
### 背景
物料在系统中存在多单位,在采购订单上录入的计价单位为A单位,在其他单据例如采购入库单上录入的计价单位为B单位,想在采购入库单上获取该物料在采购订单上基于A单位的最新价格,然后需要换算成B单位的价格使用
### 步骤
1. 在采购入库单上新增两对单位和单价字段(【取价单位】、【取价单位单价】、【目标单位】、【目标单位单价】)!
![1、在取价单据上新增两对单位和单价字段.webp](/download/0100650a4820c613460ebdd6703a00cc8e61.webp)
2. 在取价单位字段上配置获取采购参考价服务
![2、在取价单位字段上配置获取采购参考价服务.webp](/download/0100e718ac687c9044bb8cad9dcb55e32845.webp)
3. 表单插件注册python脚本,通过值更新事件获取物料转换率并计算【目标单位单价】
![3、表单插件注册python脚本.webp](/download/0100d7e04fb7f0cf4bd89fb2627f71d4b333.webp)
### Python脚本
```python
import clr
clr.AddReference('mscorlib')
clr.AddReference('Kingdee.K3.Core')
clr.AddReference('Kingdee.K3.BD.ServiceHelper')
from System import *
from Kingdee.K3.BD.ServiceHelper import *
from Kingdee.K3.Core.BD.ServiceArgs import *
def DataChanged(e):
#判断是否【取价单位】、【取价单价】、【目标单位】三个中的任意一个字段发生改变
if e.Field.Key == "F_SXIM_UnitID" or e.Field.Key == "F_SXIM_Price" or e.Field.Key == "F_SXIM_UnitID1":
mate = this.View.Model.GetValue("FMaterialId",e.Row)#物料编码
un1 = this.View.Model.GetValue("F_SXIM_UnitID",e.Row)#取价单位
un1P = this.View.Model.GetValue("F_SXIM_Price",e.Row)#取价单位单价
un2 = this.View.Model.GetValue("F_SXIM_UnitID1",e.Row)#目标单位
#判断上述4个字段是否都不为空
if mate != None and un1 != None and un1P > 0 and un2 != None:
mate_id = mate["Id"]#物料Id
un1_id = un1["Id"]#取价单位Id
un2_id = un2["Id"]#目标单位Id
#获取单位换算后的目标单位单价
un2P = getConvertRate(mate_id,un2_id,un1_id,un1P)
this.View.Model.SetValue("F_SXIM_Price1",un2P,e.Row)#设置目标单位单价字段
def getConvertRate(materialId, sourceUnitId,desUnitId,sourceQty):
if sourceUnitId == desUnitId:
return sourceQty
rateArg = GetUnitConvertRateArgs()
rateArg.MaterialId = materialId
rateArg.SourceUnitId = sourceUnitId
rateArg.DestUnitId = desUnitId
rate = UnitConvertServiceHelper.GetUnitConvertRate(this.Context,rateArg)
return rate.ConvertQty(sourceQty)
```
### 效果展示
1. 采购订单历史数据
![4、参数价格.webp](/download/010020e104c8954342dfa48b4bb0dc740dec.webp)
2. 测试数据1:选择取价单位自动获取取价单位单价
![5、测试数据1选择取价单位自动获取取价单位单价.webp](/download/0100810451e80b334c42ad1b18bd0efd8dbe.webp)
测试数据1:选择目标单位换算目标价格
![6、测试数据1选择目标单位换算目标价格.webp](/download/010033509f30027c44e686ebd932b233db84.webp)
3. 测试数据2:选择取价单位自动获取取价单位单价
![7、测试数据2选择取价单位自动获取取价单位单价.webp](/download/01002ba29e6d436e42749f3b24b300f0cb08.webp)
测试数据2:选择目标单位换算目标价格
![8、测试数据2选择目标单位换算目标价格.webp](/download/01004521d5cf66034b4983d7e2b0fa3ef8e2.webp)
**其他更多文章入口:**[https://wenku.my7c.com/link/s/lbRPP](https://wenku.my7c.com/link/s/lbRPP)
获取采购参考价后按单位换算率换算单价
@[TOC](目录)### 背景物料在系统中存在多单位,在采购订单上录入的计价单位为A单位,在其他单据例如采购入库单上录入的计价单位为B单位,...
点击下载文档
本文2024-09-16 19:01:15发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-25886.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章