接送票上的UOM和UOM比率不正确

问题描述 投票:0回答:1

我们在此客户端上使用UOM转换。我们在eaches库存,在cases中出售。我们的拣货单存在的问题是,要拣选的数量和被拣配的UOM都是库存单位,而不是销售单位。例如客户订购了73箱(每箱12 ea)。选票打印每个876。这要求仓库人员查询每个项目,以确定是否存在销售单位和比率,然后将876个每个人手动转换为73个案例。

显然,选票应打印73箱。但是我找不到办法。物品被抽签,一个73箱的订单可能有50箱A批次和23箱B批次。这在SOShipLineSplit表中表示。该表中的数量和UOM基于库存单位。

理想情况下,我可以将INUnits表连接到SOSHipLine和SOShipLineSPlit表。参见下文。

Select  case when isnull(U.UnitRate,0) = 0 then S.Qty else S.Qty/U.Unitrate end as ShipQty
,case when isnull(U.UnitRate,0) = 0 then s.uom else U.FromUnit end as UOM
from SOShipLineSplit S 
inner join SOShipLine SL
ON S.CompanyID = SL.CompanyID and s.ShipmentNbr = SL.ShipmentNbr and  S.LineNbr = SL.LineNbr and S.InventoryID = SL.InventoryID
Left Outer Join INUnit U
On S.CompanyID = U.CompanyID and S.InventoryID = U.InventoryID and s.UOm = U.ToUnit and SL.UOM = U.FromUnit
where S.ShipmentNbr = '000161' and S.CompanyId = 4

问题是Acumatica报表编写器不支持具有多个表的联接。

Left Outer Join INUnit U
On S.CompanyID = U.CompanyID and S.InventoryID = U.InventoryID and s.UOm = U.ToUnit and SL.UOM = U.FromUnit

我相信我一定会丢失一些东西。这不是使用Acumatica的唯一利用计量单位的客户。我是否可以使用另一个表格来包含已将该订单转换为销售单位的数量和UOM?

或其他解决方案?

谢谢。拍

acumatica
1个回答
0
投票

编辑:

如果目标是在转换之前/之后显示准确的数量,则不能使用INUnit DAC。它不存储历史数据,您可以在定单确定后更改INUnit值,因此重新使用它来计算数量将不会产生准确的结果。

对于那种情况,您需要使用带有Base前缀的历史数据字段,例如ShippedQuantity / BaseShippedQuantity。如果需要存储更多历史数据,则需要添加一个自定义字段来保存这些值,并在创建/修改装运时对其进行更新。


主要问题似乎是需求中的逻辑错误:

问题是INUnit表必须同时连接到SOShipLine和SOShipLineSplit表。

INUnit DAC具有单亲而不是2,因此您需要更改要求以反映该约束。

如果SOShipLine和SOShipLineSplit值不同,那么您将永远不会获得任何记录。

如果它们是相同的,那么由于它们具有相同的值,因此不需要加入两者。


我建议添加2个连接,一个用于SOShipLine,另一个用于SOShipLineSplit。在报告中,您可以选择显示哪一个(第一,第二或两者)。如果要处理用于显示目的的空值错误检查,也可以在报告中添加可见性条件或IIF公式条件。

使用模式构建器中的Child Alias属性将同一表连接2次,而不会造成名称冲突。在报告公式中(以显示字段或在公式条件中)也使用“子别名”表名称。

示例:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.