Пример #1
0
 /// <summary>
 /// Muestra el reporte en un report viewver
 /// </summary>
 /// <param name="finfo">File a mostrat</param>
 /// <history>
 /// [emoguel] 07/09/2016 modified---> ahora ya no habre el archivo de excel
 /// </history>
 private void OpenReport(FileInfo finfo)
 {
     if (finfo != null)
     {
         frmDocumentViewer documentViewver = new frmDocumentViewer(finfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
         documentViewver.Owner = this;
         documentViewver.ShowDialog();
     }
 }
Пример #2
0
 /// <summary>
 /// abre el reporte de excel despues de guardarse
 /// </summary>
 /// <history>
 /// [jorcanche] 07/05/2016 created
 /// [emoguel] 08/09/2016 Modified. Ahora abre el visor de reportes
 /// </history>
 private static void OpenFile(FileInfo file, Window window)
 {
     if (file != null)
     {
         frmDocumentViewer documentViewer = new frmDocumentViewer(file, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
         documentViewer.Owner = window;
         documentViewer.ShowDialog();
     }
 }
Пример #3
0
        /// <summary>
        /// Exporta el reporte seleccionado a un archivo de excel.
        /// </summary>
        /// <history>
        /// [jorcanche] 31/ago/2016 Created
        /// [emoguel] 08/09/2016 Ahora abre el visor de reportes
        /// </history>
        private async void lstReports_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 (lstReports.SelectedItem == null)
            {
                UIHelper.ShowMessage("You must select a report");
                return;
            }
            switch ((lstReports.SelectedItem as ListBoxItem).Content.ToString())
            {
            case "Deposits by PR":
                var lstRptDepPr = await BRReportsByLeadSource.GetRptDepositByPR(dtpDate.Value.Value, dtpDate.Value.Value, Context.User.LeadSource.lsID);

                if (lstRptDepPr.Any())
                {
                    filters.Add(Tuple.Create("Filter Range", daterange));
                    filters.Add(Tuple.Create("Lead Source", Context.User.LeadSource.lsID));

                    var lstDepPr   = lstRptDepPr[0] as List <RptDepositsByPR>;
                    var currencies = lstRptDepPr[1] as List <Currency>;
                    var payType    = lstRptDepPr[2] as List <PaymentType>;

                    lstDepPr.ForEach(c => {
                        c.guPRInvit1 = $"{c.guPRInvit1} {c.peN}";
                        c.gucu       = currencies.First(cu => cu.cuID == c.gucu).cuN ?? "";
                        c.gupt       = payType.First(pt => pt.ptID == c.gupt).ptN ?? "";
                    });

                    fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstDepPr, true, false),
                                                                          filters, "Deposits by PR", dateFileName, clsFormatReports.RptDepositByPr(), blnShowSubtotal : true, blnRowGrandTotal : true, isPivot : true, addEnumeration : true);
                }
                else
                {
                    UIHelper.ShowMessage("There is no data for make a report");
                }
                break;
            }

            if (fileinfo != null)
            {
                frmDocumentViewer documentViewer = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                documentViewer.Owner = this;
                documentViewer.ShowDialog();
            }
        }
