/// <summary> /// Muestra el reporte de Salesman Seleccionado /// </summary> /// <param name="rptSalesman"></param> /// <param name="clsFilter"></param> /// <history> /// [aalcocer] 08/07/2016 Created /// </history> private async void ShowReportBySalesman(EnumRptSalesRoomAndSalesman rptSalesman, ClsFilter clsFilter) { FileInfo file = null; //Deberia validarse con #region Datos del reporte string dateRange = _multiDate ? string.Join("; ", clsFilter.LstMultiDate.Select(x => $"{x.SalesRoom} {DateHelper.DateRange(x.DtStart, x.DtEnd)}")) : DateHelper.DateRange(clsFilter.DtmStart, clsFilter.DtmEnd); string dateRangeFileName = _multiDate ? string.Join("; ", clsFilter.LstMultiDate.Select(x => $"{x.SalesRoom} {DateHelper.DateRange(x.DtStart, x.DtEnd)}")) : DateHelper.DateRangeFileName(clsFilter.DtmStart, clsFilter.DtmEnd); string reporteName = EnumToListHelper.GetEnumDescription(rptSalesman); #endregion #region Filtro(s) List <Tuple <string, string> > filters = new List <Tuple <string, string> > { new Tuple <string, string>("Date Range", dateRange) }; //Si es de solo un registro El sales Room es unico, si no Se toma por Todos o por los seleccionados if (_onlyOnRegister) { filters.Add(new Tuple <string, string>("Sales Room", clsFilter.LstSalesRooms.First())); } else { filters.Add(new Tuple <string, string>("Sales Room", _frmFilter.dtgSalesRoom.Items.Count == clsFilter.LstSalesRooms.Count ? "All" : string.Join(",", clsFilter.LstSalesRooms))); } filters.Add(new Tuple <string, string>("Salesman", $"{clsFilter.Salesman.peID} {clsFilter.Salesman.peN}")); #endregion List <dynamic> list = new List <dynamic>(); string fileFullPath = ReportBuilder.CreateEmptyExcel(reporteName, dateRangeFileName); _frmReportQueue.AddReport(fileFullPath, reporteName); try { switch (rptSalesman) { #region FtmIn&OutHouse case EnumRptSalesRoomAndSalesman.FtmInAndOutHouse: list.AddRange(await BRReportsBySalesRoom.GetRptFTMInOutHouse(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms, clsFilter.Salesman.peID)); if (list.Count > 0) { file = await Reports.RptFTMInOutHouse(reporteName, fileFullPath, filters, list.Cast <RptFTMInOutHouse>().ToList(), clsFilter.DtmStart, clsFilter.DtmEnd); } break; #endregion #region Manifest case EnumRptSalesRoomAndSalesman.Manifest: // Roles filters.Add(new Tuple <string, string>("Roles", clsFilter.LstEnumRole.EnumListToString())); list.AddRange(await BRReportsBySalesRoom.GetRptManiest(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms, clsFilter.Salesman.peID, clsFilter.LstEnumRole)); if (list.Any()) { file = await Reports.RptManifest(reporteName, fileFullPath, filters, list.Cast <RptManifest>().ToList(), clsFilter.DtmStart, clsFilter.DtmEnd); } break; #endregion #region Self Gen & Self Gen Team case EnumRptSalesRoomAndSalesman.SelfGenAndSelfGenTeam: list.AddRange(await BRReportsBySalesRoom.GetRptSelfGenAndSelfGenTeam(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms, clsFilter.Salesman.peID)); if (list.Count > 0) { file = await Reports.RptSelfGenAndSelfGenTeam(reporteName, fileFullPath, filters, list.Cast <RptSelfGenTeam>().ToList(), clsFilter.DtmStart, clsFilter.DtmEnd); } break; #endregion #region Stats by Closer case EnumRptSalesRoomAndSalesman.StatsByCloser: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByCloser(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), clsFilter.Salesman.peID, groupByTeams: clsFilter.BlnGroupedByTeams)); if (list.Any()) { file = await Reports.RptStatisticsByCloser(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByCloser>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Stats by Exit Closer case EnumRptSalesRoomAndSalesman.StatsByExitCloser: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByExitCloser(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), clsFilter.Salesman.peID)); if (list.Any()) { file = await Reports.RptStatisticsByExitCloser(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByExitCloser>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Stats by F.T.B case EnumRptSalesRoomAndSalesman.StatsByFtb: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByFTB(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), clsFilter.Salesman.peID, program: clsFilter.EnumProgram, segments: clsFilter.BlnAllSegments ? null : clsFilter.LstSegments, groupByTeam: clsFilter.BlnGroupedByTeams, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByFTB(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByFTB>().ToList(), clsFilter.BlnIncludeAllSalesmen); } break; #endregion #region Stats by F.T.B. & Locations case EnumRptSalesRoomAndSalesman.StatsByFtbAndLocations: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByFTBLocations(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), clsFilter.Salesman.peID, clsFilter.BlnGroupedByTeams, clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByFTBByLocations(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByFTBLocations>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Stats by F.T.B. & Locations Categories case EnumRptSalesRoomAndSalesman.StatsByFtbAndLocationsCategories: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByFTBCategories(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), clsFilter.Salesman.peID, clsFilter.BlnGroupedByTeams, clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByFTBByCategories(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByFTBCategories>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Statistics by Segments case EnumRptSalesRoomAndSalesman.StatsBySegments: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, clsFilter.Salesman.peID)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Statistics by Segments Own #region Statistics by Segments case EnumRptSalesRoomAndSalesman.StatsBySegmentsOwn: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, clsFilter.Salesman.peID, own: true)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Statistics by Segments Own case EnumRptSalesRoomAndSalesman.StatsBySegmentsCategories: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, clsFilter.Salesman.peID, true)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; case EnumRptSalesRoomAndSalesman.StatsBySegmentsCategoriesOwn: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, clsFilter.Salesman.peID, true, true)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; } if (file == null) { file = ReportBuilder.CreateNoInfoRptExcel(filters, reporteName, fileFullPath); } frmDocumentViewer frmDocumentViewver = new frmDocumentViewer(file, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly)); frmDocumentViewver.Show(); _frmReportQueue.SetExist(file.FullName, file); _frmReportQueue.Activate(); } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Exporta el reporte seleccionado a un archivo de excel. /// </summary> /// <history> /// [edgrodriguez] 21/Jun/2016 Created /// [jorcanche] 01/09/2016 modified se agrego validacion si no se selecciono un reporte /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel /// [emoguel] 08/09/2016 Modified. Ahora abre el visor de reportes /// </history> private async void lstHostReports_Select(object sender, RoutedEventArgs e) { if (e.GetType() == typeof(KeyEventArgs) && ((KeyEventArgs)e).Key != Key.Enter) { return; } var filters = new List <Tuple <string, string> >(); var daterange = DateHelper.DateRange(dtpDate.Value.Value, dtpDate.Value.Value); var dateFileName = DateHelper.DateRangeFileName(dtpDate.Value.Value, dtpDate.Value.Value); FileInfo fileinfo = null; if (lstHostReports.SelectedItem == null) { UIHelper.ShowMessage("You must select a report"); return; } switch ((lstHostReports.SelectedItem as ListBoxItem).Content.ToString()) { case "Premanifest": var lstPremanifest = await BRGeneralReports.GetRptPremanifest(dtpDate.Value.Value, salesRoom : Context.User.SalesRoom.srID); if (lstPremanifest.Any()) { filters.Add(Tuple.Create("Filter Range", daterange)); filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID)); fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstPremanifest, true, true), filters, "Premanifest", dateFileName, clsFormatReports.RptPremanifest()); } else { UIHelper.ShowMessage("There is no data for make a report"); } break; case "Premanifest With Gifts": var lstPremanifestWithG = await BRGeneralReports.GetRptPremanifestWithGifts(dtpDate.Value.Value, salesRoom : Context.User.SalesRoom.srID); if (lstPremanifestWithG.Any()) { filters.Add(Tuple.Create("Filter Range", daterange)); filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID)); fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstPremanifestWithG, true, true), filters, "Premanifest With Gifts", dateFileName, clsFormatReports.RptPremanifestWithGifts()); } else { UIHelper.ShowMessage("There is no data for make a report"); } break; case "Up List End": var lstUplistEnd = await BRReportsBySalesRoom.GetRptUplist(dtpDate.Value.Value.Date, salesRoom : Context.User.SalesRoom.srID, uplistType : 1); if (lstUplistEnd.Any()) { filters.Add(Tuple.Create("Filter Range", daterange)); filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID)); var salesmans = lstUplistEnd.Select(c => c.Salesman).Distinct().ToList(); salesmans.ForEach(s => { var first = lstUplistEnd.FirstOrDefault(u => u.Salesman == s); var index = lstUplistEnd.IndexOf(first); lstUplistEnd.Where(c => c.Salesman == s && lstUplistEnd.IndexOf(c) != index).ToList().ForEach(c => { c.AmountM = 0; c.AmountYtd = 0; }); }); fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstUplistEnd, true, true), filters, "Up List End", dateFileName, clsFormatReport.RptUpList(), isPivot : true, addEnumeration : true); } else { UIHelper.ShowMessage("There is no data for make a report"); } break; case "Up List Start": var lstUplistStart = await BRReportsBySalesRoom.GetRptUplist(dtpDate.Value.Value, salesRoom : Context.User.SalesRoom.srID); if (lstUplistStart.Any()) { filters.Add(Tuple.Create("Filter Range", daterange)); filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID)); var newUplist = new List <RptUpList>(); var times = new List <string> { "08:00", "10:00", "12:00" }; //Replicamos los registros por cada registro de la lista times lstUplistStart.ForEach(c => { times.ForEach(t => { newUplist.Add(new RptUpList { Salesman = c.Salesman, SalesmanN = c.SalesmanN, SalesmanPost = c.SalesmanPost, SalesmanPostN = c.SalesmanPostN, DayOffList = c.DayOffList, Language = c.Language, Location = c.Location, Time = c.Time, TimeN = t, AmountYtd = c.AmountYtd, AmountM = c.AmountM }); }); }); fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(newUplist, true, true), filters, "Up List Start", dateFileName, clsFormatReport.RptUpList(), isPivot : true, addEnumeration : true); } else { UIHelper.ShowMessage("There is no data for make a report"); } break; } if (fileinfo != null) { frmDocumentViewer documentViewver = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false); documentViewver.Owner = this; documentViewver.ShowDialog(); } }
/// <summary> /// Muestra el reporte de Sales Room Seleccionado /// </summary> /// <param name="rptRoomSales"></param> /// <param name="clsFilter"></param> /// <history> /// [ecanul] 05/05/2016 Created /// </history> private async void ShowReportBySalesRoom(EnumRptSalesRoom rptRoomSales, ClsFilter clsFilter) { FileInfo file = null; //Deberia validarse con #region Datos del reporte string dateRange = _multiDate ? string.Join("; ", clsFilter.LstMultiDate.Select(x => $"{x.SalesRoom} {DateHelper.DateRange(x.DtStart, x.DtEnd)}")) : DateHelper.DateRange(clsFilter.DtmStart, clsFilter.DtmEnd); string dateRangeFileName = _multiDate ? string.Join("; ", clsFilter.LstMultiDate.Select(x => $"{x.SalesRoom} {DateHelper.DateRange(x.DtStart, x.DtEnd)}")) : DateHelper.DateRangeFileName(clsFilter.DtmStart, clsFilter.DtmEnd); string reporteName = EnumToListHelper.GetEnumDescription(rptRoomSales); #endregion #region Filtro(s) List <Tuple <string, string> > filters = new List <Tuple <string, string> > { new Tuple <string, string>("Date Range", dateRange) }; //Si es cualquier reporte menos Concentrate Daily Sales o Multidate (porque sus grids son diferentes) se agrega de manera comun if (rptRoomSales != EnumRptSalesRoom.ConcerntrateDailySales && rptRoomSales != EnumRptSalesRoom.StatsBySegmentsCategoriesMultiDatesRanges) { //Si es de solo un registro El sales Room es unico, si no Se toma por Todos o por los seleccionados if (_onlyOnRegister) { filters.Add(new Tuple <string, string>("Sales Room", clsFilter.LstSalesRooms.First())); } else { filters.Add(new Tuple <string, string>("Sales Room", _frmFilter.dtgSalesRoom.Items.Count == clsFilter.LstSalesRooms.Count ? "All" : string.Join(",", clsFilter.LstSalesRooms))); } } if (rptRoomSales == EnumRptSalesRoom.StatsByCloser || rptRoomSales == EnumRptSalesRoom.StatsByExitCloser || rptRoomSales == EnumRptSalesRoom.StatsByFtb) { filters.Add(Tuple.Create("Programs", EnumToListHelper.GetEnumDescription(clsFilter.EnumProgram))); filters.Add(Tuple.Create("Segments", clsFilter.BlnAllSegments ? "ALL" : string.Join(",", clsFilter.LstSegments))); } #endregion List <dynamic> list = new List <dynamic>(); string fileFullPath = ReportBuilder.CreateEmptyExcel(reporteName, dateRangeFileName); _frmReportQueue.AddReport(fileFullPath, reporteName); try { switch (rptRoomSales) { #region Manifest case EnumRptSalesRoom.Manifest: list.AddRange(await BRReportsBySalesRoom.GetRptManiest(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptManifest(reporteName, fileFullPath, filters, list.Cast <RptManifest>().ToList(), clsFilter.DtmStart, clsFilter.DtmEnd); } break; #endregion #region StatsByLocation case EnumRptSalesRoom.StatsByLocation: list.AddRange(await BRReportsBySalesRoom.GetRptStatisticsByLocation(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptStatisticsByLocation(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByLocation>().ToList()); } break; #endregion #region StatsByLocationMonthly case EnumRptSalesRoom.StatsByLocationMonthly: list.AddRange(await BRReportsBySalesRoom.GetRptStaticsByLocationMonthly(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptStaticsByLocationMonthly(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByLocationMonthly>().ToList()); } break; #endregion #region SalesByLocationMonthly case EnumRptSalesRoom.SalesByLocationMonthly: list.AddRange(await BRReportsBySalesRoom.GetRptSalesByLocationMonthly(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptSalesByLocationMonthly(reporteName, fileFullPath, filters, list.Cast <RptSalesByLocationMonthly>().ToList()); } break; #endregion #region StatsByLocationAndSalesRoom case EnumRptSalesRoom.StatsByLocationAndSalesRoom: list.AddRange(await BRReportsBySalesRoom.GetRptStatisticsBySalesRoomLocation(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptStatisticsBySalesRoomLocation(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySalesRoomLocation>().ToList()); } break; #endregion #region ConcerntrateDailySales case EnumRptSalesRoom.ConcerntrateDailySales: #region FiltroSalesRoomConcentrate clsFilter.LstSalesRooms.AddRange(clsFilter.LstGoals.Select(c => c.SalesRoomByUser.srID)); filters.Add(new Tuple <string, string>("Sales Room", string.Join("/", clsFilter.LstGoals.Select(c => c.SalesRoomByUser.srID).ToList()))); #endregion list.AddRange(await BRReportsBySalesRoom.GetRptConcentrateDailySales(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstGoals.Select(c => c.SalesRoomByUser.srID).ToList())); if (list.Count > 0) { file = await Reports.RptConcentrateDailySales(reporteName, fileFullPath, clsFilter.DtmEnd, filters, list.Cast <RptConcentrateDailySales>().ToList(), clsFilter.LstGoals); } break; #endregion #region DailySales case EnumRptSalesRoom.DailySales: list.AddRange(await BRReportsBySalesRoom.GetRptDailySalesDetail(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); List <RptDailySalesHeader> lstHeader = await BRReportsBySalesRoom.GetRptDailySalesHeader(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms); if (list.Count > 0 && lstHeader.Count > 0) { file = await Reports.RptDailySales(reporteName, dateRange, fileFullPath, filters, list.Cast <RptDailySalesDetail>().ToList(), lstHeader, clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.Goal); } break; #endregion #region FTM In & Out House case EnumRptSalesRoom.FtmInAndOutHouse: list.AddRange(await BRReportsBySalesRoom.GetRptFTMInOutHouse(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptFTMInOutHouse(reporteName, fileFullPath, filters, list.Cast <RptFTMInOutHouse>().ToList(), clsFilter.DtmStart, clsFilter.DtmEnd); } break; #endregion #region Stats by Segments case EnumRptSalesRoom.StatsBySegments: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Stats by Segments #region Stats by Segments (OWN) case EnumRptSalesRoom.StatsBySegmentsOwn: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, own: true, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Stats by Segments (OWN) #region Stats by Segments Categories case EnumRptSalesRoom.StatsBySegmentsCategories: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, bySegmentsCategories: true, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Stats by Segments Categories #region Stats by Segments Categories (OWN) case EnumRptSalesRoom.StatsBySegmentsCategoriesOwn: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(new[] { clsFilter.DtmStart }, new[] { clsFilter.DtmEnd }, clsFilter.LstSalesRooms, bySegmentsCategories: true, own: true, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Stats by Segments Categories (OWN) #region Stats by Segments Categories (Multi Date Ranges) case EnumRptSalesRoom.StatsBySegmentsCategoriesMultiDatesRanges: list.AddRange(await BRReportsBySalesRoom.GetStatisticsBySegments(clsFilter.LstMultiDate.Select(x => x.DtStart), clsFilter.LstMultiDate.Select(x => x.DtEnd), clsFilter.LstMultiDate.Select(x => x.SalesRoom), bySegmentsCategories: true, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsBySegments(reporteName, fileFullPath, filters, list.Cast <RptStatisticsBySegments>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion Stats by Segments Categories (Multi Date Ranges) #region Stats by Closer case EnumRptSalesRoom.StatsByCloser: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByCloser(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), program: clsFilter.EnumProgram, segments: clsFilter.BlnAllSegments ? null : clsFilter.LstSegments, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen, groupByTeams: clsFilter.BlnGroupedByTeams)); if (list.Any()) { file = await Reports.RptStatisticsByCloser(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByCloser>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Stats by Exit Closer case EnumRptSalesRoom.StatsByExitCloser: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByExitCloser(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), program: clsFilter.EnumProgram, segments: clsFilter.BlnAllSegments ? null : clsFilter.LstSegments, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByExitCloser(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByExitCloser>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Self Gen & Self Gen Team case EnumRptSalesRoom.SelfGenAndSelfGenTeam: list.AddRange(await BRReportsBySalesRoom.GetRptSelfGenAndSelfGenTeam(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms)); if (list.Count > 0) { file = await Reports.RptSelfGenAndSelfGenTeam(reporteName, fileFullPath, filters, list.Cast <RptSelfGenTeam>().ToList(), clsFilter.DtmStart, clsFilter.DtmEnd); } break; #endregion #region Stats by F.T.B case EnumRptSalesRoom.StatsByFtb: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByFTB(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), program: clsFilter.EnumProgram, segments: clsFilter.BlnAllSegments ? null : clsFilter.LstSegments, groupByTeam: clsFilter.BlnGroupedByTeams, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByFTB(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByFTB>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Stats by F.T.B. & Locations case EnumRptSalesRoom.StatsByFtbAndLocatios: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByFTBLocations(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), groupByTeam: clsFilter.BlnGroupedByTeams, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByFTBByLocations(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByFTBLocations>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Stats by F.T.B. & Locations Categories case EnumRptSalesRoom.StatsByFtbAndLocatiosCategories: list.AddRange(await BRReportsBySalesRoom.GetStatisticsByFTBCategories(clsFilter.DtmStart, clsFilter.DtmEnd, clsFilter.LstSalesRooms.First(), groupByTeam: clsFilter.BlnGroupedByTeams, includeAllSalesmen: clsFilter.BlnIncludeAllSalesmen)); if (list.Any()) { file = await Reports.RptStatisticsByFTBByCategories(reporteName, fileFullPath, filters, list.Cast <RptStatisticsByFTBCategories>().ToList(), clsFilter.BlnGroupedByTeams); } break; #endregion #region Efficiency Weekly case EnumRptSalesRoom.EfficiencyWeekly: list.AddRange(await BRReportsBySalesRoom.GetRptEfficiencyWeekly(clsFilter.lstEfficiency.Select(x => x.efDateFrom), clsFilter.lstEfficiency.Select(x => x.efDateTo), clsFilter.LstSalesRooms.First().ToString())); if (list.Any()) { file = await Reports.RptEfficiencyWeekly(reporteName, fileFullPath, filters, list.Cast <RptEfficiencyWeekly>().ToList(), clsFilter); } break; #endregion } if (file == null) { file = ReportBuilder.CreateNoInfoRptExcel(filters, reporteName, fileFullPath); } frmDocumentViewer frmDocumentViewver = new frmDocumentViewer(file, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly)); frmDocumentViewver.Show(); _frmReportQueue.SetExist(file.FullName, file); _frmReportQueue.Activate(); } catch (Exception ex) { UIHelper.ShowMessage(ex); } }