public static void CreateDefaultInventoryPostingRules() { inventoryPostingRuleApplicationService = ApplicationContext.Current["inventoryPostingRuleApplicationService"] as IInventoryPostingRuleApplicationService; var triggerItemId = new InventoryItemId(InventoryItemIds.Wildcard, InventoryItemIds.Wildcard, InventoryItemIds.Wildcard); var outputItemId = new InventoryItemId(InventoryItemIds.SameAsSource, InventoryItemIds.EmptyLocatorId, InventoryItemIds.EmptyAttributeSetInstanceId); // -------------------------------------------------------- // S = OH - Oc + V - R + IT // -------------------------------------------------------- // On-Hand CreatePRQuantityOnHandUpdateProductSellableTotal(triggerItemId, outputItemId); // Occupied CreatePRQuantityOccupiedUpdateProductSellableTotal(triggerItemId, outputItemId); // Reserved CreatePRQuantityReservedUpdateProductSellableTotal(triggerItemId, outputItemId); // Virtual CreatePRQuantityVirtualUpdateProductSellableTotal(triggerItemId, outputItemId); // In-Transit CreatePRQuantityInTransitUpdateProductSellableTotal(triggerItemId, outputItemId); // --------------------------------------------------------------------------- //需求数量 = 订单占用数量(Oc) - 在库数量(OH) + 保留数量(R) - 在途数量(IT) // --------------------------------------------------------------------------- // Occupied CreatePRQuantityOccupiedUpdateProductRequiredTotal(triggerItemId, outputItemId); // On-Hand CreatePRQuantityOnHandUpdateProductRequiredTotal(triggerItemId, outputItemId); // Reserved CreatePRQuantityReservedUpdateProductRequiredTotal(triggerItemId, outputItemId); // In-Transit CreatePRQuantityInTransitUpdateProductRequiredTotal(triggerItemId, outputItemId); }
public static IEnumerable <IInventoryPostingRuleState> GetByProperty <TPropertyType>(this IInventoryPostingRuleApplicationService applicationService, System.Linq.Expressions.Expression <Func <IInventoryPostingRuleState, TPropertyType> > propertySelector, TPropertyType propertyValue, IList <string> orders = null, int firstResult = 0, int maxResults = int.MaxValue) { return(applicationService.GetByProperty(ReflectUtils.GetPropertyName <IInventoryPostingRuleState, TPropertyType>(propertySelector), propertyValue, orders, firstResult, maxResults)); }