Пример #4
0
        /// <summary>
        /// Exporta los datos a un documento de Excel.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 28/Abr/2016 Created
        /// </history>
        private async void BtnPrint_OnClick(object sender, RoutedEventArgs e)
        {
            biWait.IsBusy = true;
            if (dgvLoginsLog.Items.Count <= 0)
            {
                return;
            }
            biWait.BusyContent = "Loading Report...";

            string message = ValidateFields();

            if (message != "")
            {
                UIHelper.ShowMessage(message); return;
            }

            DataTable dtRptLoginsLog = TableHelper.GetDataTableFromList(lstLoginsLog.View.Cast <RptLoginLog>().ToList(), true,
                                                                        false, true);

            List <Tuple <string, string> > filters = new List <Tuple <string, string> >
            {
                Tuple.Create("Date Range",
                             DateHelper.DateRange(dtmStart.Value.Value, dtmEnd.Value.Value)),
                Tuple.Create("Location", cbLocation.SelectedValue.ToString()),
                Tuple.Create("Personnel", cbPersonnel.SelectedValue.ToString()),
                Tuple.Create("PC Name", cbPcName.SelectedValue.ToString())
            };

            string strReportName = "Logins Log";
            string dateFileName  = DateHelper.DateRangeFileName(dtmStart.Value.Value, dtmEnd.Value.Value);

            string fileFullPath = ReportBuilder.CreateEmptyExcel(strReportName, dateFileName);

            frmReportQ.AddReport(fileFullPath, strReportName);
            try
            {
                var finfo = await ReportBuilder.CreateCustomExcelAsync(dtRptLoginsLog, filters, strReportName, string.Empty, clsFormatReport.RptLoginsLog(), isRptQueue : true, filePath : fileFullPath, addEnumeration : true);

                if (finfo == null)
                {
                    finfo = ReportBuilder.CreateNoInfoRptExcel(filters, strReportName, fileFullPath);
                }
                frmDocumentViewer frmDocumentViewver = new frmDocumentViewer(finfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly));
                frmDocumentViewver.Show();
                frmReportQ.SetExist(finfo.FullName, finfo);
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
                biWait.IsBusy = false;
            }
            biWait.IsBusy = false;
        }
Пример #5
0
        /// <summary>
        /// Exporta los registros de grid a un archivo de excel.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 08/07/2016 Created
        /// [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 btnPrint_Click(object sender, RoutedEventArgs e)
        {
            if (((List <ExchangeRateLogData>)_cvsExchangeRate.Source).Any())
            {
                var fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList((List <ExchangeRateLogData>)_cvsExchangeRate.Source, true, true, true),
                                                                          new List <Tuple <string, string> > {
                    Tuple.Create("Date Range", DateHelper.DateRange(DateTime.Today, DateTime.Today)), Tuple.Create("Gift ID", string.Join(",", ((List <ExchangeRateLogData>)_cvsExchangeRate.Source).Select(c => c.elcu).Distinct().ToList()))
                },
                                                                          "Exchange Rates Log", DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today), EpplusHelper.OrderColumns(getExchangeRateLogDataGrid.Columns.ToList(), clsFormatReport.RptExchangeRatesLog()));

                if (fileinfo != null)
                {
                    frmDocumentViewer documentViewer = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewer.Owner = this;
                    documentViewer.ShowDialog();
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report");
            }
        }
Пример #6
0
        /// <summary>
        /// Imprime el reporte del Sale Log
        /// </summary>
        /// <history>
        /// [jorcanche]  created 07072016
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// </history>
        private async void btnPrintSaleLog_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (saleLogDataDataGrid == null)
                {
                    return;
                }
                if (saleLogDataDataGrid.Items.Count == 0)
                {
                    UIHelper.ShowMessage("There is no info to make a report");
                    return;
                }
                Mouse.OverrideCursor = Cursors.Wait;
                FileInfo fileInfo = await ReportBuilder.CreateCustomExcelAsync(
                    TableHelper.GetDataTableFromList((List <SaleLogData>)saleLogDataDataGrid.ItemsSource, true, true, true),
                    new List <Tuple <string, string> > {
                    Tuple.Create("Sale Id", _sale.ToString())
                },
                    "Sale Log",
                    DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today),
                    EpplusHelper.OrderColumns(saleLogDataDataGrid.Columns.ToList(), Classes.clsFormatReport.RptSaleLog()));

                if (fileInfo != null)
                {
                    frmDocumentViewer documentViewver = new frmDocumentViewer(fileInfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewver.Owner = this;
                    documentViewver.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        }
Пример #7
0
        /// <summary>
        /// Exporta los registros de grid a un archivo de excel.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 08/07/2016 Created
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// [emoguel] 08/09/2016 Modified. Ahora se abre el visor de reportes
        /// </history>
        private async void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            if (((List <SalesRoomLogData>)_salesRoomLog.Source).Any())
            {
                var fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList((List <SalesRoomLogData>)_salesRoomLog.Source, true, true, true),
                                                                          new List <Tuple <string, string> > {
                    Tuple.Create("Date Range", DateHelper.DateRange(DateTime.Today, DateTime.Today)), Tuple.Create("Sales Room ID", Context.User.SalesRoom.srID)
                },
                                                                          "Sales Rooms Log", DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today), EpplusHelper.OrderColumns(dtgSalesRoomLog.Columns.ToList(), clsFormatReport.RptCloseSalesRoomLog()));

                if (fileinfo != null)
                {
                    frmDocumentViewer documentViewver = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewver.Owner = this;
                    documentViewver.ShowDialog();
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report");
            }
        }
