换算率问题总结原创
金蝶云社区-邱育华
邱育华
57人赞赏了该文章 2870次浏览 未经作者许可,禁止转载编辑于2022年05月06日 17:58:44

多单位和换算率的问题,近期处理问题时梳理了相关的业务逻辑,记录一下自己的理解


一、【相关概念】

  1. K/3 Cloud多单位方案实现介绍说明: https://vip.kingdee.com/article/15637

  2. 跨组的多计量单位

  3. 单位、基本单位、辅单位

  4. 库存单位、销售单位、采购单位

  5. 计量单位组

  6. 物料单位换算

  7. 换算类型:固定、浮动


新增物料时,销售单位、库存单位、采购单位可以不一致,但是要在同一计量单位组内。维护自定义换算率时要以【基本计量单位】为准,若一个物料需要存在不同计量单位组中的单位需要换算,那么需要使用【物料换算单位】


计量单位组与物料换算单位的区别:

  • 计量单位组是实现:同一计量单位组内的不同单位以【基本计量单位】换算;

  • 物料换算单位是实现:位于不同计量单位组的两个无关联的单位,建立直接换算关系;



【计量单位有点乱,我来帮您理一理!】


1.jpg


2.jpg


二、【问题整理】

问题1:一个物料编码,启用批次管理。在同一个物料中,有不同的批号,每个批号的换算率都不一样。在单据中怎么处理

  • 物料启用了辅单位,且物料单位换算配置了换算类型为“浮动”,单据上是可以自由输入数量,从而变相实现了每个批号的物料是不同的换算率了


问题2:如何把换算率携带到单据,是为了实现在某张单据的一个物料的换算率的修改

  • 物料启用了辅单位,且物料单位换算配置了换算类型为“浮动”,单据上是可以自由输入各单位数量,根据换算关系自动换算出其余单位数量,这已经变相的实现了自由换算率了,至于换算率字段,可以自己扩展,配置值更新事件,计算赋值,这应该算是变相实现了吧


问题3:计量单位什么时候固定换算,什么时候是浮动换算

  • 一个计量单位组内只能是固定换算,且每个组有唯一的基准计量单位,相关单位的换算都以该单位作为基准的换算关系, 跨计量单位组才可以是浮动换算,而且浮动换算针对具体的物料,在物料单位换算里设置。当物料浮动换算时,入库的实际数量与换算得到的数量是可以取不同值的。


问题4:换算率修改了以后,对历史数据有没有影响?

  • 之前计算好保存下来的就没影响,比如单据上的数量,基本单位数量,即时库存里的基本单位数量等;

查询的时候先算的就有影响,比如即时库存的库存单位数量,报表里的常用单位数量等


问题5:计量单位列表 和 物料单位换算列表 的换算有什么区别

  • 计量单位按计量单位组进行分组,每个组有唯一的基准计量单位,单据分录根据物料对应的单位,结合计量单位的换算分子分母,进行组内数量换算,若物料设置有辅助单位,且"物料单位换算列表"中针对该物料设置有换算关系,则形成"跨组的多计量单位"换算关系,辅助单位取换算列表中的换算比例进行换算


问题6:物料单位换算 中 固定和浮动 换算有什么区别,如何使用

  • 启用辅单位,配置物料单位换算关系,浮动换算: 单据加载辅单位信息,自由输入辅单位数量,数量、基本单位数量,不做变化

  • 启用辅单位,配置物料单位换算关系,固定换算: 单据加载辅单位信息,自由输入辅单位数量,数量、基本单位数量,根据换算率变化


【物料单位换算和计量单位组之间的关系?】

  • 在计量单位组里面设置时,换算关系的设置范围局限在一个计量组内,只能用基本单位与同一计量组的其他单位进行换算。  在设置物料时,先设置该物料对应的基本单位是哪一个(同时也指定了该物料的单位组,因为基本单位与单位组是一一对应的,每个单位组都有唯一的一个基本单位),然后再选择库存单位时,就只能选择与基本单位在同一单位组的其他单位。

  • 跨计量组的设置,星空也支持,但是是在物料单位那个地方设置,按每个物料一种跨单位组的对应方式。

  • 计量单位组规范用法:按照不同的计量场景,分别对多个计量单位进行分组,每个单位组存在一个基本单位,其他非基本单位都与基本单位存在换算关系,系统就能够根据换算关系去计算同一单位组的任两个单位的换算了。常见的如按数量(如个支把件套台卷筒副片盘),按体积(毫升,升),按长度(厘米,米,千米,光年),按重量(吨,千克,公斤,市斤)等


