예제 #1
0
 private void DateSelected()
 {
     Mes         = Date.ToString("MMMM", culture);
     MesExcel    = Date.ToString("MMM", culture);
     Anio        = Date.ToString("yyyy", culture);
     SumaIngreso = ListaIngresos.Where(x => x.Mes == Date.ToString("MMM", culture) &&
                                       x.Anio == Date.ToString("yyyy", culture)).ToList().Sum(x => double.Parse(x.IngresoCantidad)).ToString();
     CollectionIngresos = new ObservableCollection <Ingresos>(ListaIngresos.Where(x => x.Mes == Date.ToString("MMM", culture) && x.Anio == Date.ToString("yyyy", culture)).OrderByDescending(x => double.Parse(x.Dia)).ToList());
 }
예제 #2
0
        public void Editar(Ingresos ingresos)
        {
            var ingresoAntiguo = ListaIngresos.Find(x => x.IngresoId == ingresos.IngresoId);

            ingresoAntiguo = ingresos;
            dataService.Update(ingresoAntiguo, true);
            SumaIngreso = ListaIngresos.Where(x => x.Mes == Date.ToString("MMM", culture) &&
                                              x.Anio == Date.ToString("yyyy", culture)).ToList().Sum(x => double.Parse(x.IngresoCantidad)).ToString();
            CollectionIngresos = new ObservableCollection <Ingresos>(ListaIngresos.OrderByDescending(x => double.Parse(x.Dia)).ToList());
            instanciarPaginasService.Instanciar();
        }
예제 #3
0
        private async void AgregarIngreso()
        {
            //Crea el objeto Ingreso, lo agrego a la lista del mes, y después se hace la sumatoria de la lista

            if (MontoIngreso == "0" || string.IsNullOrEmpty(MontoIngreso) || string.IsNullOrWhiteSpace(MontoIngreso))
            {
                await dialogService.ShowMessage("Error", "Debe asignar un valor mayor que cero");

                return;
            }

            Ingresos             = new Ingresos();
            Ingresos.Anio        = Date.ToString("yyyy", culture);
            Ingresos.Mes         = Date.ToString("MMM", culture);
            Ingresos.Dia         = Date.ToString("dd", culture);
            Ingresos.ImagenFecha = "date";
            if (string.IsNullOrEmpty(OrigenIngreso))
            {
                OrigenIngreso = "Sin Origen";
            }
            Ingresos.IngresoNombre = string.Format("{0}{1}", OrigenIngreso.Substring(0, 1).ToUpper(), OrigenIngreso.Substring(1));
            Ingresos.ImagenOrigen  = "income";
            if (MontoIngreso == null)
            {
                MontoIngreso = 0.ToString();
            }
            if (!double.TryParse(MontoIngreso, out double result))
            {
                await dialogService.ShowMessage("Error", "El contenido del monto debe ser un número");

                MontoIngreso = null;
                return;
            }
            if (MontoIngreso.Contains("-"))
            {
                Ingresos.IngresoCantidad = MontoIngreso.Replace("-", "");
            }
            else
            {
                Ingresos.IngresoCantidad = string.Format("{0}", MontoIngreso);
            }
            Ingresos.ImagenMonto = "money";
            ListaIngresos.Add(Ingresos);
            //Realizar la sumatoria con los ingresos pertenecientes al mes y año elegido
            SumaIngreso   = ListaIngresos.Where(x => x.Mes == Ingresos.Mes && x.Anio == Ingresos.Anio).ToList().Sum(x => double.Parse(x.IngresoCantidad)).ToString();
            MontoIngreso  = null;
            OrigenIngreso = null;
            dataService.Save(ListaIngresos, true);
            CollectionIngresos = new ObservableCollection <Ingresos>(ListaIngresos.Where(x => x.Mes == Ingresos.Mes && x.Anio == Ingresos.Anio).OrderByDescending(x => double.Parse(x.Dia)).ToList());
            instanciarPaginasService.Instanciar();
        }
