internal IResult <IQueryable <ProductionResultReturn> > Execute(LotKey productionResultKey, bool includeDetails) { var batches = _productionUnitOfWork.ProductionBatchRepository.All(); var predicate = (productionResultKey == null ? r => true : productionResultKey.GetPredicate <LotProductionResults>()).And(r => r.Production.ProductionType == ProductionType.ProductionBatch).ExpandAll(); var selector = includeDetails ? LotProductionResultsProjectors.SplitSelectDetail(batches) : LotProductionResultsProjectors.SplitSelectSummary(batches); return(new SuccessResult <IQueryable <ProductionResultReturn> >(_productionUnitOfWork.LotProductionResultsRepository.Filter(predicate).SplitSelect(selector))); }
public IResult <IProductionRecapReportReturn> GetProductionRecapReport(DateTime startDate, DateTime endDate) { startDate = new DateTime(startDate.Year, startDate.Month, startDate.Day, 0, 0, 0, DateTime.Now.Kind); endDate = new DateTime(endDate.Year, endDate.Month, endDate.Day, 0, 0, 0, DateTime.Now.Kind); var queryStartDate = startDate.ConvertLocalToUTC(); var queryEndDate = endDate.AddDays(1).ConvertLocalToUTC(); var select = LotProductionResultsProjectors.SelectProductionRecap(_productionUnitOfWork.ProductionBatchRepository.All()); var productionResults = _productionUnitOfWork.LotProductionResultsRepository .Filter(c => c.ProductionBegin >= queryStartDate && c.ProductionBegin < queryEndDate) .Select(select).ToList(); return(new SuccessResult <IProductionRecapReportReturn>(new ProductionRecapReportReturn(startDate, endDate, productionResults))); }
public IResult <IProductionAdditiveInputsReportReturn> GetProductionAdditiveInputsReport(DateTime startDate, DateTime endDate) { startDate = new DateTime(startDate.Year, startDate.Month, startDate.Day, 0, 0, 0, DateTime.Now.Kind); endDate = new DateTime(endDate.Year, endDate.Month, endDate.Day, 0, 0, 0, DateTime.Now.Kind); var queryStartDate = startDate.ConvertLocalToUTC(); var queryEndDate = endDate.AddDays(1).ConvertLocalToUTC(); var select = LotProductionResultsProjectors.SelectAdditiveInputs(_productionUnitOfWork).ExpandAll(); var results = _productionUnitOfWork.LotProductionResultsRepository .All() .Select(select) .Where(c => c.ProductionDate >= queryStartDate && c.ProductionDate < queryEndDate && c.PickedAdditiveItems.Any()) .ToList(); return(new SuccessResult <IProductionAdditiveInputsReportReturn>(new ProductionAdditiveInputsReportReturn(startDate, endDate, results))); }