Ejemplo n.º 1
0
 public ActionResult DseRetailTrend(int csmId, int dealerId)
 {
     var dealer = _masterService.GetDealer(dealerId);
     var reprtRetailModel = new ReprtRetailModel();
     List<DealerManpower> manpowers;
     manpowers = _manpowerService.FindDealerManpowers(dealerId, csmId).ToList();
     var currentDate = DateTime.Now;
     var months = new List<Month>();
     var totalmonths = _masterService.FindMonths(year: currentDate.Year).ToList();
     for (int i = 0; i < 12; i++)
     {
         var montTime = new DateTime(currentDate.Year, i + 1, 15);
         var montName = montTime.ToString("MMMM");
         var month = totalmonths.SingleOrDefault(x => x.Name.Equals(montName) && x.Year == currentDate.Year);
         if (month == null)
             month = new Month { Name = montName };
         months.Add(month);
     }
     var reportReatils = new List<ReportReatil>();
     var yTd = new Dictionary<int, YearTarget>();
     var year = currentDate.Year.ToString();
     foreach (var dealerManpower in manpowers)
     {
         int i = 0;
         foreach (var month in months)
         {
             i++;
             var reportReatilModel = new ReportReatil();
             var targets = _targetService.FindTarget(dealerManpower.Id, month.Id).ToList();
             if (targets.Any())
             {
                 reportReatilModel.Actual = targets.Sum(x => x.Actual);
                 reportReatilModel.T1 = targets.Sum(x => x.Target1);
                 reportReatilModel.T2 = targets.Sum(x => x.Target2);
             }
             else
             {
                 reportReatilModel.Actual = 0;
                 reportReatilModel.T1 = 0;
                 reportReatilModel.T2 = 0;
             }
             reportReatilModel.Month = month.Name;
             reportReatilModel.MonthNumber = i;
             reportReatilModel.Type = dealerManpower.Type;
             reportReatilModel.ManPowerName = dealerManpower.Name;
             reportReatilModel.ManPowerId = dealerManpower.Id;
             reportReatils.Add(reportReatilModel);
         }
         var yearTarget = dealerManpower.YearTargets.SingleOrDefault(x => x.Year == year && x.DealerManpowerId == dealerManpower.Id && x.ObjectInfo.DeletedDate == null);
         if (yearTarget != null)
         {
             yTd.Add(dealerManpower.Id, yearTarget);
         }
         else
         {
             yTd.Add(dealerManpower.Id, new YearTarget());
         }
     }
     reprtRetailModel.YTD = yTd;
     reprtRetailModel.CsmId = csmId;
     reprtRetailModel.Id = dealerId;
     reprtRetailModel.Name = dealer.Name;
     reprtRetailModel.ReportReatils = reportReatils.GroupBy(x => x.ManPowerId).ToDictionary(x => x.Key, y => y.OrderBy(z => z.MonthNumber).ToList());
     ViewBag.List = Session["BreadcrumbList"];
     return View(reprtRetailModel);
 }