예제 #4
0
        public async void Delete(Ingresos ingresos)
        {
            var confirmacion = await dialogService.ShowMessageConfirmacion("Mensaje", "¿Desea borrar este elemento?");

            if (confirmacion)
            {
                var ingresoAntiguo = ListaIngresos.Find(x => x.IngresoId == ingresos.IngresoId);
                dataService.Delete(ingresoAntiguo);
                ListaIngresos.Remove(ingresoAntiguo);
                SumaIngreso = ListaIngresos.Where(x => x.Mes == Date.ToString("MMM", culture) &&
                                                  x.Anio == Date.ToString("yyyy", culture)).ToList().Sum(x => double.Parse(x.IngresoCantidad)).ToString();

                CollectionIngresos = new ObservableCollection <Ingresos>(ListaIngresos.OrderByDescending(x => double.Parse(x.Dia)).ToList());
                instanciarPaginasService.Instanciar();
            }
            else
            {
                return;
            }
        }
        public async void ClickSwitch(object obj)
        {
            switch (obj.ToString())
            {
            case "GenerarReporte":
                if (!pConsultar)
                {
                    ReportViewerVisible = Visibility.Collapsed;
                    new Dialogos().ConfirmacionDialogo("Validación", "Su usuario no tiene privilegios para realizar esta acción");
                    break;
                }
                if (!ListaIngresosSeleccionados.Any())
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    ReportViewerVisible = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno para generar el reporte.", MessageDialogStyle.Affirmative, mySettings);

                    ReportViewerVisible = Visibility.Visible;
                }
                else
                {
                    ReportViewerVisible = Visibility.Collapsed;
                    Reporte.Reset();
                    await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                    {
                        GenerarReporte();
                    });

                    ReportViewerVisible = Visibility.Visible;
                }
                break;

            case "ObtenerIngresos":
                try
                {
                    if (!pConsultar)
                    {
                        ReportViewerVisible = Visibility.Collapsed;
                        new Dialogos().ConfirmacionDialogo("Validación", "Su usuario no tiene privilegios para realizar esta acción");
                        break;
                    }
                    ReportViewerVisible = Visibility.Collapsed;
                    await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                    {
                        Pagina        = 1;
                        ListaIngresos = new List <cCredencialBiblioteca>();
                        EmptyVisible  = true;
                        ObtenerIngresos();
                    });

                    ReportViewerVisible = Visibility.Visible;
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(ex.Message);
                }
                break;

            case "Permitir":
                if (!SelectedIngreso.Seleccionado)
                {
                    SeleccionarTodosIngresos = false;
                }
                else
                {
                    SeleccionarTodosIngresos = !ListaIngresos.Where(w => !w.Seleccionado).Any();
                }
                break;

            case "SeleccionarTodosIngresos":
                if (ListaIngresos.Any())
                {
                    var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresos);
                    foreach (var Ingreso in lista_ingresos)
                    {
                        Ingreso.Seleccionado = SeleccionarTodosIngresos;
                    }
                    ListaIngresos = lista_ingresos;
                }
                else
                {
                    SeleccionarTodosIngresos = false;
                }
                break;

            case "PermitirSeleccionado":
                if (!SelectedIngresoSeleccionado.Seleccionado)
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = !ListaIngresosSeleccionados.Where(w => !w.Seleccionado).Any();
                }
                break;

            case "SeleccionarTodosIngresosSeleccionados":
                if (ListaIngresosSeleccionados.Any())
                {
                    var lista_ingresos_Seleccionados = new List <cCredencialBiblioteca>(ListaIngresosSeleccionados);
                    foreach (var Ingreso in lista_ingresos_Seleccionados)
                    {
                        Ingreso.Seleccionado = SeleccionarTodosIngresosSeleccionados;
                    }
                    ListaIngresosSeleccionados = lista_ingresos_Seleccionados;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                break;

            case "AgregarInternos":
                if (ListaIngresos.Any())
                {
                    if (ListaIngresos.Where(w => w.Seleccionado).Any())
                    {
                        var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresos);
                        var lista_ingresos_Seleccionados = new List <cCredencialBiblioteca>(
                            ListaIngresos.Where(w => w.Seleccionado).
                            OrderByDescending(oD => oD.Id_Anio).
                            ThenByDescending(tD => tD.Id_Imputado).
                            ToList());
                        foreach (var ingreso_Seleccionado in lista_ingresos_Seleccionados)
                        {
                            ingreso_Seleccionado.Seleccionado = false;
                            lista_ingresos.Remove(ingreso_Seleccionado);
                        }
                        ListaIngresos             = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList() : new List <cCredencialBiblioteca>();
                        EmptyVisible              = !ListaIngresos.Any();
                        EmptySeleccionadosVisible = false;
                        ListaIngresosSeleccionados.AddRange(lista_ingresos_Seleccionados);
                        ListaIngresosSeleccionados = ListaIngresosSeleccionados.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList();
                        SeleccionarTodosIngresos   = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        ReportViewerVisible = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        ReportViewerVisible = Visibility.Visible;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    ReportViewerVisible = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos vacía. Realice una búsqueda e intente de nuevo.", MessageDialogStyle.Affirmative, mySettings);

                    ReportViewerVisible = Visibility.Visible;
                }
                break;

            case "RemoverInternos":
                if (ListaIngresosSeleccionados.Any())
                {
                    if (ListaIngresosSeleccionados.Where(w => w.Seleccionado).Any())
                    {
                        var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresosSeleccionados);
                        var lista_ingresos_Seleccionados = new List <cCredencialBiblioteca>(
                            ListaIngresosSeleccionados.Where(w => w.Seleccionado).
                            OrderByDescending(oD => oD.Id_Anio).
                            ThenByDescending(tD => tD.Id_Imputado).
                            ToList());
                        foreach (var ingreso_Seleccionado in lista_ingresos_Seleccionados)
                        {
                            ingreso_Seleccionado.Seleccionado = false;
                            lista_ingresos.Remove(ingreso_Seleccionado);
                        }
                        ListaIngresosSeleccionados = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList() : new List <cCredencialBiblioteca>();
                        EmptySeleccionadosVisible  = !ListaIngresosSeleccionados.Any();
                        EmptyVisible = false;
                        ListaIngresos.AddRange(lista_ingresos_Seleccionados);
                        ListaIngresos = ListaIngresos.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList();
                        SeleccionarTodosIngresosSeleccionados = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        ReportViewerVisible = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        ReportViewerVisible = Visibility.Visible;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    ReportViewerVisible = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos Seleccionados vacía.", MessageDialogStyle.Affirmative, mySettings);

                    ReportViewerVisible = Visibility.Visible;
                }
                break;
            }
        }
