public ActionResult Sales()
        {
            var context    = new ApplicationDbContext();
            var allSales   = SaleRepositoryFactory.GetSaleRepository().GetSales();
            var saleReport = new SaleReportAll();

            var usersWithRoles = (from user in context.Users
                                  select new
            {
                UserId = user.Id,
                FirstName = user.FirstName,
                LastName = user.LastName,
                Email = user.Email,
                Role = (from userRole in user.Roles
                        join role in context.Roles on userRole.RoleId
                        equals role.Id
                        select role.Name).ToList()
            }).ToList().Select(p => new UsersVM()

            {
                UserID    = p.UserId,
                FirstName = p.FirstName,
                LastName  = p.LastName,
                Email     = p.Email,
                Role      = string.Join(",", p.Role)
            }).ToList();


            var salesGroupedByUser = allSales.GroupBy(s => s.UserID);

            var listOfSaleReportsByUser = new List <SaleReportByUser>();

            foreach (var saleGroup in salesGroupedByUser)
            {
                var user = UserManager.FindById(saleGroup.Key).FirstName + " " + UserManager.FindById(saleGroup.Key).LastName;


                int     totalVehicles = 0;
                decimal totalSales    = 0;
                foreach (var sale in saleGroup)
                {
                    totalSales += sale.PurchasePrice;
                    totalVehicles++;
                }

                var row = new SaleReportByUser()
                {
                    User = user, TotalSales = totalSales, TotalVehicles = totalVehicles
                };

                listOfSaleReportsByUser.Add(row);
            }


            saleReport.SalesByUser      = listOfSaleReportsByUser;
            saleReport.UsersForDropDown = usersWithRoles;


            return(View(saleReport));
        }
Exemplo n.º 2
0
        private void cmdReport_Click(object sender, EventArgs e)
        {
            string startDate = String.Format("{0:dd/MM/yyyy}", dtpstart.Value);
            string endDate = String.Format("{0:dd/MM/yyyy}", dtpend.Value);
            List<SaleReportAllDto> saleReportAllDtos = serviceSale.getReportBySaleCode(startDate, endDate);

            if (saleReportAllDtos != null) {

                List<SaleReportAll> saleReportAlls = new List<SaleReportAll>();
                SaleReportAll saleReportAll;
                int i = 1;
                foreach (SaleReportAllDto r in saleReportAllDtos)
                {
                    saleReportAll = new SaleReportAll();
                    saleReportAll.ID = i;
                    saleReportAll.startDate = r.startDate;
                    saleReportAll.endDate = r.endDate;
                    saleReportAll.SaleCode = r.SaleCode;
                    saleReportAll.CCode = r.CCode;
                    saleReportAll.PQutation = r.PQutation;
                    saleReportAll.DateSale = r.DateSale;
                    saleReportAll.SaleBy = r.SaleBy;
                    saleReportAll.NetDc = r.NetDc;
                    saleReportAll.NetVat = r.NetVat;
                    saleReportAll.NetTotal = r.NetTotal;
                    saleReportAll.Index = r.Index;
                    saleReportAll.PCode = r.PCode;
                    saleReportAll.PName = r.PName;
                    saleReportAll.UCode = r.UCode;
                    saleReportAll.UName = r.UName;
                    saleReportAll.Amount = r.Amount;
                    saleReportAll.SalePrice = r.SalePrice;
                    saleReportAll.Total = r.Total;
                    saleReportAlls.Add(saleReportAll);
                }

                ReportDocument rp = new ReportDocument();
                string path = Application.StartupPath + @"\report\rptSaleReportAll.rpt";
                rp.Load(path);
                rp.SetDataSource(saleReportAlls);

                PV.ReportSource = rp;

            }
        }
        public ActionResult Sales(string userID, DateTime?fromDate, DateTime?toDate)
        {
            if (fromDate == null)
            {
                fromDate = new DateTime(2000, 01, 01);
            }

            if (toDate == null)
            {
                toDate = new DateTime(2021, 01, 01);
            }

            var context    = new ApplicationDbContext();
            var allSales   = SaleRepositoryFactory.GetSaleRepository().GetSales();
            var saleReport = new SaleReportAll();

            var usersWithRoles = (from user in context.Users
                                  select new
            {
                UserId = user.Id,
                FirstName = user.FirstName,
                LastName = user.LastName,
                Email = user.Email,
                Role = (from userRole in user.Roles
                        join role in context.Roles on userRole.RoleId
                        equals role.Id
                        select role.Name).ToList()
            }).ToList().Select(p => new UsersVM()

            {
                UserID    = p.UserId,
                FirstName = p.FirstName,
                LastName  = p.LastName,
                Email     = p.Email,
                Role      = string.Join(",", p.Role)
            }).ToList();



            if (userID != "All")
            {
                var salesByUser       = allSales.Where(s => s.UserID == userID).ToList();
                var listOfSaleReports = new List <SaleReportByUser>();


                int totalVehicles = 0;
                foreach (var sale in salesByUser)
                {
                    var     user       = UserManager.FindById(userID).FirstName + " " + UserManager.FindById(userID).LastName;
                    decimal totalSales = 0;
                    if (sale.PurchaseDate < toDate && sale.PurchaseDate > fromDate)
                    {
                        totalSales += sale.PurchasePrice;
                        totalVehicles++;
                    }

                    var saleReportForUser = new SaleReportByUser()
                    {
                        User = user, TotalSales = totalSales, TotalVehicles = totalVehicles
                    };

                    listOfSaleReports.Add(saleReportForUser);
                }

                saleReport.SalesByUser      = listOfSaleReports;
                saleReport.UsersForDropDown = usersWithRoles;
                saleReport.UserID           = "All";
                saleReport.fromDate         = DateTime.MinValue;
                saleReport.toDate           = DateTime.MaxValue;
            }
            else
            {
                var salesGroupedByUser = allSales.GroupBy(s => s.UserID);

                var listOfSaleReportsByUser = new List <SaleReportByUser>();

                foreach (var saleGroup in salesGroupedByUser)
                {
                    var user = UserManager.FindById(saleGroup.Key).FirstName + " " + UserManager.FindById(saleGroup.Key).LastName;


                    int     totalVehicles = 0;
                    decimal totalSales    = 0;
                    foreach (var sale in saleGroup)
                    {
                        if (sale.PurchaseDate < toDate && sale.PurchaseDate > fromDate)
                        {
                            totalSales += sale.PurchasePrice;
                            totalVehicles++;
                        }
                    }

                    var row = new SaleReportByUser()
                    {
                        User = user, TotalSales = totalSales, TotalVehicles = totalVehicles
                    };

                    listOfSaleReportsByUser.Add(row);
                }


                saleReport.SalesByUser      = listOfSaleReportsByUser;
                saleReport.UsersForDropDown = usersWithRoles;
                saleReport.UserID           = "All";
                saleReport.fromDate         = DateTime.MinValue;
                saleReport.toDate           = DateTime.MaxValue;

                return(View(saleReport));
            }

            return(View(saleReport));
        }