/// <summary>
        /// Método que obtiene las excarcelaciones de acuerdo al estatus seleccionado.
        /// </summary>
        public void ObtenerExcarcelaciones() ///===CHECK===
        {
            try
            {
                System.DateTime _fechaH = Fechas.GetFechaDateServer;

                //Se obtienen los ingresos que tengan alguna excarcelación
                var ingresos = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).Where(w => w.EXCARCELACION.Any()).ToList();
                //Se obtiene el estatus seleccionado
                var estatus_seleccionado = DecisionEstatusExcarcelaciones();
                //Se obtienen las excarcelaciones de acuerdo al estatus seleccionado en cuestión a los ingresos que tienen una excarcelación
                var lista_ingresos = ingresos != null?ingresos.Any() ? ingresos.Where(w => (w.EXCARCELACION.Where(wEXC =>
                                                                                                                  wEXC.ID_ESTATUS == estatus_seleccionado &&
                                                                                                                  (wEXC.PROGRAMADO_FEC.Value.Year == FechaServer.Year && //LA VARIABLE DEL CAMPO DE FECHA SE LLAMA FECHASERVER
                                                                                                                   wEXC.PROGRAMADO_FEC.Value.Month == FechaServer.Month &&
                                                                                                                   wEXC.PROGRAMADO_FEC.Value.Day == FechaServer.Day))
                                                                                            .ToList().Count > 0)).ToList() : new List <INGRESO>() : new List <INGRESO>();

                var lista_ingresos_excarcelaciones = new List <InternoIngresoExcarcelacion>();
                var ingreso_ubicacion = new cIngresoUbicacion();
                var excarcelacion     = new cExcarcelacion();
                foreach (var ingreso in lista_ingresos)
                {
                    var ultima_ubicacion     = ingreso_ubicacion.ObtenerUltimaUbicacion(ingreso.ID_ANIO, ingreso.ID_CENTRO, ingreso.ID_IMPUTADO, ingreso.ID_INGRESO);
                    var excarcelacion_activa = excarcelacion.ObtenerImputadoExcarcelaciones(ingreso.ID_CENTRO, ingreso.ID_ANIO, ingreso.ID_IMPUTADO, ingreso.ID_INGRESO).Where(w =>
                                                                                                                                                                               w.ID_ESTATUS == EXCARCELACION_ACTIVA &&
                                                                                                                                                                               w.PROGRAMADO_FEC.Value.Year == FechaServer.Year &&
                                                                                                                                                                               w.PROGRAMADO_FEC.Value.Month == FechaServer.Month &&
                                                                                                                                                                               w.PROGRAMADO_FEC.Value.Day == FechaServer.Day).Any();
                    lista_ingresos_excarcelaciones.Add(new InternoIngresoExcarcelacion()
                    {
                        Id_Centro        = ingreso.ID_CENTRO,
                        Id_Anio          = ingreso.ID_ANIO,
                        Id_Imputado      = ingreso.ID_IMPUTADO,
                        Id_Ingreso       = ingreso.ID_INGRESO,
                        Nombre           = ingreso.IMPUTADO != null ? !string.IsNullOrEmpty(ingreso.IMPUTADO.NOMBRE) ? ingreso.IMPUTADO.NOMBRE.Trim() : string.Empty : string.Empty,
                        Paterno          = ingreso.IMPUTADO != null ? !string.IsNullOrEmpty(ingreso.IMPUTADO.PATERNO) ? ingreso.IMPUTADO.PATERNO.Trim() : string.Empty : string.Empty,
                        Materno          = ingreso.IMPUTADO != null ? !string.IsNullOrEmpty(ingreso.IMPUTADO.MATERNO) ? ingreso.IMPUTADO.MATERNO.Trim() : string.Empty : string.Empty,
                        EnSalidaDeCentro = (ultima_ubicacion != null && ultima_ubicacion.ID_AREA == SALIDA_DE_CENTRO && ultima_ubicacion.ESTATUS == (short)enumUbicacion.ACTIVIDAD && !excarcelacion_activa)
                    });
                }
                ListaIngresos = lista_ingresos_excarcelaciones;
            }
            //Si ocurrió un error, entonces...
            catch (Exception ex)
            {
                //Se le notifica al usuario que ocurrió un error
                StaticSourcesViewModel.ShowMessageError("Algo Paso...", "Ocurrió un error al obtener las excarcelaciones", ex);
            }
        }