예제 #6
0
        private async void Excel()
        {
            var ingresosView = IngresosView.GetInstance();
            var confirmacion = await dialogService.ShowMessageConfirmacion("Mensaje", "¿Desea exportar los ingresos a una planilla de cálculo?");

            if (confirmacion)
            {
                try
                {
                    DateSelected();
                    if (ListaIngresos.Count == 0)
                    {
                        await dialogService.ShowMessage("Error", "Se deben agregar elementos al balance");

                        ingresosView.excelUnTapped();
                        return;
                    }
                    using (ExcelEngine excelEngine = new ExcelEngine())
                    {
                        cont = 0;
                        //Seleccionar versión de Excel 2013
                        excelEngine.Excel.DefaultVersion = ExcelVersion.Excel2013;

                        //Crear workbook con una hoja de trabajo
                        IWorkbook workbook = excelEngine.Excel.Workbooks.Create(1);

                        //Acceder a la primera hoja de trabajo desde la instancia de workbook
                        IWorksheet worksheet = workbook.Worksheets[0];

                        IMigrantRange migrantRange = worksheet.MigrantRange;

                        foreach (var elemento in ListaIngresos.Where(x => x.Mes.Equals(MesExcel) && x.Anio.Equals(Anio)).ToList())
                        {
                            // Writing Data.
                            //cont aumenta en 7 la posición de las filas en cada producto, las columnas dependen de los días elegidos

                            migrantRange["A1"].Text = "Fecha";
                            migrantRange["A1"].CellStyle.Font.Bold = true;

                            migrantRange["B1"].Text = "Ingreso";
                            migrantRange["B1"].CellStyle.Font.Bold = true;

                            migrantRange["C1"].Text = "Monto";
                            migrantRange["C1"].CellStyle.Font.Bold = true;


                            //Nueva celda
                            migrantRange.ResetRowColumn(cont + 2, 1);
                            migrantRange.Text = string.Format("{0}/{1}/{2}", elemento.Dia, elemento.Mes, elemento.Anio);


                            //migrantRange.CellStyle.Borders.LineStyle = ExcelLineStyle.Medium;

                            //Nueva celda
                            migrantRange.ResetRowColumn(cont + 2, 2);
                            migrantRange.Text = elemento.IngresoNombre;
                            //Nueva celda
                            migrantRange.ResetRowColumn(cont + 2, 3);

                            migrantRange.Number = double.Parse(elemento.IngresoCantidad);
                            if (double.Parse(elemento.IngresoCantidad) > 0)
                            {
                                worksheet[string.Format("C{0}", cont + 2)].CellStyle.Font.Color = ExcelKnownColors.Green;
                            }
                            else if (double.Parse(elemento.IngresoCantidad) < 0)
                            {
                                worksheet[string.Format("C{0}", cont + 2)].CellStyle.Font.Color = ExcelKnownColors.Red;
                            }


                            cont = cont + 1;
                        }
                        ;

                        IRange range = worksheet.Range[string.Format("A{0}:B{0}", cont + 2)];
                        range.Merge();
                        range.Text = string.Format("Balance de Ingresos: ");
                        range.CellStyle.HorizontalAlignment = ExcelHAlign.HAlignCenter;
                        range.CellStyle.Font.Bold           = true;
                        worksheet[string.Format("C{0}", cont + 2)].Number = double.Parse(SumaIngreso);
                        worksheet[string.Format("C{0}", cont + 2)].CellStyle.Font.Bold = true;
                        if (double.Parse(SumaIngreso) > 0)
                        {
                            worksheet[string.Format("C{0}", cont + 2)].CellStyle.ColorIndex = ExcelKnownColors.Green;
                        }
                        else if (double.Parse(SumaIngreso) < 0)
                        {
                            worksheet[string.Format("C{0}", cont + 2)].CellStyle.ColorIndex = ExcelKnownColors.Red;
                        }
                        worksheet.Range[string.Format("A1:C{0}", cont + 2)].BorderInside();
                        worksheet.Range[string.Format("A1:C{0}", cont + 2)].BorderAround();
                        worksheet.UsedRange.AutofitColumns();

                        //Save the workbook to stream in xlsx format.
                        MemoryStream stream = new MemoryStream();
                        workbook.SaveAs(stream);

                        workbook.Close();

                        //Save the stream as a file in the device and invoke it for viewing
                        DependencyService.Get <ISave>().SaveAndView(string.Format("Balance Mensual de Ingresos {0}-{1}", MesExcel, Anio) + ".xlsx", "application/msexcel", stream);

                        await dialogService.ShowMessage("Mensaje", string.Format("El balance se guardó como archivo de nombre '{0}' en la carpeta Balances", string.Format("Balance Mensual de Ingresos {0}-{1}", MesExcel, Anio) + ".xlsx"));
                    }
                }
                catch (Exception e)
                {
                    await dialogService.ShowMessage("Error", "No se pudo exportar a hoja de cálculo. Intenta habilitando los permisos en ajustes.");
                }
            }
            ingresosView.excelUnTapped();
        }
