public static void BuildIndex(int itemID, int storeId) { var repository = new StockoutRepository(); var stockouts = GetStockOutHistory(itemID, storeId).ToList(); if (stockouts.Count > 0) repository.AddRange(stockouts); }
public static void BuildIndex(int itemID) { var db = new StockoutEntities(); var repository = new StockoutRepository(); foreach (var storeId in db.Stores.Select(s => s.ID)) { var stockouts = GetStockOutHistory(itemID, storeId); if (stockouts.Count > 0) repository.AddRange(stockouts); } }
public void BuildAMC(bool forceCalc = false) { if ((IsCalculatedToday()) && (forceCalc == false)) { return; } StockoutRepository _repository = new StockoutRepository(); StoreRepository _storerepository = new StoreRepository(); GeneralInfoRepository _generalInfoRepository = new GeneralInfoRepository(); ReceiveDocRepository _receiveDocRepository = new ReceiveDocRepository(); AmcReportRepository _amcReportRepository = new AmcReportRepository(); List<AMCViewModel> _datasource; //clear AMC table before another build _amcReportRepository.DeleteAll(); var generalinfo = _generalInfoRepository.AllGeneralInfos().First(); var storeList = _storerepository.AllStores(); foreach (var store in storeList) { var storeId = store.ID; var itemsrecieved = _receiveDocRepository.RecievedItems().Where(m => m.StoreID == storeId).Select(m => m.ItemID).Distinct(); _datasource = new List<AMCViewModel>(); var receiveDocs = _repository.AllItems().Where(m => itemsrecieved.Contains(m.ID)).ToList(); double increment = 80.0 / Convert.ToDouble(receiveDocs.Count()); IEnumerable<int?> unitid; if (VisibilitySetting.HandleUnits != 1) { foreach (var item in receiveDocs) { unitid = _receiveDocRepository.RecievedItems().Where(m => m.ItemID == item.ID && m.StoreID == storeId).Select(m => m.UnitID).Distinct(); foreach (var i in unitid) { AMCViewModel.OptimizedCreate(item.ID, item.FullItemName, storeId, i.GetValueOrDefault(), generalinfo.AMCRange, DateTime.Today); } } } else { foreach (var item in receiveDocs) { AMCViewModel.OptimizedCreate(item.ID, item.FullItemName, storeId, generalinfo.AMCRange, DateTime.Today); } } } }
public static int CalculateStockoutDays(int itemId,int storeId, DateTime startDate, DateTime endDate) { var repository = new StockoutRepository(); var stockoutsInRange = repository.GetAll().Where(m => m.ItemID == itemId && m.StoreID ==storeId ).Where(m => m.StartDate < endDate && (m.EndDate == null || m.EndDate > startDate)).ToList(); //var stockoutsOutOfRange = repository.GetAll().Where(m => m.ItemID == itemId && m.StoreID == storeId).Where(m => m.StartDate > startDate).ToList(); foreach (var stockout in stockoutsInRange) { if (stockout.StartDate < startDate) stockout.StartDate = startDate; if (stockout.EndDate == null) stockout.EndDate = DateTime.Now; else if (stockout.EndDate > endDate) stockout.EndDate = endDate; } return Enumerable.Sum(stockoutsInRange, m => m.NumberOfDays); }