Exemplo n.º 2
0
        private void GenerarReporte()
        {
            try
            {
                //NOTA: ANIO TEMPORALMENTE FIJO SOLO PARA PRUEBAS DEBIDO A QUE NO HAY REGISTROS PARA EL ANIO 2016
                //DESCOMENTAR MAS ADELANTE
                var mes          = Fechas.GetFechaDateServer.Month;
                var anio         = Fechas.GetFechaDateServer.Year;
                var datosReporte = new List <cReporteDatos>();
                var tercera_Edad = Parametro.ID_TERCERA_EDAD;
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1,
                    Encabezado2 = Parametro.ENCABEZADO2,
                    Encabezado3 = Parametro.ENCABEZADO3,
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Titulo      = "Tercera Edad"
                });
                var lst_internos_causa_penal_delito = new cCausaPenalDelito().ObtenerTodos().ToList();
                var internos_lista  = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).Where(w => w.FEC_INGRESO_CERESO.Value.Month == mes && w.FEC_INGRESO_CERESO.Value.Year == anio).ToList();
                var lst_imp         = new List <cPoblacionTerceraEdad>();
                var lst_imp_grafica = new List <cGraficaTerceraEdad>();

                foreach (var item in internos_lista)
                {
                    var interno = lst_internos_causa_penal_delito.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno == null)
                    {
                        var bday = new Fechas().CalculaEdad(item.IMPUTADO.NACIMIENTO_FECHA.HasValue ? item.IMPUTADO.NACIMIENTO_FECHA : Fechas.GetFechaDateServer);
                        //DateTime now = DateTime.Today;
                        //int age = now.Year - bday.Value.Year;
                        //if (now < bday.Value.AddYears(age)) age--;


                        if (bday >= tercera_Edad)
                        {
                            if (bday >= 30 && bday <= 40)
                            {
                                var obj = new cPoblacionTerceraEdad();
                                obj.Edad             = bday.ToString();
                                obj.Rango            = "30 a 40";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                obj.Causa            = "Sin Fuero";
                                obj.SinFueroProcMasc = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                lst_imp.Add(obj);
                            }
                            if (bday > 40 && bday <= 50)
                            {
                                var obj = new cPoblacionTerceraEdad();
                                obj.Edad             = bday.ToString();
                                obj.Rango            = "40 a 50";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                obj.Causa            = "Sin Fuero";
                                obj.SinFueroProcMasc = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                lst_imp.Add(obj);
                            }
                            if (bday > 50 && bday <= 60)
                            {
                                var obj = new cPoblacionTerceraEdad();
                                obj.Edad             = bday.ToString();
                                obj.Rango            = "50 a 60";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                obj.Causa            = "Sin Fuero";
                                obj.SinFueroProcMasc = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                lst_imp.Add(obj);
                            }
                            if (bday > 60)
                            {
                                var obj = new cPoblacionTerceraEdad();
                                obj.Edad             = bday.ToString();
                                obj.Rango            = "Mayor de 60";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                obj.Causa            = "Sin Fuero";
                                obj.SinFueroProcMasc = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                lst_imp.Add(obj);
                            }
                        }
                    }
                }

                foreach (var item in lst_internos_causa_penal_delito)
                {
                    var interno = internos_lista.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno != null)
                    {
                        var      bday = interno.IMPUTADO.NACIMIENTO_FECHA;
                        DateTime now  = DateTime.Today;
                        int      age  = now.Year - bday.Value.Year;
                        if (now < bday.Value.AddYears(age))
                        {
                            age--;
                        }

                        if (age >= tercera_Edad)
                        {
                            if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                            {
                                if (age >= 30 && age <= 40)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad           = age.ToString();
                                    obj.Rango          = "30 a 40";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                    obj.Causa          = "Comun";
                                    obj.ComunImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunIndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunSentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                                if (age > 40 && age <= 50)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad           = age.ToString();
                                    obj.Rango          = "40 a 50";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                    obj.Causa          = "Comun";
                                    obj.ComunImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunIndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunSentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                                if (age > 50 && age <= 60)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad           = age.ToString();
                                    obj.Rango          = "50 a 60";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                    obj.Causa          = "Comun";
                                    obj.ComunImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunIndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunSentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                                if (age > 60)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad           = age.ToString();
                                    obj.Rango          = "Mayor de 60";//age.ToString();//item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                                    obj.Causa          = "Comun";
                                    obj.ComunImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunIndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ComunSentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                            }
                            if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "F")
                            {
                                if (age >= 30 && age <= 40)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad            = age.ToString();
                                    obj.Rango           = "30 a 40";//age.ToString();
                                    obj.Causa           = "Federal";
                                    obj.FederalProcFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalProcMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.FederalSentFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalSentMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                                if (age > 40 && age <= 50)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad            = age.ToString();
                                    obj.Rango           = "40 a 50";//age.ToString();
                                    obj.Causa           = "Federal";
                                    obj.FederalProcFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalProcMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.FederalSentFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalSentMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                                if (age > 50 && age <= 60)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad            = age.ToString();
                                    obj.Rango           = "50 a 60";//age.ToString();
                                    obj.Causa           = "Federal";
                                    obj.FederalProcFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalProcMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.FederalSentFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalSentMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                                if (age > 60)
                                {
                                    var obj = new cPoblacionTerceraEdad();
                                    obj.Edad            = age.ToString();
                                    obj.Rango           = "Mayor de 60";//age.ToString();
                                    obj.Causa           = "Federal";
                                    obj.FederalProcFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalProcMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.FederalSentFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.FederalSentMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_imp.Add(obj);
                                }
                            }
                        }
                    }
                }
                foreach (var item in lst_imp)
                {
                    if (item.Causa == "Comun")
                    {
                        if (item.ComunImpMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Comun Imputado";
                            obj.Comun += item.ComunImpMasc;

                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunIndicMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Comun Indiciado";
                            obj.Comun += item.ComunIndicMasc;

                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunProcMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Comun Procesado";
                            obj.Comun += item.ComunProcMasc;

                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunSentMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Comun Sentenciado";
                            obj.Comun += item.ComunSentMasc;

                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Causa == "Federal")
                    {
                        if (item.FederalProcMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Federal Procesado";
                            obj.Comun += item.FederalProcMasc + item.FederalProcFem;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.FederalSentMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Federal Sentenciado";
                            obj.Comun += item.FederalSentMasc + item.FederalSentFem;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Causa == "Sin Fuero")
                    {
                        if (item.SinFueroProcMasc > 0)
                        {
                            var obj = new cGraficaTerceraEdad();
                            obj.Rango  = item.Rango;
                            obj.Causa  = "Sin Fuero Procesado";
                            obj.Comun += item.SinFueroProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                }
                var results = lst_imp.GroupBy(n => n.Rango).
                              Select(group =>
                                     new
                {
                    Rango = group.Key,
                    Sexo  = group.ToList(),
                });

                var lst_imp2 = new List <cPoblacionTerceraEdad>();
                foreach (var row in results)
                {
                    var obj = new cPoblacionTerceraEdad();
                    obj.Rango = row.Rango;
                    foreach (var item in row.Sexo)
                    {
                        obj.ComunImpMasc     += item.ComunImpMasc;
                        obj.ComunIndicMasc   += item.ComunIndicMasc;
                        obj.ComunProcMasc    += item.ComunProcMasc;
                        obj.ComunSentMasc    += item.ComunSentMasc;
                        obj.FederalProcFem   += item.FederalProcFem;
                        obj.FederalProcMasc  += item.FederalProcMasc;
                        obj.FederalSentFem   += item.FederalSentFem;
                        obj.FederalSentMasc  += item.FederalSentMasc;
                        obj.SinFueroProcMasc += item.SinFueroProcMasc;
                    }
                    lst_imp2.Add(obj);
                }
                Reporte.LocalReport.ReportPath = "../../Reportes/rPoblacionTerceraEdad.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                ReportDataSource rds2 = new ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = lst_imp2;
                Reporte.LocalReport.DataSources.Add(rds2);

                ReportDataSource rds3 = new ReportDataSource();
                rds3.Name  = "DataSet3";
                rds3.Value = lst_imp_grafica;
                Reporte.LocalReport.DataSources.Add(rds3);

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.Refresh();
                    Reporte.RefreshReport();
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }
Exemplo n.º 3
0
        private void GenerarReporte()
        {
            try
            {
                //NOTA: ANIO TEMPORALMENTE FIJO SOLO PARA PRUEBAS DEBIDO A QUE NO HAY REGISTROS PARA EL ANIO 2016
                //DESCOMENTAR MAS ADELANTE
                var mes          = Fechas.GetFechaDateServer.Month;
                var anio         = Fechas.GetFechaDateServer.Year;
                var datosReporte = new List <cReporteDatos>();
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1,
                    Encabezado2 = Parametro.ENCABEZADO2,
                    Encabezado3 = Parametro.ENCABEZADO3,
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Titulo      = "Población Extranjera"
                });
                var lst_internos_causa_penal_delito = new cCausaPenalDelito().ObtenerTodos().ToList();
                var internos_lista  = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).Where(w => w.FEC_INGRESO_CERESO.Value.Year == anio && w.FEC_INGRESO_CERESO.Value.Month == mes).ToList();
                var lst_imp         = new List <cPoblacionExtranjera>();
                var lst_imp_grafica = new List <cGraficaPoblacionExtranjeraF>();
                //var lst_imp_grafica_f = new List<cReporteGraficaPoblacionEntidadF>();

                foreach (var item in internos_lista)
                {
                    var interno = lst_internos_causa_penal_delito.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno == null)
                    {
                        var obj = new cPoblacionExtranjera();
                        obj.Pais                = item.IMPUTADO.PAIS_NACIONALIDAD == null ? string.Empty : item.IMPUTADO.PAIS_NACIONALIDAD.PAIS;
                        obj.Causa               = "Sin Fuero";
                        obj.SinFueroIndiciado   = item.ID_CLASIFICACION_JURIDICA == "I" ? 1 : 0;
                        obj.SinFueroProcesado   = item.ID_CLASIFICACION_JURIDICA == "2" ? 1 : 0;
                        obj.SinFueroSentenciado = item.ID_CLASIFICACION_JURIDICA == "3" ? 1 : 0;
                        lst_imp.Add(obj);
                    }
                }

                foreach (var item in lst_internos_causa_penal_delito)
                {
                    var interno = internos_lista.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno != null)
                    {
                        if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                        {
                            var obj = new cPoblacionExtranjera();
                            obj.Pais           = item.CAUSA_PENAL.INGRESO.IMPUTADO.PAIS_NACIONALIDAD.PAIS;
                            obj.Causa          = "Comun";
                            obj.ComunProcesado = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" ? 1 : 0;
                            lst_imp.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica Masculino
                foreach (var item in lst_imp)
                {
                    if (item.Causa == "Comun")
                    {
                        if (item.ComunProcesado > 0)
                        {
                            var obj = new cGraficaPoblacionExtranjeraF();
                            obj.Pais   = item.Pais;
                            obj.Causa  = "Procesado Fuero Comun";
                            obj.Comun += item.ComunProcesado;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Causa == "Sin Fuero")
                    {
                        if (item.SinFueroIndiciado > 0)
                        {
                            var obj = new cGraficaPoblacionExtranjeraF();
                            obj.Pais   = item.Pais;
                            obj.Causa  = "Indiciado sin Fuero";
                            obj.Comun += item.SinFueroIndiciado;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SinFueroProcesado > 0)
                        {
                            var obj = new cGraficaPoblacionExtranjeraF();
                            obj.Pais   = item.Pais;
                            obj.Causa  = "Procesado sin Fuero";
                            obj.Comun += item.SinFueroProcesado;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SinFueroSentenciado > 0)
                        {
                            var obj = new cGraficaPoblacionExtranjeraF();
                            obj.Pais   = item.Pais;
                            obj.Causa  = "Sentenciado sin Fuero";
                            obj.Comun += item.SinFueroSentenciado;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                }
                var results = lst_imp.GroupBy(n => n.Pais).
                              Select(group =>
                                     new
                {
                    Pais = group.Key,
                    Sexo = group.ToList(),
                });

                var lst_imp2 = new List <cPoblacionExtranjera>();
                foreach (var row in results)
                {
                    var obj = new cPoblacionExtranjera();
                    obj.Pais = row.Pais;
                    foreach (var item in row.Sexo)
                    {
                        obj.ComunProcesado      += item.ComunProcesado;
                        obj.SinFueroIndiciado   += item.SinFueroIndiciado;
                        obj.SinFueroProcesado   += item.SinFueroProcesado;
                        obj.SinFueroSentenciado += item.SinFueroSentenciado;
                    }
                    lst_imp2.Add(obj);
                }
                Reporte.LocalReport.ReportPath = "../../Reportes/rPoblacionExtranjero.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                ReportDataSource rds2 = new ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = lst_imp2;
                Reporte.LocalReport.DataSources.Add(rds2);

                ReportDataSource rds3 = new ReportDataSource();
                rds3.Name  = "DataSet4";
                rds3.Value = lst_imp_grafica;
                Reporte.LocalReport.DataSources.Add(rds3);

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.Refresh();
                    Reporte.RefreshReport();
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }
        private void GenerarReporte()
        {
            try
            {
                switch (OrdenarPor)
                {
                case 1:    //DELITO COMUN
                    var mes = 12;
                    //var mes = Fechas.GetFechaDateServer.Month;
                    //NOTA: ANIO TEMPORALMENTE FIJO SOLO PARA PRUEBAS DEBIDO A QUE NO HAY REGISTROS PARA EL ANIO 2016
                    //DESCOMENTAR MAS ADELANTE
                    var anio = 2015;    //Fechas.GetFechaDateServer.Year;
                    //var lista_internos_mes = internos_lista.Where(w => w.FEC_INGRESO_CERESO.Value.Month == mes).ToList();
                    var datosReporte = new List <cReporteDatos>();
                    // List<string> termsList = new List<string>();
                    datosReporte.Add(new cReporteDatos()
                    {
                        Encabezado1 = Parametro.ENCABEZADO1,
                        Encabezado2 = Parametro.ENCABEZADO2,
                        Encabezado3 = Parametro.ENCABEZADO3,
                        Logo1       = Parametro.REPORTE_LOGO1,
                        Logo2       = Parametro.REPORTE_LOGO2,
                        Titulo      = "Población por delito común"
                    });
                    var lst_internos_causa_penal_delito = new cCausaPenalDelito().ObtenerTodos().ToList();
                    var internos_lista = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).Where(w => w.FEC_INGRESO_CERESO.Value.Month == mes && w.FEC_INGRESO_CERESO.Value.Year == anio).ToList();
                    int x       = 0;
                    var lst_imp = new List <cPoblacionDelitoComun>();

                    foreach (var item in lst_internos_causa_penal_delito)
                    {
                        var interno = internos_lista.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                        if (interno != null)
                        {
                            if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                            {
                                var obj = new cPoblacionDelitoComun();
                                obj.DelitoComun  = item.MODALIDAD_DELITO.DELITO.DESCR;
                                obj.Sexo         = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO;
                                obj.Indiciados   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" ? 1 : 0;
                                obj.Procesados   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" ? 1 : 0;
                                obj.Sentenciados = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" ? 1 : 0;

                                lst_imp.Add(obj);
                            }
                        }
                    }
                    var results = lst_imp.GroupBy(n => n.DelitoComun).
                                  Select(group =>
                                         new
                    {
                        DelitoComun = group.Key,
                        Sexo        = group.ToList(),
                    });

                    var lst_imp2 = new List <cPoblacionDelitoComun>();

                    foreach (var row in results)
                    {
                        var obj = new cPoblacionDelitoComun();
                        obj.DelitoComun = row.DelitoComun;
                        foreach (var item in row.Sexo)
                        {
                            obj.Sexo          = item.Sexo == "M" ? "MASCULINO" : item.Sexo == "F" ? "FEMENINO" : string.Empty;
                            obj.Indiciados   += item.Indiciados;
                            obj.Procesados   += item.Procesados;
                            obj.Sentenciados += item.Sentenciados;
                        }
                        lst_imp2.Add(obj);
                    }
                    Reporte.LocalReport.ReportPath = "../../Reportes/rPoblacionPorDelitoComun.rdlc";
                    Reporte.LocalReport.DataSources.Clear();

                    ReportDataSource rds1 = new ReportDataSource();
                    rds1.Name  = "DataSet1";
                    rds1.Value = datosReporte;
                    Reporte.LocalReport.DataSources.Add(rds1);

                    ReportDataSource rds2 = new ReportDataSource();
                    rds2.Name  = "DataSet2";
                    rds2.Value = lst_imp2;
                    Reporte.LocalReport.DataSources.Add(rds2);

                    Application.Current.Dispatcher.Invoke((Action)(delegate
                    {
                        Reporte.Refresh();
                        Reporte.RefreshReport();
                    }));
                    break;

                case 2:    //DELITO FEDERAL
                    var mes2 = 12;
                    //var mes2 = Fechas.GetFechaDateServer.Month;
                    //NOTA: ANIO TEMPORALMENTE FIJO SOLO PARA PRUEBAS DEBIDO A QUE NO HAY REGISTROS PARA EL ANIO 2016
                    //DESCOMENTAR MAS ADELANTE
                    var anio2 = 2015;    //Fechas.GetFechaDateServer.Year;

                    //var lista_internos_mes = internos_lista.Where(w => w.FEC_INGRESO_CERESO.Value.Month == mes).ToList();
                    var datosReporte2 = new List <cReporteDatos>();
                    // List<string> termsList = new List<string>();
                    datosReporte2.Add(new cReporteDatos()
                    {
                        Encabezado1 = Parametro.ENCABEZADO1,
                        Encabezado2 = Parametro.ENCABEZADO2,
                        Encabezado3 = Parametro.ENCABEZADO3,
                        Logo1       = Parametro.REPORTE_LOGO1,
                        Logo2       = Parametro.REPORTE_LOGO2,
                        Titulo      = "Población por delito federal"
                    });
                    var lst_internos_causa_penal_delito2 = new cCausaPenalDelito().ObtenerTodos().ToList();
                    var internos_lista2 = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).Where(w => w.FEC_INGRESO_CERESO.Value.Month == mes2 && w.FEC_INGRESO_CERESO.Value.Year == anio2).ToList();
                    var lst_imp3        = new List <cPoblacionDelitoFeferal>();

                    foreach (var item in lst_internos_causa_penal_delito2)
                    {
                        var interno = internos_lista2.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                        if (interno != null)
                        {
                            if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "F")
                            {
                                var obj = new cPoblacionDelitoFeferal();
                                obj.DelitoFederal = item.MODALIDAD_DELITO.DELITO.DESCR;
                                obj.Sexo          = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO;
                                obj.Indiciados    = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" ? 1 : 0;
                                obj.Procesados    = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" ? 1 : 0;
                                obj.Sentenciados  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" ? 1 : 0;

                                lst_imp3.Add(obj);
                            }
                        }
                    }
                    var results2 = lst_imp3.GroupBy(n => n.DelitoFederal).
                                   Select(group =>
                                          new
                    {
                        DelitoFederal = group.Key,
                        Sexo          = group.ToList(),
                    });

                    var lst_imp4 = new List <cPoblacionDelitoFeferal>();

                    foreach (var row in results2)
                    {
                        var obj = new cPoblacionDelitoFeferal();
                        obj.DelitoFederal = row.DelitoFederal;
                        foreach (var item in row.Sexo)
                        {
                            obj.Sexo          = item.Sexo == "M" ? "MASCULINO" : item.Sexo == "F" ? "FEMENINO" : string.Empty;
                            obj.Indiciados   += item.Indiciados;
                            obj.Procesados   += item.Procesados;
                            obj.Sentenciados += item.Sentenciados;
                        }
                        lst_imp4.Add(obj);
                    }
                    Reporte.LocalReport.ReportPath = "../../Reportes/rPoblacionDelitoFederal.rdlc";
                    Reporte.LocalReport.DataSources.Clear();

                    ReportDataSource rds12 = new ReportDataSource();
                    rds12.Name  = "DataSet1";
                    rds12.Value = datosReporte2;
                    Reporte.LocalReport.DataSources.Add(rds12);

                    ReportDataSource rds22 = new ReportDataSource();
                    rds22.Name  = "DataSet2";
                    rds22.Value = lst_imp4;
                    Reporte.LocalReport.DataSources.Add(rds22);

                    Application.Current.Dispatcher.Invoke((Action)(delegate
                    {
                        Reporte.Refresh();
                        Reporte.RefreshReport();
                    }));
                    break;
                }
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }
Exemplo n.º 5
0
        private void GenerarReporte()
        {
            try
            {
                //NOTA: ANIO TEMPORALMENTE FIJO SOLO PARA PRUEBAS DEBIDO A QUE NO HAY REGISTROS PARA EL ANIO 2016
                //DESCOMENTAR MAS ADELANTE
                //var mes = Fechas.GetFechaDateServer.Month;
                //var anio = Fechas.GetFechaDateServer.Year;
                var         fecha        = Fechas.GetFechaDateServer;
                CultureInfo cultura      = new CultureInfo("es-MX");
                var         datosReporte = new List <cReporteDatos>();
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1,
                    Encabezado2 = Parametro.ENCABEZADO2,
                    Encabezado3 = Parametro.ENCABEZADO3,
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Titulo      = string.Format("Población {0} del {1}", cultura.DateTimeFormat.GetMonthName(fecha.Month), fecha.Year),
                });
                var lst_internos_causa_penal_delito = new cCausaPenalDelito().ObtenerTodos().ToList();
                var internos_lista    = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).ToList();//.Where(w => w.FEC_INGRESO_CERESO.Value.Year == anio && w.FEC_INGRESO_CERESO.Value.Month == mes).ToList();
                var lst_imp           = new List <cPoblacion>();
                var lst_imp_grafica   = new List <cGraficaPoblacionM>();
                var lst_imp_grafica_f = new List <cGraficaPoblacionF>();

                foreach (var item in internos_lista)
                {
                    var interno = lst_internos_causa_penal_delito.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO)
                                  .FirstOrDefault();
                    if (interno == null)
                    {
                        var obj = new cPoblacion();
                        obj.Fuero = "Sin Fuero";//item.CAUSA_PENAL == null ? string.Empty : item.IMPUTADO.ENTIDAD.DESCR;
                        //obj.Causa = "Sin Fuero";
                        obj.ImpFem    = item.ID_CLASIFICACION_JURIDICA == "I" && item.NUC == null && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                        obj.ImpMasc   = item.ID_CLASIFICACION_JURIDICA == "I" && item.NUC == null && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                        obj.IndicFem  = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                        obj.IndicMasc = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                        obj.ProcFem   = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                        obj.ProcMasc  = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                        obj.SentFem   = item.ID_CLASIFICACION_JURIDICA == "3" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                        obj.SentMasc  = item.ID_CLASIFICACION_JURIDICA == "3" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                        lst_imp.Add(obj);
                    }
                }

                foreach (var item in lst_internos_causa_penal_delito)
                {
                    var interno = internos_lista.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno != null)
                    {
                        if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                        {
                            var obj = new cPoblacion();
                            obj.Fuero = "Comun";//item.CAUSA_PENAL.INGRESO.IMPUTADO.ENTIDAD.DESCR;
                            //obj.Causa = "Comun";
                            obj.ImpFem    = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.IndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.IndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.ProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.SentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.SentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            lst_imp.Add(obj);
                        }
                        else if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "F")
                        {
                            var obj = new cPoblacion();
                            obj.Fuero = "Federal";
                            //obj.Causa = "Federal";
                            obj.ImpFem    = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.IndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.IndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.ProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.SentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.SentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            lst_imp.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica Masculino
                foreach (var item in lst_imp)
                {
                    if (item.Fuero == "Comun")
                    {
                        if (item.ImpMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Fuero == "Federal")
                    {
                        if (item.ImpMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Fuero == "Sin Fuero")
                    {
                        if (item.ImpMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaPoblacionM();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica Femenino
                foreach (var item in lst_imp)
                {
                    if (item.Fuero == "Comun")
                    {
                        if (item.ImpFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                    }
                    if (item.Fuero == "Federal")
                    {
                        if (item.ImpFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                    }
                    if (item.Fuero == "Sin Fuero")
                    {
                        if (item.ImpFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaPoblacionF();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                    }
                }
                var results = lst_imp.GroupBy(n => n.Fuero).
                              Select(group =>
                                     new
                {
                    Fuero = group.Key,
                    Sexo  = group.ToList(),
                });

                var lst_imp2 = new List <cPoblacion>();
                foreach (var row in results)
                {
                    var obj = new cPoblacion();
                    obj.Fuero = row.Fuero;
                    foreach (var item in row.Sexo)
                    {
                        obj.ImpFem    += item.ImpFem;
                        obj.ImpMasc   += item.ImpMasc;
                        obj.IndicFem  += item.IndicFem;
                        obj.IndicMasc += item.IndicMasc;
                        obj.ProcFem   += item.ProcFem;
                        obj.ProcMasc  += item.ProcMasc;
                        obj.SentFem   += item.SentFem;
                        obj.SentMasc  += item.SentMasc;
                    }
                    lst_imp2.Add(obj);
                }
                Reporte.LocalReport.ReportPath = "Reportes/rPoblacion.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                ReportDataSource rds2 = new ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = lst_imp2.OrderBy(o => o.Fuero);
                Reporte.LocalReport.DataSources.Add(rds2);

                ReportDataSource rds3 = new ReportDataSource();
                rds3.Name  = "DataSet3";
                rds3.Value = lst_imp_grafica_f;
                Reporte.LocalReport.DataSources.Add(rds3);

                ReportDataSource rds4 = new ReportDataSource();
                rds4.Name  = "DataSet4";
                rds4.Value = lst_imp_grafica;
                Reporte.LocalReport.DataSources.Add(rds4);

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.Refresh();
                    Reporte.RefreshReport();
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }
        private void GenerarReporte()
        {
            try
            {
                var mes = Fechas.GetFechaDateServer.Month;
                switch (OrdenarPor)
                {
                case 1:    //expediente
                    mes = 1;
                    break;

                case 2:    //nombre
                    mes = 2;
                    break;

                case 3:    //Ubicacion
                    mes = 3;
                    break;

                case 4:    //expediente
                    mes = 4;
                    break;

                case 5:    //nombre
                    mes = 5;
                    break;

                case 6:    //Ubicacion
                    mes = 6;
                    break;

                case 7:    //expediente
                    mes = 7;
                    break;

                case 8:    //nombre
                    mes = 8;
                    break;

                case 9:    //Ubicacion
                    mes = 9;
                    break;

                case 10:    //expediente
                    mes = 10;
                    break;

                case 11:    //nombre
                    mes = 11;
                    break;

                case 12:    //Ubicacion
                    mes = 12;
                    break;
                }
                var anio         = Fechas.GetFechaDateServer.Year;
                var datosReporte = new List <cReporteDatos>();
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1,
                    Encabezado2 = Parametro.ENCABEZADO2,
                    Encabezado3 = Parametro.ENCABEZADO3,
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Titulo      = "Altas-Bajas"
                });
                var lst_internos_causa_penal_delito = new cCausaPenalDelito().ObtenerTodos().ToList();
                var internos_lista            = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).ToList();//.Where(w => w.FEC_INGRESO_CERESO.Value.Year == anio && w.FEC_INGRESO_CERESO.Value.Month == mes).ToList();
                var lst_imp_altas             = new List <cPoblacionAltasBajas>();
                var lst_imp_bajas             = new List <cPoblacionAltasBajas>();
                var lst_total_sexo            = new List <cTotalSexo>();
                var lst_imp_grafica_alta_masc = new List <cGraficaAltaBaja>();
                var lst_imp_grafica_baja_masc = new List <cGraficaAltaBaja>();
                var lst_imp_grafica_alta_fem  = new List <cGraficaAltaBaja>();
                var lst_imp_grafica_baja_fem  = new List <cGraficaAltaBaja>();

                foreach (var item in internos_lista)
                {
                    if (item.FEC_INGRESO_CERESO != null)
                    {
                        if ((item.FEC_INGRESO_CERESO.Value.Year == anio && item.FEC_INGRESO_CERESO.Value.Month == mes) || (item.FEC_INGRESO_CERESO >= FechaInicio && item.FEC_INGRESO_CERESO <= FechaFin))
                        {
                            var interno = lst_internos_causa_penal_delito.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                            if (interno == null)
                            {
                                var obj = new cPoblacionAltasBajas();
                                var row = new cTotalSexo();
                                obj.Fuero     = "Sin Fuero";//item.CAUSA_PENAL == null ? string.Empty : item.IMPUTADO.ENTIDAD.DESCR;
                                obj.Tipo      = "Alta";
                                row.Masculino = item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                row.Femenino  = item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                row.SinSexo   = item.IMPUTADO.SEXO == null ? 1 : 0;
                                obj.DiscFem   = item.ID_CLASIFICACION_JURIDICA == "4" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.DiscMasc  = item.ID_CLASIFICACION_JURIDICA == "4" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.IndicFem  = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.IndicMasc = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.ProcFem   = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.ProcMasc  = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.SentFem   = item.ID_CLASIFICACION_JURIDICA == "3" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.SentMasc  = item.ID_CLASIFICACION_JURIDICA == "3" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                lst_total_sexo.Add(row);
                                lst_imp_altas.Add(obj);
                            }
                        }
                    }
                    if (item.FEC_SALIDA_CERESO != null)
                    {
                        if ((item.FEC_SALIDA_CERESO.Value.Year == anio && item.FEC_SALIDA_CERESO.Value.Month == mes) || (item.FEC_SALIDA_CERESO >= FechaInicio && item.FEC_SALIDA_CERESO <= FechaFin))
                        {
                            var interno = lst_internos_causa_penal_delito.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                            if (interno == null)
                            {
                                var obj = new cPoblacionAltasBajas();
                                var row = new cTotalSexo();
                                obj.Fuero     = "Sin Fuero";//item.CAUSA_PENAL == null ? string.Empty : item.IMPUTADO.ENTIDAD.DESCR;
                                obj.Tipo      = "Baja";
                                row.Masculino = item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                row.Femenino  = item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                row.SinSexo   = item.IMPUTADO.SEXO == null ? 1 : 0;
                                obj.DiscFem   = item.ID_CLASIFICACION_JURIDICA == "4" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.DiscMasc  = item.ID_CLASIFICACION_JURIDICA == "4" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.ImpMasc   = item.ID_CLASIFICACION_JURIDICA == "1" && item.NUC == null && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.IndicFem  = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.IndicMasc = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.ProcFem   = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.ProcMasc  = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                obj.SentFem   = item.ID_CLASIFICACION_JURIDICA == "3" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                                obj.SentMasc  = item.ID_CLASIFICACION_JURIDICA == "3" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                                lst_total_sexo.Add(row);
                                lst_imp_bajas.Add(obj);
                            }
                        }
                    }
                }

                foreach (var item in lst_internos_causa_penal_delito)
                {
                    var interno = internos_lista.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno != null)
                    {
                        if (item.CAUSA_PENAL.INGRESO.FEC_INGRESO_CERESO != null)
                        {
                            if ((item.CAUSA_PENAL.INGRESO.FEC_INGRESO_CERESO.Value.Year == anio && item.CAUSA_PENAL.INGRESO.FEC_INGRESO_CERESO.Value.Month == mes) || (item.CAUSA_PENAL.INGRESO.FEC_INGRESO_CERESO >= FechaInicio && item.CAUSA_PENAL.INGRESO.FEC_INGRESO_CERESO <= FechaFin))
                            {
                                if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                                {
                                    var obj = new cPoblacionAltasBajas();
                                    var row = new cTotalSexo();
                                    obj.Fuero     = "Comun";//item.CAUSA_PENAL.INGRESO.IMPUTADO.ENTIDAD.DESCR;
                                    obj.Tipo      = "Alta";
                                    row.Masculino = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    row.Femenino  = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    row.SinSexo   = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == null ? 1 : 0;
                                    obj.DiscFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.DiscMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.IndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.IndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.ProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.SentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.SentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_total_sexo.Add(row);
                                    lst_imp_altas.Add(obj);
                                }
                                else if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "F")
                                {
                                    var obj = new cPoblacionAltasBajas();
                                    var row = new cTotalSexo();
                                    obj.Fuero     = "Federal";
                                    obj.Tipo      = "Alta";
                                    row.Masculino = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    row.Femenino  = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    row.SinSexo   = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == null ? 1 : 0;
                                    obj.DiscFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.DiscMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.IndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.IndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.ProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.SentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.SentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_total_sexo.Add(row);
                                    lst_imp_altas.Add(obj);
                                }
                            }
                        }
                        if (item.CAUSA_PENAL.INGRESO.FEC_SALIDA_CERESO != null)
                        {
                            if ((item.CAUSA_PENAL.INGRESO.FEC_SALIDA_CERESO.Value.Year == anio && item.CAUSA_PENAL.INGRESO.FEC_SALIDA_CERESO.Value.Month == mes) || (item.CAUSA_PENAL.INGRESO.FEC_SALIDA_CERESO >= FechaInicio && item.CAUSA_PENAL.INGRESO.FEC_SALIDA_CERESO <= FechaFin))
                            {
                                if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                                {
                                    var obj = new cPoblacionAltasBajas();
                                    var row = new cTotalSexo();
                                    obj.Fuero     = "Comun";//item.CAUSA_PENAL.INGRESO.IMPUTADO.ENTIDAD.DESCR;
                                    obj.Tipo      = "Baja";
                                    row.Masculino = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    row.Femenino  = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    row.SinSexo   = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == null ? 1 : 0;
                                    obj.DiscFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.DiscMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "1" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.IndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.IndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.ProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.SentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.SentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_total_sexo.Add(row);
                                    lst_imp_bajas.Add(obj);
                                }
                                else if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "F")
                                {
                                    var obj = new cPoblacionAltasBajas();
                                    var row = new cTotalSexo();
                                    obj.Fuero     = "Federal";
                                    obj.Tipo      = "Baja";
                                    row.Masculino = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    row.Femenino  = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    row.SinSexo   = item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == null ? 1 : 0;
                                    obj.DiscFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.DiscMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "1" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.IndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.IndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.ProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.ProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    obj.SentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                                    obj.SentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                                    lst_total_sexo.Add(row);
                                    lst_imp_bajas.Add(obj);
                                }
                            }
                        }
                    }
                }
                //Para alimentar grafica Alta masculino
                foreach (var item in lst_imp_altas)
                {
                    if (item.Fuero == "Comun" && item.Tipo == "Alta")
                    {
                        if (item.DiscMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                    }
                    if (item.Fuero == "Federal" && item.Tipo == "Alta")
                    {
                        if (item.DiscMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                    }
                    if (item.Fuero == "Sin Fuero" && item.Tipo == "Alta")
                    {
                        if (item.DiscMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica_alta_masc.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica alta femenino
                foreach (var item in lst_imp_altas)
                {
                    if (item.Fuero == "Comun" && item.Tipo == "Alta")
                    {
                        if (item.DiscFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                    }
                    if (item.Fuero == "Federal" && item.Tipo == "Alta")
                    {
                        if (item.DiscFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                    }
                    if (item.Fuero == "Sin Fuero" && item.Tipo == "Alta")
                    {
                        if (item.DiscFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_alta_fem.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica baja masculino
                foreach (var item in lst_imp_bajas)
                {
                    if (item.Fuero == "Comun" && item.Tipo == "Baja")
                    {
                        if (item.DiscMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.ImpMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                    }
                    if (item.Fuero == "Federal" && item.Tipo == "Baja")
                    {
                        if (item.DiscMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.ImpMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                    }
                    if (item.Fuero == "Sin Fuero" && item.Tipo == "Baja")
                    {
                        if (item.DiscMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.ImpMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Imputado";
                            obj.Comun += item.ImpMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.IndicMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.ProcMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                        if (item.SentMasc > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentMasc;
                            lst_imp_grafica_baja_masc.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica Baja femenino
                foreach (var item in lst_imp_bajas)
                {
                    if (item.Fuero == "Comun" && item.Tipo == "Baja")
                    {
                        if (item.DiscFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                    }
                    if (item.Fuero == "Federal" && item.Tipo == "Baja")
                    {
                        if (item.DiscFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                    }
                    if (item.Fuero == "Sin Fuero" && item.Tipo == "Baja")
                    {
                        if (item.DiscFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Discrecional";
                            obj.Comun += item.DiscFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.IndicFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Indiciado";
                            obj.Comun += item.IndicFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.ProcFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Procesado";
                            obj.Comun += item.ProcFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                        if (item.SentFem > 0)
                        {
                            var obj = new cGraficaAltaBaja();
                            obj.Fuero  = item.Fuero;
                            obj.Causa  = "Sentenciado";
                            obj.Comun += item.SentFem;
                            lst_imp_grafica_baja_fem.Add(obj);
                        }
                    }
                }
                var results_altas = lst_imp_altas.GroupBy(n => n.Fuero).
                                    Select(group =>
                                           new
                {
                    Fuero = group.Key,
                    Sexo  = group.ToList(),
                });

                var lst_imp_altas2 = new List <cPoblacionAltasBajas>();
                foreach (var row in results_altas)
                {
                    var obj = new cPoblacionAltasBajas();
                    obj.Fuero = row.Fuero;
                    foreach (var item in row.Sexo)
                    {
                        obj.DiscFem   += item.DiscFem;
                        obj.DiscMasc  += item.DiscMasc;
                        obj.IndicFem  += item.IndicFem;
                        obj.IndicMasc += item.IndicMasc;
                        obj.ProcFem   += item.ProcFem;
                        obj.ProcMasc  += item.ProcMasc;
                        obj.SentFem   += item.SentFem;
                        obj.SentMasc  += item.SentMasc;
                    }
                    lst_imp_altas2.Add(obj);
                }

                var results_bajas = lst_imp_bajas.GroupBy(n => n.Fuero).
                                    Select(group =>
                                           new
                {
                    Fuero = group.Key,
                    Sexo  = group.ToList(),
                });

                var lst_imp_bajas2 = new List <cPoblacionAltasBajas>();
                foreach (var row in results_bajas)
                {
                    var obj = new cPoblacionAltasBajas();
                    obj.Fuero = row.Fuero;
                    foreach (var item in row.Sexo)
                    {
                        obj.DiscFem   += item.DiscFem;
                        obj.DiscMasc  += item.DiscMasc;
                        obj.ImpMasc   += item.ImpMasc;
                        obj.IndicFem  += item.IndicFem;
                        obj.IndicMasc += item.IndicMasc;
                        obj.ProcFem   += item.ProcFem;
                        obj.ProcMasc  += item.ProcMasc;
                        obj.SentFem   += item.SentFem;
                        obj.SentMasc  += item.SentMasc;
                    }
                    lst_imp_bajas2.Add(obj);
                }
                Reporte.LocalReport.ReportPath = "../../Reportes/rPoblacionAltasBajas.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                ReportDataSource rds2 = new ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = lst_imp_altas2.OrderBy(o => o.Fuero);
                Reporte.LocalReport.DataSources.Add(rds2);

                ReportDataSource rds3 = new ReportDataSource();
                rds3.Name  = "DataSet3";
                rds3.Value = lst_imp_bajas2.OrderBy(o => o.Fuero);
                Reporte.LocalReport.DataSources.Add(rds3);

                ReportDataSource rds4 = new ReportDataSource();
                rds4.Name  = "DataSet4";
                rds4.Value = lst_imp_grafica_alta_masc;
                Reporte.LocalReport.DataSources.Add(rds4);

                ReportDataSource rds5 = new ReportDataSource();
                rds5.Name  = "DataSet5";
                rds5.Value = lst_imp_grafica_alta_fem;
                Reporte.LocalReport.DataSources.Add(rds5);

                ReportDataSource rds6 = new ReportDataSource();
                rds6.Name  = "DataSet6";
                rds6.Value = lst_imp_grafica_baja_masc;
                Reporte.LocalReport.DataSources.Add(rds6);

                ReportDataSource rds7 = new ReportDataSource();
                rds7.Name  = "DataSet7";
                rds7.Value = lst_imp_grafica_baja_fem;
                Reporte.LocalReport.DataSources.Add(rds7);

                ReportDataSource rds8 = new ReportDataSource();
                rds8.Name  = "DataSet8";
                rds8.Value = lst_total_sexo;
                Reporte.LocalReport.DataSources.Add(rds8);

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.Refresh();
                    Reporte.RefreshReport();
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }
        private void GenerarReporte()
        {
            try
            {
                //NOTA: ANIO TEMPORALMENTE FIJO SOLO PARA PRUEBAS DEBIDO A QUE NO HAY REGISTROS PARA EL ANIO 2016
                //DESCOMENTAR MAS ADELANTE
                var HOY          = Fechas.GetFechaDateServer;
                var mes          = HOY.Month;
                var anio         = HOY.Year;
                var datosReporte = new List <cReporteDatos>();
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1,
                    Encabezado2 = Parametro.ENCABEZADO2,
                    Encabezado3 = Parametro.ENCABEZADO3,
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Titulo      = "Población Indígena"
                });
                var lst_internos_causa_penal_delito = new cCausaPenalDelito().ObtenerTodos().ToList();
                var internos_lista    = new cIngreso().ObtenerIngresosActivos(GlobalVar.gCentro).Where(w => w.FEC_INGRESO_CERESO.Value.Year == anio && w.FEC_INGRESO_CERESO.Value.Month == mes).ToList();
                var lst_imp           = new List <cReportePoblacionIndigena>();
                var lst_imp_grafica   = new List <cGraficaPoblacionIndigenaM>();
                var lst_imp_grafica_f = new List <cGraficaPoblacionIndigenaF>();

                foreach (var item in internos_lista)
                {
                    var interno = lst_internos_causa_penal_delito.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno == null)
                    {
                        var obj = new cReportePoblacionIndigena();
                        obj.Etnia             = item.IMPUTADO.ETNIA == null ? string.Empty : item.IMPUTADO.ETNIA.DESCR;
                        obj.Causa             = "Sin Fuero";
                        obj.SinFueroDiscIndef = item.ID_CLASIFICACION_JURIDICA == "4" && item.IMPUTADO.SEXO == null ? 1 : 0;
                        obj.SinFueroIndicFem  = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "F" ? 1 : 0;
                        obj.SinFueroIndicMasc = item.ID_CLASIFICACION_JURIDICA == "I" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                        obj.SinFueroProcMasc  = item.ID_CLASIFICACION_JURIDICA == "2" && item.IMPUTADO.SEXO == "M" ? 1 : 0;
                        lst_imp.Add(obj);
                    }
                }

                foreach (var item in lst_internos_causa_penal_delito)
                {
                    var interno = internos_lista.Where(w => w.ID_CENTRO == item.ID_CENTRO && w.ID_ANIO == item.ID_ANIO && w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_INGRESO == w.ID_INGRESO).FirstOrDefault();
                    if (interno != null)
                    {
                        if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "C")
                        {
                            var obj = new cReportePoblacionIndigena();
                            obj.Etnia          = item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                            obj.Causa          = "Comun";
                            obj.ComunDiscMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "4" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.ComunImpFem    = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ComunImpMasc   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.NUC == null && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.ComunIndicFem  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ComunIndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.ComunProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ComunProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.ComunSentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.ComunSentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            lst_imp.Add(obj);
                        }
                        if (item.CAUSA_PENAL.ID_ESTATUS_CP.Value == 1 && item.ID_FUERO == "F")
                        {
                            var obj = new cReportePoblacionIndigena();
                            obj.Etnia            = item.CAUSA_PENAL.INGRESO.IMPUTADO.ETNIA.DESCR;
                            obj.Causa            = "Federal";
                            obj.FederalIndicMasc = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "I" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.FederalProcFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.FederalProcMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "2" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            obj.FederalSentFem   = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "F" ? 1 : 0;
                            obj.FederalSentMasc  = item.CAUSA_PENAL.INGRESO.ID_CLASIFICACION_JURIDICA == "3" && item.CAUSA_PENAL.INGRESO.IMPUTADO.SEXO == "M" ? 1 : 0;
                            lst_imp.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica Masculino
                foreach (var item in lst_imp)
                {
                    if (item.Causa == "Comun")
                    {
                        if (item.ComunDiscMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Discrecional Comun";
                            obj.Federal += item.ComunDiscMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunImpMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Imputado Comun";
                            obj.Federal += item.ComunImpMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunIndicMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Indiciado Comun";
                            obj.Federal += item.ComunIndicMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunProcMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Procesado Comun";
                            obj.Federal += item.ComunProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.ComunSentMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Sentenciado Comun";
                            obj.Federal += item.ComunSentMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Causa == "Federal")
                    {
                        if (item.FederalIndicMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Indiciado Federal";
                            obj.Federal += item.FederalIndicMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.FederalProcMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Procesado Federal";
                            obj.Federal += item.FederalProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.FederalSentMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Sentenciado Federal";
                            obj.Federal += item.FederalSentMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                    if (item.Causa == "Sin Fuero")
                    {
                        if (item.SinFueroDiscIndef > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Discrecional";
                            obj.Federal += item.SinFueroDiscIndef;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SinFueroIndicMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Indiciado sin Fuero";
                            obj.Federal += item.SinFueroIndicMasc;
                            lst_imp_grafica.Add(obj);
                        }
                        if (item.SinFueroProcMasc > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaM();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Procesado sin Fuero";
                            obj.Federal += item.SinFueroProcMasc;
                            lst_imp_grafica.Add(obj);
                        }
                    }
                }
                //Para alimentar grafica Femenino*******
                foreach (var item in lst_imp)
                {
                    if (item.Causa == "Comun")
                    {
                        if (item.ComunImpFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Imputado Comun";
                            obj.Federal += item.ComunImpFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.ComunIndicFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Indiciado Comun";
                            obj.Federal += item.ComunIndicFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.ComunProcFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Procesado Comun";
                            obj.Federal += item.ComunProcFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.ComunSentFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Sentenciado Comun";
                            obj.Federal += item.ComunSentFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                    }
                    if (item.Causa == "Federal")
                    {
                        if (item.FederalProcFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Procesado Federal";
                            obj.Federal += item.FederalProcFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                        if (item.FederalSentFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Sentenciado Federal";
                            obj.Federal += item.FederalSentFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                    }
                    if (item.Causa == "Sin Fuero")
                    {
                        if (item.SinFueroIndicFem > 0)
                        {
                            var obj = new cGraficaPoblacionIndigenaF();
                            obj.Etnia    = item.Etnia;
                            obj.Causa    = "Indiciado sin Fuero";
                            obj.Federal += item.SinFueroIndicFem;
                            lst_imp_grafica_f.Add(obj);
                        }
                    }
                }
                var results = lst_imp.GroupBy(n => n.Etnia).
                              Select(group =>
                                     new
                {
                    Etnia = group.Key,
                    Sexo  = group.ToList(),
                });

                var lst_imp2 = new List <cReportePoblacionIndigena>();
                foreach (var row in results)
                {
                    var obj = new cReportePoblacionIndigena();
                    obj.Etnia = row.Etnia;
                    foreach (var item in row.Sexo)
                    {
                        obj.ComunDiscMasc     += item.ComunDiscMasc;
                        obj.ComunImpFem       += item.ComunImpFem;
                        obj.ComunImpMasc      += item.ComunImpMasc;
                        obj.ComunIndicFem     += item.ComunIndicFem;
                        obj.ComunIndicMasc    += item.ComunIndicMasc;
                        obj.ComunProcFem      += item.ComunProcFem;
                        obj.ComunProcMasc     += item.ComunProcMasc;
                        obj.ComunSentFem      += item.ComunSentFem;
                        obj.ComunSentMasc     += item.ComunSentMasc;
                        obj.FederalIndicMasc  += item.FederalIndicMasc;
                        obj.FederalProcFem    += item.FederalProcFem;
                        obj.FederalProcMasc   += item.FederalProcMasc;
                        obj.FederalSentFem    += item.FederalSentFem;
                        obj.FederalSentMasc   += item.FederalSentMasc;
                        obj.SinFueroDiscIndef += item.SinFueroDiscIndef;
                        obj.SinFueroIndicFem  += item.SinFueroIndicFem;
                        obj.SinFueroIndicMasc += item.SinFueroIndicMasc;
                        obj.SinFueroProcMasc  += item.SinFueroProcMasc;
                    }
                    lst_imp2.Add(obj);
                }
                Reporte.LocalReport.ReportPath = "../../Reportes/rPoblacionIndigena.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                ReportDataSource rds1 = new ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                ReportDataSource rds2 = new ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = lst_imp2;
                Reporte.LocalReport.DataSources.Add(rds2);

                ReportDataSource rds3 = new ReportDataSource();
                rds3.Name  = "DataSet3";
                rds3.Value = lst_imp_grafica;
                Reporte.LocalReport.DataSources.Add(rds3);

                ReportDataSource rds4 = new ReportDataSource();
                rds4.Name  = "DataSet4";
                rds4.Value = lst_imp_grafica_f;
                Reporte.LocalReport.DataSources.Add(rds4);

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.Refresh();
                    Reporte.RefreshReport();
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte.", ex);
            }
        }