コード例 #1
0
        static public void ReCalcForecastItems()
        {
            forecastItems.Clear();

            foreach (ProductMasterItem productMasterItem in _productMasterList)
            {
                ForecastItem newForecastItem = new ForecastItem();
                newForecastItem.ProductCode        = productMasterItem.ProductionCode;
                newForecastItem.ProductDescription = productMasterItem.Description;

                double inventory =
                    InventoryItems.Where(x => x.ProductCode == productMasterItem.ProductionCode).Sum(x => x.Units);

                for (Int32 i = 0; i < newForecastItem.UnitsPerMonth.Length; i++)
                {
                    SalesItem[] foundItems = SalesItems.Where(x => x.MasterID == productMasterItem.MasterID &&
                                                              x.Date.Month == DateTime.Now.AddMonths(-(i + 1)).Month&& x.Date.AddYears(1).AddMonths(1) >= DateTime.Now).ToArray();

                    newForecastItem.UnitsPerMonth[i] = foundItems.Sum(x => (x.Units / productMasterItem.PiecesPerUnit));
                }

                newForecastItem.Units = inventory;

                forecastItems.Add(newForecastItem);
            }
        }
コード例 #2
0
        /// <summary>
        /// Gets the sale with the soonest due date.
        /// </summary>
        /// <param name="nextItem"></param>
        /// <returns></returns>
        public static SalesItem GetPrioritySale(ProductMasterItem nextItem)
        {
            SalesItem sale = null;

            DateTime minDate = DateTime.MaxValue;

            foreach (var item in SalesItems.Where(s => s.Fulfilled < s.Units))
            {
                if (item.Date < minDate)
                {
                    minDate = item.Date;
                    sale    = item;
                }
            }

            return(sale);
        }