辅单位与基本单位为固定换算

如1kg=1000g

同一个计量单位组内只能是固定换算。


辅单位与基本单位为浮动换算

如1pcs=1kg,1pcs=2kg,1pcs=0.5kg,......

跨计量单位组才可以是浮动换算,如pcs在数量组,kg在重量组。

浮动换算针对具体的物料,在物料单位换算里设置。

根据物料设置的换算方向,首次录入数量或辅单位数量触发计算对方数量,修改对方数量时不自动换算。


三、【单据分析】

以其他入库单为例,单据中有 "单位、实收数量、基本单位、实收数量(基本单位)、辅单位、实收数量(辅单位)", 分析各单位及数量的换算关系


4.png

1.png


5.png


1、未启用辅单位: 单据无法加载辅单位信息,不存在辅单位数量换算

2、启用辅单位,未配置物料单位换算关系: 单据无法加载辅单位信息,不存在辅单位数量换算

3、启用辅单位,配置物料单位换算关系,浮动换算: 单据加载辅单位信息,自由输入辅单位数量,数量、基本单位数量,不做变化

4、启用辅单位,配置物料单位换算关系,固定换算: 单据加载辅单位信息,自由输入辅单位数量,数量、基本单位数量,根据换算率变化


根据BOS上对应配置的实体服务规则和值更新事件, 更改相关值时,断点触发系统服务函数QTYConversion{params}


3.png


2.png

单位(值更新事件) QTYConversion{FQty,FBASEQTY,FMATERIALID|}

1、FBaseQty,FQty,FMaterialId;FExtAuxUnitQty,FBaseQty,FMaterialId;FSecQty,FExtAuxUnitQty,FMaterialId|

2、FQty,FBASEQTY,FMATERIALID|


实收数量(值更新事件) QTYConversion{FBASEQTY,FQty,FMATERIALID;FSNQty,FBASEQTY,FMATERIALID|}

1、FBaseQty,FQty,FMaterialId;FExtAuxUnitQty,FBaseQty,FMaterialId;FSecQty,FExtAuxUnitQty,FMaterialId|

2、FBASEQTY,FQty,FMATERIALID;FSNQty,FBASEQTY,FMATERIALID|


基本单位

1、FBaseQty,FQty,FMaterialId;FExtAuxUnitQty,FBaseQty,FMaterialId;FSecQty,FExtAuxUnitQty,FMaterialId|

2、FBASEQTY,FExtAuxUnitQty,FMATERIALID;FQty,FBASEQTY,FMATERIALID|

3、FBASEQTY,FQty,FMATERIALID;FSNQty,FBASEQTY,FMATERIALID|


辅单位

1、FBASEQTY,FExtAuxUnitQty,FMATERIALID;FQty,FBASEQTY,FMATERIALID|

2、FBASEQTY,FQty,FMATERIALID;FSNQty,FBASEQTY,FMATERIALID|

3、FSecQty,FExtAuxUnitQty,FMaterialId|


实收数量(辅单位)

1、FBASEQTY,FExtAuxUnitQty,FMATERIALID;FQty,FBASEQTY,FMATERIALID|

2、FBASEQTY,FQty,FMATERIALID;FSNQty,FBASEQTY,FMATERIALID|

3、FBaseQty,FQty,FMaterialId;FExtAuxUnitQty,FBaseQty,FMaterialId;FSecQty,FExtAuxUnitQty,FMaterialId|

4、FSecQty,FExtAuxUnitQty,FMaterialId|


参考


以上分析及处理方案是根据社区上相关帖子整理和一些个人的理解,如有不对之处,还请指正。

赞 57