Пример #1
0
        public static MonthPerformViewModel Create(Project project, int year, int month,
                                                   BalanceViewModel balance, IEnumerable <Plan> plans, IEnumerable <Perform> performs)
        {
            var model = new MonthPerformViewModel
            {
                ProjectId          = project.ProjectId,
                ProjectName        = project.Name,
                ProjectIncoming    = project.ContractAmount,
                EstimatingProfit   = project.EstimatingProfit,
                Year               = year,
                Month              = month,
                IncomingBalance    = balance?.Incoming,
                SettlementBalance  = balance?.Settlement,
                RetrievableBalance = balance?.Retrievable,
                PlanData           = (from p in plans where p.Month == month select p).SingleOrDefault(),
                TotalPlanIncoming  = (from p in plans where p.Month < month
                                      select p.Incoming).Sum(),
                TotalPlanSettlement = (from p in plans
                                       where p.Month < month
                                       select p.Settlement).Sum(),
                TotalPlanRetrievable = (from p in plans
                                        where p.Month < month
                                        select p.Retrieve).Sum(),
                TotalIncoming = (from p in performs
                                 where p.Month < month
                                 select p.Incoming).Sum(),
                TotalSettlement = (from p in performs
                                   where p.Month < month
                                   select p.Settlement).Sum(),
                TotalRetrievalbe = (from p in performs
                                    where p.Month < month
                                    select p.Retrieve).Sum(),
                PerformId = (from p in performs
                             where p.Month == month
                             select p).SingleOrDefault()?.Id,
                PerformData = (from p in performs where p.Month == month select p).SingleOrDefault(),
            };

            return(model);
        }