在Acumatica中,可以通过创建一个自定义的Inventory Allocation Rule来实现将相同序列号的物品分配给多个销售订单。
以下是一个示例代码,演示了如何在Acumatica中创建一个自定义的Inventory Allocation Rule:
using PX.Data;
using PX.Objects.IN;
public class CustomInventoryAllocationRule : INAllocationRule
{
public CustomInventoryAllocationRule()
{
// 设置此规则的名称
this.Name = "Custom Allocation Rule";
// 设置此规则的描述
this.Descr = "Custom rule to allocate items with the same serial number to multiple sales orders";
// 设置此规则的适用条件
this.Rule = INAllocationRuleConstants.ByInventoryID;
// 设置此规则的优先级
this.Priority = 10;
}
protected override bool CanAllocate(INItemPlan plan, INSiteLotSerial siteLotSerial)
{
// 检查序列号是否已分配给其他订单
// 如果序列号已分配给其他订单,则返回false
bool isAllocated = PXSelect>,
And>>>>
.SelectWindowed(this, 0, 1, siteLotSerial.LotSerialNbr, plan.RefNoteID)
.Count > 0;
return !isAllocated;
}
}
要使用自定义的Inventory Allocation Rule,需要在Acumatica中进行以下步骤:
完成上述步骤后,Acumatica将使用自定义的Inventory Allocation Rule来分配相同序列号的物品给多个销售订单。