예제 #7
0
        public async void ClickSwitch(object obj)
        {
            switch (obj.ToString())
            {
            case "GenerarReporte":
                if (!ListaIngresosSeleccionados.Any())
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    BrazaleteReportViewerVisible = Visibility.Collapsed;
                    GafeteReportViewerVisible    = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno para generar el reporte.", MessageDialogStyle.Affirmative, mySettings);

                    BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                    GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                }
                else
                {
                    Reporte.Reset();
                    if (BrazaleteSelected)
                    {
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GenerarReporte(enumTipoReporte.BRAZALETE);
                        BrazaleteReportViewerVisible = Visibility.Visible;
                    }
                    else
                    {
                        GafeteReportViewerVisible = Visibility.Collapsed;
                        GenerarReporte(enumTipoReporte.GAFETE);
                        GafeteReportViewerVisible = Visibility.Visible;
                    }
                }
                break;

            case "ObtenerIngresos":
                try
                {
                    System.Windows.Application.Current.Dispatcher.Invoke((System.Action)(delegate
                    {
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GafeteReportViewerVisible    = Visibility.Collapsed;
                    }));
                    await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                    {
                        Pagina        = 1;
                        ListaIngresos = new List <cInternoGafeteBrazalete>();
                        EmptyVisible  = true;
                        ObtenerIngresos();
                    });

                    System.Windows.Application.Current.Dispatcher.Invoke((System.Action)(delegate
                    {
                        BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                        GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                    }));
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(ex.Message);
                }
                break;

            case "Permitir":
                if (!SelectedIngreso.SELECCIONADO)
                {
                    SeleccionarTodosIngresos = false;
                }
                else
                {
                    SeleccionarTodosIngresos = !ListaIngresos.Where(w => !w.SELECCIONADO).Any();
                }
                break;

            case "SeleccionarTodosIngresos":
                if (ListaIngresos.Any())
                {
                    var lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresos);
                    foreach (var Ingreso in lista_ingresos)
                    {
                        Ingreso.SELECCIONADO = SeleccionarTodosIngresos;
                    }
                    ListaIngresos = lista_ingresos;
                }
                else
                {
                    SeleccionarTodosIngresos = false;
                }
                break;

            case "PermitirSeleccionado":
                if (!SelectedIngresoSeleccionado.SELECCIONADO)
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = !ListaIngresosSeleccionados.Where(w => !w.SELECCIONADO).Any();
                }
                break;

            case "SeleccionarTodosIngresosSeleccionados":
                if (ListaIngresosSeleccionados.Any())
                {
                    var lista_ingresos_seleccionados = new List <cInternoGafeteBrazalete>(ListaIngresosSeleccionados);
                    foreach (var Ingreso in lista_ingresos_seleccionados)
                    {
                        Ingreso.SELECCIONADO = SeleccionarTodosIngresosSeleccionados;
                    }
                    ListaIngresosSeleccionados = lista_ingresos_seleccionados;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                break;

            case "AgregarInternos":
                if (ListaIngresos.Any())
                {
                    if (ListaIngresos.Where(w => w.SELECCIONADO).Any())
                    {
                        var lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresos);
                        var lista_ingresos_seleccionados = new List <cInternoGafeteBrazalete>(
                            ListaIngresos.Where(w => w.SELECCIONADO).
                            OrderByDescending(oD => oD.ID_ANIO).
                            ThenByDescending(tD => tD.ID_IMPUTADO).
                            ToList());
                        foreach (var ingreso_seleccionado in lista_ingresos_seleccionados)
                        {
                            ingreso_seleccionado.SELECCIONADO = false;
                            lista_ingresos.Remove(ingreso_seleccionado);
                        }
                        ListaIngresos             = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList() : new List <cInternoGafeteBrazalete>();
                        EmptyVisible              = !ListaIngresos.Any();
                        EmptySeleccionadosVisible = false;
                        ListaIngresosSeleccionados.AddRange(lista_ingresos_seleccionados);
                        ListaIngresosSeleccionados = ListaIngresosSeleccionados.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList();
                        SeleccionarTodosIngresos   = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GafeteReportViewerVisible    = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                        GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    BrazaleteReportViewerVisible = Visibility.Collapsed;
                    GafeteReportViewerVisible    = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos vacía. Realice una búsqueda e intente de nuevo.", MessageDialogStyle.Affirmative, mySettings);

                    BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                    GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                }
                break;

            case "RemoverInternos":
                if (ListaIngresosSeleccionados.Any())
                {
                    if (ListaIngresosSeleccionados.Where(w => w.SELECCIONADO).Any())
                    {
                        var lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresosSeleccionados);
                        var lista_ingresos_seleccionados = new List <cInternoGafeteBrazalete>(
                            ListaIngresosSeleccionados.Where(w => w.SELECCIONADO).
                            OrderByDescending(oD => oD.ID_ANIO).
                            ThenByDescending(tD => tD.ID_IMPUTADO).
                            ToList());
                        foreach (var ingreso_seleccionado in lista_ingresos_seleccionados)
                        {
                            ingreso_seleccionado.SELECCIONADO = false;
                            lista_ingresos.Remove(ingreso_seleccionado);
                        }
                        ListaIngresosSeleccionados = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList() : new List <cInternoGafeteBrazalete>();
                        EmptySeleccionadosVisible  = !ListaIngresosSeleccionados.Any();
                        EmptyVisible = false;
                        ListaIngresos.AddRange(lista_ingresos_seleccionados);
                        ListaIngresos = ListaIngresos.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList();
                        SeleccionarTodosIngresosSeleccionados = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GafeteReportViewerVisible    = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                        GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    BrazaleteReportViewerVisible = Visibility.Collapsed;
                    GafeteReportViewerVisible    = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos seleccionados vacía.", MessageDialogStyle.Affirmative, mySettings);

                    BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                    GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                }
                break;
            }
        }