Ejemplo n.º 2
0
 private ReprtRetailModel StateWiseRetailTrend(int id)
 {
     var rm = _userService.GetUser(id);
     var regionmaps = rm.UserRegionMaps.ToList();
     var regions = regionmaps.Select(x => x.Region);
     var states = regions.SelectMany(x => x.States).ToList();
     var rsms = _userService.FindUsers(x => x.ParentId == id);
     var csms = _userService.FindUsers(x => rsms.Any(y => y.Id == x.ParentId));
     var userDealerMaps = csms.SelectMany(x => x.UserDealerMaps);
     var dealers = userDealerMaps.Select(x => x.Dealer).Distinct().ToList();
     var currentDate = DateTime.Now;
     var months = new List<Month>();
     var totalmonths = _masterService.FindMonths(currentDate.Year).ToList();
     var yTd = new Dictionary<int, YearTarget>();
     for (int i = 0; i < 12; i++)
     {
         var montTime = new DateTime(currentDate.Year, i + 1, 15);
         var montName = montTime.ToString("MMMM");
         var month = totalmonths.SingleOrDefault(x => x.Name.Equals(montName) && x.Year == currentDate.Year);
         if (month == null)
             month = new Month { Name = montName };
         months.Add(month);
     }
     var reportReatils = new List<ReportReatil>();
     foreach (var state in states)
     {
         var stateDealers = dealers.Where(x => x.StateId == state.Id).ToList();
         var dealerIds = stateDealers.Select(x => x.Id);
         var manpowerIds = _dealerManpowerService.FindAllDealerManpowers(dealerIds, "DSE").Select(x => x.Id).ToList();
         int i = 0, ytdActual = 0, ytdTarget1 = 0, ytdTarget2 = 0;
         foreach (var month in months)
         {
             i++;
             var reportReatilModel = new ReportReatil();
             var targets = _targetService.FindMonthlyTarget(manpowerIds, month.Id).ToList();
             if (targets.Any())
             {
                 int sumActual = targets.Sum(x => x.Actual); ytdActual = ytdActual + sumActual;
                 int sumTarget1 = targets.Sum(x => x.Target1);
                 ytdTarget1 = ytdTarget1 + sumTarget1;
                 int sumTarget2 = targets.Sum(x => x.Target2);
                 ytdTarget2 = ytdTarget2 + sumTarget2;
                 reportReatilModel.Actual = sumActual;
                 reportReatilModel.T1 = sumTarget1;
                 reportReatilModel.T2 = sumTarget2;
             }
             else
             {
                 reportReatilModel.Actual = 0;
                 reportReatilModel.T1 = 0;
                 reportReatilModel.T2 = 0;
             }
             reportReatilModel.Month = month.Name;
             reportReatilModel.MonthNumber = i;
             reportReatilModel.ManPowerName = state.Name;
             reportReatilModel.ManPowerId = state.Id;
             reportReatils.Add(reportReatilModel);
         }
         yTd.Add(state.Id, new YearTarget { Actual = ytdActual, Target1 = ytdTarget1, Target2 = ytdTarget2 });
     }
     var reprtRetailModel = new ReprtRetailModel();
     reprtRetailModel.Id = id;
     reprtRetailModel.Role = "RM";
     reprtRetailModel.YTD = yTd;
     reprtRetailModel.Name = rm.Name;
     reprtRetailModel.ReportReatils = reportReatils.GroupBy(x => x.ManPowerId).ToDictionary(x => x.Key, y => y.OrderBy(z => z.MonthNumber).ToList());
     return reprtRetailModel;
 }
Ejemplo n.º 3
0
        private ReprtRetailModel RsmDealerTrend(int id)
        {
            var rsm = _userService.GetUser(id);
            var csms = _userService.FindChilds(new List<int> { rsm.Id });
            var csmIds = csms.Select(x => x.Id).ToList();
            var dealers = _userDealerMapServiceService.FindDealers(csmIds).Distinct();
            var currentDate = DateTime.Now;
            var months = new List<Month>();
            var totalmonths = _masterService.FindMonths(year: currentDate.Year).ToList();
            var yTd = new Dictionary<int, YearTarget>();
            for (int i = 0; i < 12; i++)
            {
                var montTime = new DateTime(currentDate.Year, i + 1, 15);
                var montName = montTime.ToString("MMMM");
                var month = totalmonths.SingleOrDefault(x => x.Name.Equals(montName) && x.Year == currentDate.Year);
                if (month == null)
                    month = new Month { Name = montName };
                months.Add(month);
            }
            var reportReatils = new List<ReportReatil>();
            foreach (var dealer in dealers)
            {
                var manpowerIds = _dealerManpowerService.FindAllDealerManpowers(new List<int> { dealer.Id }, csmIds).Where(x => x.Type == "DSE").Select(x => x.Id).ToList();
                int i = 0, ytdActual = 0, ytdTarget1 = 0, ytdTarget2 = 0;
                foreach (var month in months)
                {
                    i++;
                    var reportReatilModel = new ReportReatil();
                    var targets = _targetService.FindMonthlyTarget(manpowerIds, month.Id).ToList();
                    if (targets.Any())
                    {
                        int sumActual = targets.Sum(x => x.Actual); ytdActual = ytdActual + sumActual;
                        int sumTarget1 = targets.Sum(x => x.Target1);
                        ytdTarget1 = ytdTarget1 + sumTarget1;
                        int sumTarget2 = targets.Sum(x => x.Target2);
                        ytdTarget2 = ytdTarget2 + sumTarget2;
                        reportReatilModel.Actual = sumActual;
                        reportReatilModel.T1 = sumTarget1;
                        reportReatilModel.T2 = sumTarget2;
                    }
                    else
                    {
                        reportReatilModel.Actual = 0;
                        reportReatilModel.T1 = 0;
                        reportReatilModel.T2 = 0;
                    }
                    reportReatilModel.Month = month.Name;
                    reportReatilModel.MonthNumber = i;
                    reportReatilModel.ManPowerName = dealer.Name;
                    reportReatilModel.ManPowerId = dealer.Id;
                    reportReatils.Add(reportReatilModel);

                }
                yTd.Add(dealer.Id, new YearTarget { Actual = ytdActual, Target1 = ytdTarget1, Target2 = ytdTarget2 });
            }
            var reprtRetailModel = new ReprtRetailModel();
            reprtRetailModel.Id = id;
            reprtRetailModel.Role = "RSM";
            reprtRetailModel.YTD = yTd;
            reprtRetailModel.Name = rsm.Name;
            reprtRetailModel.ReportReatils = reportReatils.GroupBy(x => x.ManPowerId).ToDictionary(x => x.Key, y => y.OrderBy(z => z.MonthNumber).ToList());
            return reprtRetailModel;
        }
