Пример #1
0
        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);
        }
Пример #2
0
 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));
 }