Пример #8
0
        /// <summary>
        /// Guarda un excel con los datos del grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 01/07/2016
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// </history>
        private async void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;
                var fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList((List <GiftLogData>)dgrGifsLog.ItemsSource, true, true, true), new List <Tuple <string, string> > {
                    Tuple.Create("GIFT ID", idGift)
                },
                                                                          $"Gift Logs - {idGift}", DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today), EpplusHelper.OrderColumns(dgrGifsLog.Columns.ToList(), clsFormatReport.RptGiftLog()));

                frmDocumentViewer documentViewver = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                documentViewver.Owner = this;
                documentViewver.ShowDialog();
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        }
Пример #9
0
        /// <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();
            }
        }
Пример #10
0
        public async static void PremanifestToExcel(List <RptPremanifestOuthouse> lstpremanifest, Window window)
        {
            _filters = new List <Tuple <string, string> > {
                Tuple.Create("Lead Source", Context.User.LeadSource.lsID)
            };
            var date = BRHelpers.GetServerDate();

            if (lstpremanifest.Count > 0)
            {
                var premanifestAux = lstpremanifest.Select(c => new
                {
                    c.srN,
                    c.guID,
                    c.guOutInvitNum,
                    c.Deposit,
                    c.guHotel,
                    c.guRoomNum,
                    c.guLastName1,
                    c.guFirstName1,
                    c.guco,
                    c.coN,
                    c.guBookD,
                    c.guBookT,
                    c.guPRInvit1,
                    guShow = c.guShow ? "✓" : "",
                    guSale = c.guSale ? "✓" : "",
                    c.guComments,
                }).ToList();

                var dt = TableHelper.GetDataTableFromList(premanifestAux, true);
                _rptName = "Premanifest  Outhouse " + Context.User.LeadSource.lsN;
                var dateRange = DateHelper.DateRangeFileName(date, date);
                var format    = new ColumnFormatList();

                format.Add("SR", "srN", isGroup: true, isVisible: false);
                format.Add("Deposit", "Deposit", isGroup: true, isVisible: false);
                format.Add("GUID", "guID");
                format.Add("Out Invit", "guOutInvitNum");
                format.Add("Hotel", "guHotel");
                format.Add("Room", "guRoomNum");
                format.Add("Last Name", "guLastName1");
                format.Add("Firs tName", "guFirstName1");
                format.Add("Country ID", "guco");
                format.Add("Country", "coN");
                format.Add("Book D", "guBookD", format: EnumFormatTypeExcel.Date);
                format.Add("Book T", "guBookT", format: EnumFormatTypeExcel.Time);
                format.Add("PR B", "guPRInvit1");
                format.Add("Sh", "guShow", axis: ePivotFieldAxis.Values, aligment: ExcelHorizontalAlignment.Center, function: DataFieldFunctions.Count);
                format.Add("Sale", "guSale", axis: ePivotFieldAxis.Values, aligment: ExcelHorizontalAlignment.Center, function: DataFieldFunctions.Count);
                format.Add("Deposits / Comments", "guComments");

                var info = await ReportBuilder.CreateCustomExcelAsync(dt, _filters, _rptName, dateRange, format, blnShowSubtotal : true, blnRowGrandTotal : true, addEnumeration : true);

                if (info != null)
                {
                    frmDocumentViewer documentViewer = new frmDocumentViewer(info, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewer.Owner = window;
                    documentViewer.ShowDialog();
                }
            }
        }
Пример #11
0
        /// <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);
            }
        }
Пример #12
0
        /// <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);
            }
        }