Ejemplo n.º 4
0
        private ReprtRetailModel HqTrend(int id)
        {
            var hq = _userService.GetUser(id);
            var rms = _userService.FindUsersByRole("RM", x => x.UserRegionMaps).OrderBy(x => x.Name).ToList();
            var currentDate = DateTime.Now;
            string crmonth = DateTime.Now.AddMonths(0).ToString("MMMM");
            var months = new List<Month>();
            var totalmonths = _masterService.FindMonths(year: currentDate.Year).ToList();
            var crtMnthId = _masterService.FindMonthIDByName(currentDate.Year, crmonth);
            var yTd = new Dictionary<int, YearTarget>();
            for (int i = 0; i < 12; i++)
            {
                var monthTime = new DateTime(currentDate.Year, i + 1, 15);
                var monthName = monthTime.ToString("MMMM");
                var month = totalmonths.SingleOrDefault(x => x.Name.Equals(monthName) && x.Year == currentDate.Year);
                if (month == null)
                    month = new Month { Name = monthName };
                months.Add(month);
            }
            var reportReatils = new List<ReportReatil>();
            foreach (var rm in rms)
            {
                var rsms = _userService.FindUsers(x => x.ParentId == rm.Id).ToList();
                var csms = _userService.FindUsers(x => rsms.Any(y => y.Id == x.ParentId)).ToList();
                var csmIds = csms.Select(x => x.Id).ToList();
                var manpowerIds = _dealerManpowerService.FindAllUserManpowers(csmIds, "DSE").Select(x => x.Id).ToList();
                int i = 0, ytdActual = 0, ytdTarget1 = 0, ytdTarget2 = 0;
                foreach (var month in months)
                {
                    i++;
                    var reportReatilModel = new ReportReatil();
                    var targets = _targetService.FindMonthlyTarget(manpowerIds, month.Id).ToList();
                    var crtTargets = _targetService.FindMonthlyTarget(manpowerIds, crtMnthId.Id).ToList();
                    if (targets.Any())
                    {
                        int sumActual = targets.Sum(x => x.Actual);
                        ytdActual = ytdActual + sumActual;
                        int sumTarget1 = targets.Sum(x => x.Target1);
                        ytdTarget1 = ytdTarget1 + sumTarget1;
                        int sumTarget2 = targets.Sum(x => x.Target2);
                        ytdTarget2 = ytdTarget2 + sumTarget2;
                        reportReatilModel.Actual = sumActual;
                        reportReatilModel.T1 = sumTarget1;
                        reportReatilModel.T2 = sumTarget2;
                        if (crtTargets.Any() && month.Name == crmonth)
                        {

                            int sumCrtTarget1 = crtTargets.Sum(x => x.Target1);
                            int sumCrtTarget2 = crtTargets.Sum(x => x.Target2);
                            int sumCrtActual = crtTargets.Sum(x => x.Actual);
                            reportReatilModel.CrntmnthTgt1 = sumCrtTarget1;
                            reportReatilModel.CrntmnthTgt2 = sumCrtTarget2;
                            reportReatilModel.CrntmnthActual = sumCrtActual;

                        }

                    }
                    else
                    {
                        reportReatilModel.Actual = 0;
                        reportReatilModel.T1 = 0;
                        reportReatilModel.T2 = 0;
                    }
                    reportReatilModel.Month = month.Name;
                    reportReatilModel.MonthNumber = i;
                    reportReatilModel.ManPowerName = string.Format("{0}({1})", rm.UserRegionMaps.First().Region.Name, rm.Name);
                    reportReatilModel.ManPowerId = rm.Id;
                    reportReatils.Add(reportReatilModel);

                }
                yTd.Add(rm.Id, new YearTarget { Actual = ytdActual, Target1 = ytdTarget1, Target2 = ytdTarget2 });
            }
            var reprtRetailModel = new ReprtRetailModel();
            reprtRetailModel.Id = id;
            reprtRetailModel.Role = "HQ";
            reprtRetailModel.YTD = yTd;
            reprtRetailModel.Name = hq.Name;
            reprtRetailModel.ReportReatils = reportReatils.GroupBy(x => x.ManPowerId).ToDictionary(x => x.Key, y => y.OrderBy(z => z.MonthNumber).ToList());
            return reprtRetailModel;
        }
