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); }
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; }
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; }
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; }
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"); }
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"); }