示例#1
0
        public void InitReport()
        {
            DateTime start = new DateTime(2016, 1, 1);
            DateTime end   = new DateTime(2016, 12, 31);

            result = report.Report(start, end);
        }
示例#2
0
        public SalesAgentsRegionsModel Report(DateTime start, DateTime end)
        {
            SalesAgentsRegionsModel result = new SalesAgentsRegionsModel(start, end);

            List <Agent> Agents = _unitOfWork.Agents.Get().ToList();

            List <InputCross> AgentsByRegions = _unitOfWork.Invoices.Get()
                                                .Where(x => (x.Date >= start && x.Date <= end)).ToList()
                                                .GroupBy(x => new
            {
                AgentName  = x.Agent.Name,
                RegionName = Helper.FirstLetterLow(x.Customer.Town.Region.ToString())
            })
                                                .Select(x => new InputCross {
                Row = x.Key.AgentName, Column = x.Key.RegionName, Value = x.Sum(y => y.Total)
            })
                                                .OrderByDescending(x => x.Value)
                                                .ToList();

            result.Agents     = _factory.Create(AgentsByRegions, Agents, Helper.Regions);
            result.Regions    = _factory.CreateReverse(AgentsByRegions, Helper.Regions);
            result.GrandTotal = result.Agents.Sum(x => x.Turnover);

            return(result);
        }