Ejemplo n.º 5
0
        public ActionResult PdfDseRetailTrend(int csmId, int dealerId)
        {
            var dealer = _masterService.GetDealer(dealerId);
            var reprtRetailModel = new ReprtRetailModel();
            var manpowers = _manpowerService.FindDealerManpowers(dealerId: dealerId, csmId: csmId).Where(x => x.Type.Equals("DSE"));
            var currentDate = DateTime.Now;
            var months = new List<Month>();
            var totalmonths = _masterService.FindMonths(year: currentDate.Year).ToList();
            for (int i = 0; i < 12; i++)
            {
                var montTime = new DateTime(currentDate.Year, i + 1, 15);
                var montName = montTime.ToString("MMMM");
                var month = totalmonths.SingleOrDefault(x => x.Name.Equals(montName) && x.Year == currentDate.Year);
                if (month == null)
                    month = new Month { Name = montName };
                months.Add(month);
            }
            var reportReatils = new List<ReportReatil>();
            var yTd = new Dictionary<int, YearTarget>();
            var year = currentDate.Year.ToString();
            foreach (var dealerManpower in manpowers)
            {
                int i = 0;
                foreach (var month in months)
                {
                    i++;
                    var reportReatilModel = new ReportReatil();
                    var targets = _targetService.FindTarget(dealerManpowerId: dealerManpower.Id, monthId: month.Id).ToList();
                    if (targets.Any())
                    {
                        reportReatilModel.Actual = targets.Sum(x => x.Actual);
                        reportReatilModel.T1 = targets.Sum(x => x.Target1);
                        reportReatilModel.T2 = targets.Sum(x => x.Target2);
                    }
                    else
                    {
                        reportReatilModel.Actual = 0;
                        reportReatilModel.T1 = 0;
                        reportReatilModel.T2 = 0;
                    }
                    reportReatilModel.Month = month.Name;
                    reportReatilModel.MonthNumber = i;
                    reportReatilModel.Type = dealerManpower.Type;
                    reportReatilModel.ManPowerName = dealerManpower.Name;
                    reportReatilModel.ManPowerId = dealerManpower.Id;
                    reportReatils.Add(reportReatilModel);

                }
                var yearTarget = dealerManpower.YearTargets.SingleOrDefault(x => x.Year == year && x.DealerManpowerId == dealerManpower.Id && x.ObjectInfo.DeletedDate == null);
                if (yearTarget != null)
                {
                    yTd.Add(dealerManpower.Id, yearTarget);
                }
                else
                {
                    yTd.Add(dealerManpower.Id, new YearTarget());
                }
            }
            reprtRetailModel.YTD = yTd;
            reprtRetailModel.CsmId = csmId;
            reprtRetailModel.Id = dealerId;
            reprtRetailModel.Name = dealer.Name;
            reprtRetailModel.ReportReatils = reportReatils.GroupBy(x => x.ManPowerId).ToDictionary(x => x.Key, y => y.OrderBy(z => z.MonthNumber).ToList());
            var viewString = RenderViewToString("PdfDseRetailTrend", reprtRetailModel);
            var absolutePath = WkhtmlWrapper.CreatePdf(viewString, Server.MapPath("/tmp"),
                                                                   FileService.CreateTempFilePath("pdf"), "Portrait", WkhtmlWrapper.PaperSize.A4);
            var fileContents = FileService.ReadBytesFromAbsolutePath(absolutePath);
            FileService.DeleteFile(absolutePath);
            return File(fileContents, "application/pdf", "Retail-Trends.pdf");
        }
