コード例 #1
0
        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)));
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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)));
        }