Example #1
0
        public ChartReport SearchResourceAndAgentReport(long startTime, long endTime)
        {
            ChartReport report = new ChartReport();
            int total = 0;
            List<BOrder> orders = FindOrders(0, 0, 0, 0, 0, null, null, new int[] { 2}, startTime, endTime, out total);
            List<ReportTemplate> resourceReport = new List<ReportTemplate>();
            List<ReportTemplate> agentReport = new List<ReportTemplate>();
            var rp = from order in orders
                     group order by order.ResourceId into gOrders
                     orderby gOrders.Key
                     select new
                     {
                         ResourceId = gOrders.Key,
                         ResourceName = gOrders.FirstOrDefault<BOrder>().ReseouceName,
                         SalesAmount = gOrders.Sum(o => o.PurchasePrice),
                         CostAmount = gOrders.Sum(o => o.PlatformCostPrice),
                         Revenue = gOrders.Sum(o => o.Revenue)
                     };
            foreach (var rpt in rp)
            {
                ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.ResourceId, Name = rpt.ResourceName, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount };
                resourceReport.Add(temp);
            }
            report.ResourceReport = resourceReport;
            var rp2 = from order in orders
                      where order.AgentId > 0 && order.Operator==0
                      group order by order.AgentId into gOrders
                      orderby gOrders.Key
                      select new
                      {
                          AgentId = gOrders.Key,
                          AgentName = gOrders.FirstOrDefault<BOrder>().AgentName,
                          SalesAmount = gOrders.Sum(o => o.PurchasePrice),
                          CostAmount = gOrders.Sum(o => o.PlatformCostPrice),
                          Revenue = gOrders.Sum(o => o.Revenue)
                      };

            foreach (var rpt in rp2)
            {
                ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.AgentId, Name = rpt.AgentName, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount };
                agentReport.Add(temp);
            }

            var rp3 = from order in orders
                      where order.AgentId == 0
                      group order by order.ChargeType into gOrders
                      orderby gOrders.Key
                      select new
                      {
                          Type = gOrders.Key,
                          Name = gOrders.FirstOrDefault<BOrder>().Operator==0?"前台直冲":"后台直冲",
                          SalesAmount = gOrders.Sum(o => o.PurchasePrice),
                          CostAmount = gOrders.Sum(o => o.PlatformCostPrice),
                          Revenue = gOrders.Sum(o => o.Revenue)
                      };

            foreach (var rpt in rp3)
            {
                ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.Type, Name = rpt.Name, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount };
                agentReport.Add(temp);
            }
            report.UserReport = agentReport;
            return report;
        }
Example #2
0
        public List<ReportTemplate> SearchAgentReport(int agencyId,long startTime, long endTime)
        {
            List<ReportTemplate> reportList = new List<ReportTemplate>();
            int total = 0;
            if(agencyId==0)
            {
                agencyId = CurrentLoginUser.User.Id;
            }
            List<BOrder> orders = FindOrders(0, agencyId, 0, 0, 0, null, null, null, startTime, endTime, out total);
            var rp = from order in orders
                     group order by order.AgentRouteId into gOrders
                     orderby gOrders.Key
                     select new
                     {
                         ResourceId = gOrders.Key,
                         ResourceName = gOrders.FirstOrDefault<BOrder>().TaocanName,
                         SalesAmount = gOrders.Sum(o => o.SalePrice),
                         CostAmount = gOrders.Sum(o => o.PurchasePrice),
                         Revenue = gOrders.Sum(o => o.SalePrice)- gOrders.Sum(o => o.PurchasePrice)
                     };

            foreach (var rpt in rp)
            {
                ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.ResourceId, Name = rpt.ResourceName, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount };
                reportList.Add(temp);
            }

            return reportList;
        }