Ejemplo n.º 6
0
        public ActionResult ExcelDseRetailTrend(int csmId, int dealerId)
        {
            var dealer = _masterService.GetDealer(dealerId);
            var reprtRetailModel = new ReprtRetailModel();
            var manpowers = _manpowerService.FindDealerManpowers(dealerId: dealerId, csmId: csmId).Where(x => x.Type.Equals("DSE"));
            var currentDate = DateTime.Now;
            var months = new List<Month>();
            var totalmonths = _masterService.FindMonths(year: currentDate.Year).ToList();
            for (int i = 0; i < 12; i++)
            {
                var montTime = new DateTime(currentDate.Year, i + 1, 15);
                var montName = montTime.ToString("MMMM");
                var month = totalmonths.SingleOrDefault(x => x.Name.Equals(montName) && x.Year == currentDate.Year);
                if (month == null)
                    month = new Month { Name = montName };
                months.Add(month);
            }
            var reportReatils = new List<ReportReatil>();
            var yTd = new Dictionary<int, YearTarget>();
            var year = currentDate.Year.ToString();
            foreach (var dealerManpower in manpowers)
            {
                int i = 0;
                foreach (var month in months)
                {
                    i++;
                    var reportReatilModel = new ReportReatil();
                    var targets = _targetService.FindTarget(dealerManpowerId: dealerManpower.Id, monthId: month.Id).ToList();
                    if (targets.Any())
                    {
                        reportReatilModel.Actual = targets.Sum(x => x.Actual);
                        reportReatilModel.T1 = targets.Sum(x => x.Target1);
                        reportReatilModel.T2 = targets.Sum(x => x.Target2);
                    }
                    else
                    {
                        reportReatilModel.Actual = 0;
                        reportReatilModel.T1 = 0;
                        reportReatilModel.T2 = 0;
                    }
                    reportReatilModel.Month = month.Name;
                    reportReatilModel.MonthNumber = i;
                    reportReatilModel.Type = dealerManpower.Type;
                    reportReatilModel.ManPowerName = dealerManpower.Name;
                    reportReatilModel.ManPowerId = dealerManpower.Id;
                    reportReatils.Add(reportReatilModel);
                }
                var yearTarget = dealerManpower.YearTargets.SingleOrDefault(x => x.Year == year && x.DealerManpowerId == dealerManpower.Id && x.ObjectInfo.DeletedDate == null);
                if (yearTarget != null)
                {
                    yTd.Add(dealerManpower.Id, yearTarget);
                }
                else
                {
                    yTd.Add(dealerManpower.Id, new YearTarget());
                }

            }
            reprtRetailModel.YTD = yTd;
            reprtRetailModel.CsmId = csmId;
            reprtRetailModel.Id = dealerId;
            reprtRetailModel.Name = dealer.Name;
            reprtRetailModel.ReportReatils = reportReatils.GroupBy(x => x.ManPowerId).ToDictionary(x => x.Key, y => y.OrderBy(z => z.MonthNumber).ToList());

            var tempPath = FileService.GetDownloadFilePath("xlsx");
            var excelFilePath = FileService.ConvertToAbsolute(tempPath);
            var converter = new RetailTrendConverter();
            converter.GenerateExcel(excelFilePath, reprtRetailModel);
            var fileContent = FileService.ReadBytesFromAbsolutePath(excelFilePath);
            FileService.DeleteFile(excelFilePath);
            return File(fileContent, "application/octet-stream", "Retail-Trends.xlsx");
        }