Exemple #1
0
        private void AgregarGrupoFamiliarPV()
        {
            try
            {
                if (emiActual != null)
                {
                    if (LstPV != null)
                    {
                        int edad = 0;
                        foreach (var pv in LstPV)
                        {
                            if (LstGrupoFamiliar == null)
                            {
                                LstGrupoFamiliar = new ObservableCollection <EMI_GRUPO_FAMILIAR>();
                            }
                            if (pv.Seleccionado)
                            {
                                edad = new Fechas().CalculaEdad(Fechas.GetFechaDateServer);
                                var egf = new EMI_GRUPO_FAMILIAR();
                                egf.NOMBRE          = pv.Nombre;
                                egf.PATERNO         = pv.Paterno;
                                egf.MATERNO         = pv.Materno;
                                egf.EDAD            = pv.Edad;
                                egf.DOMICILIO       = pv.Domicilio;
                                egf.VIVE_C_EL       = pv.ViveConEl == true ? "S" : "N";
                                egf.ID_OCUPACION    = pv.IdOcupacion;
                                egf.OCUPACION       = pv.Ocupacion;
                                egf.ID_RELACION     = pv.IdReferencia;
                                egf.TIPO_REFERENCIA = pv.TipoReferencia;
                                egf.ID_ESTADO_CIVIL = pv.IdEstadoCivil;
                                egf.ESTADO_CIVIL    = pv.EstadoCivil;
                                egf.GRUPO           = pv.IdGrupo;
                                egf.NACIMIENTO_FEC  = pv.FNacimiento;
                                egf.ID_ANIO         = pv.ID_ANIO;
                                egf.ID_CENTRO       = pv.ID_CENTRO;
                                egf.ID_IMPUTADO     = (int)pv.ID_IMPUTADO;
                                egf.ID_INGRESO      = pv.ID_INGRESO;
                                egf.ID_VISITA       = (short)pv.ID_VISITA;
                                egf.ID_EMI          = emiActual.ID_EMI;
                                egf.ID_EMI_CONS     = emiActual.ID_EMI_CONS;
                                egf.ID_CONS         = LstGrupoFamiliar.LastOrDefault() != null ? (short)(LstGrupoFamiliar.LastOrDefault().ID_CONS + 1) : (short)1;

                                LstGrupoFamiliar.Add(egf);
                            }
                        }
                    }
                }
                else
                {
                    AvisoImputadoVacio();
                }
                if (LstGrupoFamiliar != null)
                {
                    if (LstGrupoFamiliar.Count > 0)
                    {
                        IsGrupoFamiliarEmpty = false;
                    }
                    else
                    {
                        IsGrupoFamiliarEmpty = true;
                    }
                }
                else
                {
                    IsGrupoFamiliarEmpty = true;
                }
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al agregar grupo familiar PV", ex);
            }
        }
Exemple #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);
            }
        }
        private void GenerarReporte()
        {
            try
            {
                var centro = new cCentro().Obtener(GlobalVar.gCentro).FirstOrDefault();

                var datosReporte = new List <cReporteDatos>();
                datosReporte.Add(new cReporteDatos()
                {
                    Encabezado1 = Parametro.ENCABEZADO1.Trim(),
                    Encabezado2 = Parametro.ENCABEZADO2.Trim(),
                    Encabezado3 = Parametro.ENCABEZADO3.Trim(),
                    Titulo      = "RELACIÓN DE INTERNOS",
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Centro      = centro.DESCR.Trim().ToUpper(),
                });


                #region armar reporte
                var hoy     = Fechas.GetFechaDateServer;
                var f       = new Fechas();
                var reporte = new List <cReporteListadoGeneralDelito>();
                var lista   = new cIngreso().ReporteGeneralDelito(GlobalVar.gCentro, OrdenarPor, Ordenamiento);
                if (lista != null)
                {
                    foreach (var w in lista)
                    {
                        reporte.Add(new cReporteListadoGeneralDelito()
                        {
                            Expediente     = string.Format("{0}/{1}", w.ID_ANIO, w.ID_IMPUTADO),
                            Ingreso        = w.ID_INGRESO.ToString(),
                            Edad           = IncluirEdad ? (short?)f.CalculaEdad(w.NACIMIENTO_FECHA, hoy) : 0,
                            NombreCompleto = string.Format("{0} {1} {2}",
                                                           !string.IsNullOrEmpty(w.NOMBRE) ? w.NOMBRE.Trim() : string.Empty,
                                                           !string.IsNullOrEmpty(w.PATERNO) ? w.PATERNO.Trim() : string.Empty,
                                                           !string.IsNullOrEmpty(w.MATERNO) ? w.MATERNO.Trim() : string.Empty),
                            Ubicacion = string.Format("{0}-{1}-{2}-{3}",
                                                      !string.IsNullOrEmpty(w.EDIFICIO) ? w.EDIFICIO.Trim() : string.Empty,
                                                      !string.IsNullOrEmpty(w.SECTOR) ? w.SECTOR.Trim() : string.Empty,
                                                      !string.IsNullOrEmpty(w.CELDA) ? w.CELDA.Trim() : string.Empty,
                                                      w.CAMA),
                            Fuero         = string.IsNullOrEmpty(w.FUERO) ? (w.FUERO == "C" ? "COMUN" : w.FUERO == "F" ? "FEDERAL" : "DESCONOCIDO") : "DESCONOCIDO",
                            Situacion     = w.CLASIFICACION_JURIDICA,
                            FechaIngreso  = w.FEC_INGRESO_CERESO,
                            DelitoIngreso = w.INGRESO_DELITO,
                            Foto          = IncluirFoto ? (w.FOTO != null ? w.FOTO : new Imagenes().getImagenPerson()) : null,
                            Alias         = w.ALIAS,
                        });
                    }
                }
                #endregion

                #region Reporte
                Reporte.LocalReport.ReportPath = "Reportes/rListadoGeneralDelito.rdlc";
                Reporte.LocalReport.DataSources.Clear();

                var rds2 = new Microsoft.Reporting.WinForms.ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds2);

                var rds1 = new Microsoft.Reporting.WinForms.ReportDataSource();
                rds1.Name  = "DataSet1";
                rds1.Value = reporte;
                Reporte.LocalReport.DataSources.Add(rds1);

                #region Parametros
                Reporte.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("MostrarEdad", IncluirEdad ? "N" : "S"));
                Reporte.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("MostrarFoto", IncluirFoto ? "N" : "S"));
                #endregion

                //cReporteListadoGeneralDelito
                #region comentado
                //ListValue = new cIngreso().GetData().Where(w => w.ID_UB_CENTRO == GlobalVar.gCentro && !Parametro.ESTATUS_ADMINISTRATIVO_INACT.Contains(w.ID_ESTATUS_ADMINISTRATIVO)).GroupBy(g => new { g.ID_ANIO, g.ID_IMPUTADO }).SelectMany(sm => sm.Where(w => w.ID_INGRESO == sm.Max(m => m.ID_INGRESO))).AsEnumerable().Select(s => new cReporteListadoGeneralDelito()
                //{
                //    ID_ANIO = s.ID_ANIO,
                //    ID_IMPUTADO = s.ID_IMPUTADO,
                //    Expediente = s.ID_ANIO + "\\" + s.ID_IMPUTADO,
                //    NombreCompleto = (s.IMPUTADO.PATERNO != null ? s.IMPUTADO.PATERNO.Trim() : string.Empty) + " " + (s.IMPUTADO.MATERNO != null ? s.IMPUTADO.MATERNO.Trim() : string.Empty) + " " + (s.IMPUTADO.NOMBRE != null ? s.IMPUTADO.NOMBRE.Trim() : string.Empty),
                //    Ingreso = s.ID_INGRESO.ToString(),
                //    Alias = getAlias(s.IMPUTADO.ALIAS),// "preguntar por alias",
                //    DelitoIngreso = s.INGRESO_DELITO != null ? s.INGRESO_DELITO.DESCR : string.Empty,
                //    Fuero = "preguntar por fuero",
                //    Situacion = s.CLASIFICACION_JURIDICA != null ? s.CLASIFICACION_JURIDICA.DESCR.Trim() : string.Empty,
                //    Ubicacion = s.CAMA != null ? s.CAMA.CELDA.SECTOR.EDIFICIO.DESCR.Trim() + "-" + s.CAMA.CELDA.SECTOR.DESCR.Trim() + s.CAMA.CELDA.ID_CELDA.Trim() + "-" + (string.IsNullOrEmpty(s.CAMA.DESCR) ? s.CAMA.ID_CAMA.ToString().Trim() : s.CAMA.ID_CAMA + " " + s.CAMA.DESCR.Trim()) : string.Empty,
                //    Foto = IncluirFoto ? s.INGRESO_BIOMETRICO.Any(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO && w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG) ? s.INGRESO_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO && w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG).FirstOrDefault().BIOMETRICO : null : null,


                //    FechaIngreso = s.FEC_INGRESO_CERESO,
                //    Edad = IncluirEdad ? new Fechas().CalculaEdad(s.IMPUTADO.NACIMIENTO_FECHA) : new Nullable<short>()
                //}).ToList();

                //switch (SelectedValue)
                //{
                //    case OrderByValues.Ninguno:
                //        break;
                //    case OrderByValues.Numero_Expediente:
                //        if (Ordenamiento)
                //            rds1.Value = ListValue.OrderBy(o => o.ID_ANIO).ThenBy(t => t.ID_IMPUTADO).ToList();
                //        else
                //            rds1.Value = ListValue.OrderByDescending(o => o.ID_ANIO).ThenByDescending(t => t.ID_IMPUTADO).ToList();
                //        break;
                //    case OrderByValues.Nombre_Interno:
                //        if (Ordenamiento)
                //            rds1.Value = ListValue.OrderBy(o => o.NombreCompleto).ToList();
                //        else
                //            rds1.Value = ListValue.OrderByDescending(o => o.Expediente).ToList();
                //        break;
                //    case OrderByValues.Fecha_Ingreso:
                //        if (Ordenamiento)
                //            rds1.Value = ListValue.OrderBy(o => o.FechaIngreso).ToList();
                //        else
                //            rds1.Value = ListValue.OrderByDescending(o => o.Expediente).ToList();
                //        break;
                //    case OrderByValues.Ubicacion:
                //        if (Ordenamiento)
                //            rds1.Value = ListValue.OrderBy(o => o.Ubicacion).ToList();
                //        else
                //            rds1.Value = ListValue.OrderByDescending(o => o.Expediente).ToList();
                //        break;
                //    case OrderByValues.Clasificacion_Juridica:
                //        if (Ordenamiento)
                //            rds1.Value = ListValue.OrderBy(o => o.DelitoIngreso).ToList();
                //        else
                //            rds1.Value = ListValue.OrderByDescending(o => o.Expediente).ToList();
                //        break;
                //    default:
                //        break;
                //}

                //Reporte.LocalReport.DataSources.Add(rds1);
                #endregion

                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.RefreshReport();
                }));
                #endregion
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte", ex);
            }
        }
        private void ReportViewer_Load(object sender, EventArgs e)
        {
            try
            {
                ReporteViewer.ShowExportButton = false;
                if (ing != null)
                {
                    ing = (new cIngreso()).Obtener(ing.ID_CENTRO, ing.ID_ANIO, ing.ID_IMPUTADO, ing.ID_INGRESO);
                    if (ing != null)
                    {
                        var f = new cFicha();
                        //HEADER
                        var imp = ing.IMPUTADO;
                        f.Expediente    = string.Format("{0}/{1}", imp.ID_ANIO, imp.ID_IMPUTADO);
                        f.FolioGobierno = string.Format("{0}/{1}", ing.ANIO_GOBIERNO, ing.FOLIO_GOBIERNO);
                        f.NoIngreso     = ing.ID_INGRESO.ToString();
                        f.FecIngreso    = ing.FEC_INGRESO_CERESO.HasValue ? ing.FEC_INGRESO_CERESO.Value.ToString("dd/MM/yyyy") : string.Empty;
                        f.HoraIngreso   = ing.FEC_INGRESO_CERESO.HasValue ? ing.FEC_INGRESO_CERESO.Value.ToString("HH:mm:ss") : string.Empty;
                        f.Nombre        = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(imp.NOMBRE) ? imp.NOMBRE.Trim() : string.Empty, !string.IsNullOrEmpty(imp.PATERNO) ? imp.PATERNO.Trim() : string.Empty, !string.IsNullOrEmpty(imp.MATERNO) ? imp.MATERNO.Trim() : string.Empty);

                        f.Alias = string.Empty;
                        if (imp.ALIAS != null)
                        {
                            foreach (var i in imp.ALIAS)
                            {
                                if (!string.IsNullOrEmpty(f.Alias))
                                {
                                    f.Alias = string.Format("{0}, ", f.Alias);
                                }
                                f.Alias = string.Format("{0} {1} {2} {3}", f.Alias, !string.IsNullOrEmpty(i.NOMBRE) ? i.NOMBRE.Trim() : string.Empty, !string.IsNullOrEmpty(i.PATERNO) ? i.PATERNO.Trim() : string.Empty, !string.IsNullOrEmpty(i.MATERNO) ? i.MATERNO.Trim() : string.Empty);
                            }
                        }
                        f.Apodo = string.Empty;
                        if (f.Apodo != null)
                        {
                            foreach (var a in imp.APODO)
                            {
                                if (!string.IsNullOrEmpty(f.Apodo))
                                {
                                    f.Apodo = string.Format("{0}, ", f.Apodo);
                                }
                                f.Apodo = string.Format("{0}{1}", f.Apodo, a.APODO1);
                            }
                        }
                        f.Estatus             = ing.ESTATUS_ADMINISTRATIVO != null ? !string.IsNullOrEmpty(ing.ESTATUS_ADMINISTRATIVO.DESCR) ? ing.ESTATUS_ADMINISTRATIVO.DESCR.Trim() : string.Empty : string.Empty;
                        f.TipoIngreso         = ing.TIPO_INGRESO != null ? !string.IsNullOrEmpty(ing.TIPO_INGRESO.DESCR) ? ing.TIPO_INGRESO.DESCR.Trim() : string.Empty : string.Empty;
                        f.NoOficioInternacion = ing.DOCINTERNACION_NUM_OFICIO;
                        f.Autoridad           = ing.TIPO_AUTORIDAD_INTERNA != null ? !string.IsNullOrEmpty(ing.TIPO_AUTORIDAD_INTERNA.DESCR) ? ing.TIPO_AUTORIDAD_INTERNA.DESCR.Trim() : string.Empty : string.Empty;
                        f.ADisposicion        = ing.TIPO_DISPOSICION != null ? !string.IsNullOrEmpty(ing.TIPO_DISPOSICION.DESCR) ? ing.TIPO_DISPOSICION.DESCR.Trim() : string.Empty : string.Empty;
                        //DATOS GENERALES
                        f.Padre = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(imp.NOMBRE_PADRE) ? imp.NOMBRE_PADRE.Trim() : string.Empty, !string.IsNullOrEmpty(imp.PATERNO_PADRE) ? imp.PATERNO_PADRE.Trim() : string.Empty, !string.IsNullOrEmpty(imp.MATERNO_PADRE) ? imp.MATERNO_PADRE.Trim() : string.Empty);
                        f.Madre = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(imp.NOMBRE_MADRE) ? imp.NOMBRE_MADRE.Trim() : string.Empty, !string.IsNullOrEmpty(imp.PATERNO_MADRE) ? imp.PATERNO_MADRE.Trim() : string.Empty, !string.IsNullOrEmpty(imp.MATERNO_MADRE) ? imp.MATERNO_MADRE.Trim() : string.Empty);
                        var originario = new List <MUNICIPIO>((new cMunicipio()).Obtener(imp.NACIMIENTO_ESTADO.Value, imp.NACIMIENTO_MUNICIPIO.Value));
                        f.Originario = string.Empty;
                        if (originario != null)
                        {
                            if (originario.Count > 0)
                            {
                                var o = originario[0];
                                f.Originario = string.Format("{0},{1},{2}", originario[0].MUNICIPIO1, originario[0].ENTIDAD.DESCR, originario[0].ENTIDAD.PAIS_NACIONALIDAD.PAIS);
                            }
                        }

                        f.Domicilio     = ing.DOMICILIO_CALLE;
                        f.Numero        = ing.DOMICILIO_NUM_EXT.HasValue ? ing.DOMICILIO_NUM_EXT.Value.ToString() : string.Empty;
                        f.Colonia       = ing.COLONIA != null ? !string.IsNullOrEmpty(ing.COLONIA.DESCR) ? ing.COLONIA.DESCR.Trim() : string.Empty : string.Empty;
                        f.Ciudad        = ing.MUNICIPIO != null ? !string.IsNullOrEmpty(ing.MUNICIPIO.MUNICIPIO1) ? ing.MUNICIPIO.MUNICIPIO1.Trim() : string.Empty : string.Empty;
                        f.FecNacimiento = imp.NACIMIENTO_FECHA.HasValue ? imp.NACIMIENTO_FECHA.Value.ToString("dd/MM/yyyy") : string.Empty;
                        var calcula = new Fechas();
                        f.Edad = calcula.CalculaEdad(imp.NACIMIENTO_FECHA).ToString();
                        f.Sexo = imp.SEXO == "M" ? "MASCULINO" : "FEMENINO";
                        //f.EdoCivil = imp.ESTADO_CIVIL != null ? !string.IsNullOrEmpty(imp.ESTADO_CIVIL.DESCR) ? imp.ESTADO_CIVIL.DESCR.Trim() : string.Empty : string.Empty;
                        //f.Religion = imp.RELIGION != null ? !string.IsNullOrEmpty(imp.RELIGION.DESCR) ? imp.RELIGION.DESCR.Trim() : string.Empty : string.Empty;
                        //f.Ocupacion = imp.OCUPACION != null ? !string.IsNullOrEmpty(imp.OCUPACION.DESCR) ? imp.OCUPACION.DESCR.Trim() : string.Empty : string.Empty;
                        //f.GradoMaxEstudio = imp.ESCOLARIDAD != null ? !string.IsNullOrEmpty(imp.ESCOLARIDAD.DESCR) ? imp.ESCOLARIDAD.DESCR.Trim() : string.Empty : string.Empty;
                        f.EdoCivil           = ing.ESTADO_CIVIL != null ? !string.IsNullOrEmpty(ing.ESTADO_CIVIL.DESCR) ? ing.ESTADO_CIVIL.DESCR.Trim() : string.Empty : string.Empty;
                        f.Religion           = ing.RELIGION != null ? !string.IsNullOrEmpty(ing.RELIGION.DESCR) ? ing.RELIGION.DESCR.Trim() : string.Empty : string.Empty;
                        f.Ocupacion          = ing.OCUPACION != null ? !string.IsNullOrEmpty(ing.OCUPACION.DESCR) ? ing.OCUPACION.DESCR.Trim() : string.Empty : string.Empty;
                        f.GradoMaxEstudio    = ing.ESCOLARIDAD != null ? !string.IsNullOrEmpty(ing.ESCOLARIDAD.DESCR) ? ing.ESCOLARIDAD.DESCR.Trim() : string.Empty : string.Empty;
                        f.LugarNAcExtranjero = imp.NACIMIENTO_LUGAR;



                        //MEDIA FILIACION
                        f.Estatura = ing.ESTATURA != null?ing.ESTATURA.HasValue?ing.ESTATURA.Value.ToString() : string.Empty : string.Empty;

                        f.Peso = ing.PESO != null?ing.PESO.HasValue?ing.PESO.Value.ToString() : string.Empty : string.Empty;

                        if (imp.IMPUTADO_FILIACION != null)
                        {
                            foreach (var x in imp.IMPUTADO_FILIACION)
                            {
                                switch (x.ID_MEDIA_FILIACION)
                                {
                                case 1://NARIZ RAIZ
                                    f.NarizRaiz = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 4://NARIZ ANCHO
                                    f.NarizAncho = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 9://CABELLO COLOR
                                    f.CabelloColor = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 11://CABELLO FORMA
                                    f.CabelloForma = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 16://OJOS COLOR
                                    f.OjosColor = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 17://OJOS FORMA
                                    f.OjosForma = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 18://OJOS TAMANIO
                                    f.OjosTamano = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 19://BOCA TAMANIO
                                    f.BocaTamano = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 20://BOCA COMISURAS
                                    f.BocaComisuras = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 21://LABIOS ESPESOR
                                    f.LabiosEspesor = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 24://MENTON TIPO
                                    f.MentonTipo = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 25://MENTON FORMA
                                    f.MentonForma = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 26://MENTON INCLINACION
                                    f.MentonInclinacion = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 27://FRENTE ALTURA
                                    f.FrenteAlta = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 28://FRENTE INCLINACION
                                    f.FrenteInclinada = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 29://FRENTE ANCHO
                                    f.FrenteAncha = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 30://COLOR DE PIEL
                                    f.ColorPiel = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 32://LABIO ALTURA
                                    f.LabiosAltura = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 33://LABIO PROMINENCIA
                                    f.LabiosPromedio = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;

                                case 39://COMPLEAXION
                                    f.Complexion = x.TIPO_FILIACION != null ? !string.IsNullOrEmpty(x.TIPO_FILIACION.DESCR) ? x.TIPO_FILIACION.DESCR.Trim() : string.Empty : string.Empty;
                                    break;
                                }
                            }
                        }
                        var ficha = new List <cFicha>();
                        ficha.Add(f);
                        //CAUSAS PENALES
                        var causasPenales = new List <cCausasPenales>();
                        if (ing.CAUSA_PENAL != null)
                        {
                            foreach (var x in ing.CAUSA_PENAL)
                            {
                                var cp = new cCausasPenales();
                                cp.CausaPenal  = string.Format("{0}/{1}{2}", x.CP_ANIO, x.CP_FOLIO, string.IsNullOrEmpty(x.CP_BIS) ? string.Empty : "-" + x.CP_BIS);
                                cp.Abreviatura = string.Empty;
                                if (x.JUZGADO != null)
                                {
                                    cp.Juzgado = x.JUZGADO.DESCR;
                                }
                                cp.Consignado = x.AP_FEC_CONSIGNACION != null?x.AP_FEC_CONSIGNACION.Value.ToString("dd/MM/yyyy") : string.Empty;

                                cp.Delitos = string.Empty;//"* HOMICIDIO SIMPLE \n* PRIVACION DE LIBERTAR PERSONAL \n* DELITOS EN MATERIA DE INHUMACION Y EXHUMACION \n* RESPONSABILIDAD PROFESIONAL Y TECNICA";
                                if (x.CAUSA_PENAL_DELITO != null)
                                {
                                    foreach (var d in x.CAUSA_PENAL_DELITO)
                                    {
                                        if (string.IsNullOrEmpty(cp.Delitos))
                                        {
                                            cp.Delitos = string.Format("{0}\n", d.TIPO_DELITO != null ? !string.IsNullOrEmpty(d.TIPO_DELITO.DESCR) ? d.TIPO_DELITO.DESCR.Trim() : string.Empty : string.Empty);
                                        }
                                        cp.Delitos = string.Format("{0}* {1}", cp.Delitos, d.MODALIDAD_DELITO != null ? !string.IsNullOrEmpty(d.MODALIDAD_DELITO.DESCR) ? d.MODALIDAD_DELITO.DESCR.Trim() : string.Empty : string.Empty);
                                    }
                                }
                                causasPenales.Add(cp);
                            }
                        }

                        //SENIAS PARTICULARES
                        var seniasParticulares = new List <cSeniasParticulares>();
                        if (imp.SENAS_PARTICULARES != null)
                        {
                            foreach (var x in imp.SENAS_PARTICULARES)
                            {
                                var sp = new cSeniasParticulares();
                                sp.Significado = x.SIGNIFICADO;
                                seniasParticulares.Add(sp);
                            }
                        }
                        //BIOMETRICO (FOTOS)
                        var imputadoBiometricos = new List <cBiometricos>();
                        var ib = new cBiometricos();
                        ib.FotoIzquerda = ib.FotoCentro = ib.FotoDerecha = new Imagenes().getImagenPerson();//System.IO.File.ReadAllBytes("../../Imagen/placeholder_person.gif");
                        if (ing.INGRESO_BIOMETRICO.Where(w => w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG) != null)
                        {
                            foreach (var b in ing.INGRESO_BIOMETRICO)
                            {
                                switch (b.ID_TIPO_BIOMETRICO)
                                {
                                case (int)enumTipoBiometrico.FOTO_IZQ_SEGUIMIENTO:
                                    ib.FotoIzquerda = b.BIOMETRICO;
                                    break;

                                case (int)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO:
                                    ib.FotoCentro = b.BIOMETRICO;
                                    break;

                                case (int)enumTipoBiometrico.FOTO_DER_SEGUIMIENTO:
                                    ib.FotoDerecha = b.BIOMETRICO;
                                    break;
                                }
                            }
                        }


                        //HUELLAS
                        if (imp.IMPUTADO_BIOMETRICO != null)
                        {
                            foreach (var b in imp.IMPUTADO_BIOMETRICO.Where(w => w.ID_FORMATO == (short)enumTipoFormato.FMTO_WSQ))
                            {
                                if (b.BIOMETRICO.Length > 0)
                                {
                                    switch (b.ID_TIPO_BIOMETRICO)
                                    {
                                    case (int)enumTipoBiometrico.PULGAR_IZQUIERDO:
                                        ib.PulgarIzquierda = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.INDICE_IZQUIERDO:
                                        ib.IndiceIzquierda = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.MEDIO_IZQUIERDO:
                                        ib.MedioIzquierda = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.ANULAR_IZQUIERDO:
                                        ib.AnularIzquierda = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.MENIQUE_IZQUIERDO:
                                        ib.MeniqueIzquierda = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.PULGAR_DERECHO:
                                        ib.PulgarDerecha = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.INDICE_DERECHO:
                                        ib.IndiceDerecha = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.MEDIO_DERECHO:
                                        ib.MedioDerecha = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.ANULAR_DERECHO:
                                        ib.AnularDerecha = getHuella(b.BIOMETRICO);
                                        break;

                                    case (int)enumTipoBiometrico.MENIQUE_DERECHO:
                                        ib.MeniqueDerecha = getHuella(b.BIOMETRICO);
                                        break;
                                    }
                                }
                            }
                        }

                        //GENERALES IDIOMA
                        var gi = new List <cIdiomaGenerales>();
                        gi.Add(
                            new cIdiomaGenerales()
                        {
                            Nacionalidad      = ing.IMPUTADO != null ? ing.IMPUTADO.PAIS_NACIONALIDAD != null ? !string.IsNullOrEmpty(ing.IMPUTADO.PAIS_NACIONALIDAD.NACIONALIDAD) ? ing.IMPUTADO.PAIS_NACIONALIDAD.NACIONALIDAD.Trim() : string.Empty : string.Empty : string.Empty,
                            Idioma            = ing.IMPUTADO != null ? ing.IMPUTADO.IDIOMA != null ? !string.IsNullOrEmpty(ing.IMPUTADO.IDIOMA.DESCR) ? ing.IMPUTADO.IDIOMA.DESCR.Trim() : string.Empty : string.Empty : string.Empty,
                            Etnia             = ing.IMPUTADO != null ? ing.IMPUTADO.ETNIA != null ? !string.IsNullOrEmpty(ing.IMPUTADO.ETNIA.DESCR) ? ing.IMPUTADO.ETNIA.DESCR.Trim() : string.Empty : string.Empty : string.Empty,
                            Dialecto          = ing.IMPUTADO != null ? ing.IMPUTADO.DIALECTO != null ? !string.IsNullOrEmpty(ing.IMPUTADO.DIALECTO.DESCR) ? ing.IMPUTADO.DIALECTO.DESCR.Trim() : string.Empty : string.Empty : string.Empty,
                            RequiereTraductor = ing.IMPUTADO != null ? !string.IsNullOrEmpty(ing.IMPUTADO.TRADUCTOR) ? ing.IMPUTADO.TRADUCTOR == "S" ? "SI" : "NO" : "NO" : "NO"
                        });


                        //ib.PulgarIzquierda = System.IO.File.ReadAllBytes(@"C:\Git\seguridadpublica\ControlPenales\Imagen\huella.jpg");
                        //ib.IndiceIzquierda = System.IO.File.ReadAllBytes(@"C:\Git\seguridadpublica\ControlPenales\Imagen\huella.jpg");
                        //ib.MedioIzquierda = ib.IndiceIzquierda;
                        //ib.AnularIzquierda = ib.IndiceIzquierda;
                        //ib.MeniqueIzquierda = ib.IndiceIzquierda;
                        //ib.PulgarDerecha = ib.IndiceIzquierda;
                        //ib.IndiceDerecha = ib.IndiceIzquierda;
                        //ib.MedioDerecha = ib.IndiceIzquierda;
                        //ib.AnularDerecha = ib.IndiceIzquierda;
                        //ib.MeniqueDerecha = ib.IndiceIzquierda;
                        imputadoBiometricos.Add(ib);

                        var centro  = new cCentro().Obtener(GlobalVar.gCentro).SingleOrDefault();
                        var reporte = new List <cReporte>();
                        reporte.Add(new cReporte()
                        {
                            Encabezado1 = Parametro.ENCABEZADO1,
                            Encabezado2 = Parametro.ENCABEZADO2,
                            Encabezado3 = centro.DESCR.Trim().ToUpper(),
                            Encabezado4 = "Ficha",
                            Logo1       = Parametro.REPORTE_LOGO1,
                            Logo2       = Parametro.REPORTE_LOGO2,
                        });

                        var firmas = new List <cFirmas>();
                        firmas.Add(new cFirmas()
                        {
                            NombreUsuario     = StaticSourcesViewModel.UsuarioLogin.Nombre,
                            NombreSubdirector = Parametro.SUBDIRECTOR_CENTRO.Trim()
                        });

                        ReporteViewer.LocalReport.ReportPath = "Reportes/rFicha.rdlc";
                        ReporteViewer.LocalReport.DataSources.Clear();
                        //FICHA
                        Microsoft.Reporting.WinForms.ReportDataSource rds = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds.Name  = "DataSet1";
                        rds.Value = ficha;
                        ReporteViewer.LocalReport.DataSources.Add(rds);
                        //CAUSA PENAL
                        Microsoft.Reporting.WinForms.ReportDataSource rds2 = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds2.Name  = "DataSet2";
                        rds2.Value = causasPenales;
                        ReporteViewer.LocalReport.DataSources.Add(rds2);
                        //SENIAS PARTICULARES
                        Microsoft.Reporting.WinForms.ReportDataSource rds3 = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds3.Name  = "DataSet3";
                        rds3.Value = seniasParticulares;
                        ReporteViewer.LocalReport.DataSources.Add(rds3);
                        //BIOMETRICO
                        Microsoft.Reporting.WinForms.ReportDataSource rds4 = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds4.Name  = "DataSet4";
                        rds4.Value = imputadoBiometricos;
                        ReporteViewer.LocalReport.DataSources.Add(rds4);
                        ReporteViewer.RefreshReport();

                        //IDIOMA
                        Microsoft.Reporting.WinForms.ReportDataSource rds5 = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds5.Name  = "DataSet5";
                        rds5.Value = gi;
                        ReporteViewer.LocalReport.DataSources.Add(rds5);

                        //Reporte
                        Microsoft.Reporting.WinForms.ReportDataSource rds6 = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds6.Name  = "DataSet6";
                        rds6.Value = reporte;
                        ReporteViewer.LocalReport.DataSources.Add(rds6);

                        //Firmas
                        Microsoft.Reporting.WinForms.ReportDataSource rds7 = new Microsoft.Reporting.WinForms.ReportDataSource();
                        rds7.Name  = "DataSet7";
                        rds7.Value = firmas;
                        ReporteViewer.LocalReport.DataSources.Add(rds7);

                        ReporteViewer.RefreshReport();
                    }
                }
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte de la ficha.", ex);
            }
        }
        private void ImprimirDocumento()
        {
            try
            {
                if (SelectedImputadoDocumento != null)
                {
                    var centro     = new cCentro().Obtener(GlobalVar.gCentro).FirstOrDefault();
                    var parametros = new Dictionary <string, string>();
                    parametros.Add("<<centro>>", centro.DESCR.Trim());
                    parametros.Add("<<nombre>>", string.Format("{0} {1} {2}",
                                                               !string.IsNullOrEmpty(Imputado.NOMBRE) ? Imputado.NOMBRE.Trim() : string.Empty,
                                                               !string.IsNullOrEmpty(Imputado.PATERNO) ? Imputado.PATERNO.Trim() : string.Empty,
                                                               !string.IsNullOrEmpty(Imputado.MATERNO) ? Imputado.MATERNO.Trim() : string.Empty));
                    if (Imputado.ALIAS != null)
                    {
                        string alias = string.Empty;
                        foreach (var a in Imputado.ALIAS)
                        {
                            if (!string.IsNullOrEmpty(alias))
                            {
                                alias = string.Format("{0},", alias);
                            }
                            alias = alias + string.Format("{0} {1} {2}", a.NOMBRE, a.PATERNO, a.MATERNO);
                        }
                        parametros.Add("<<alias>>", alias);
                    }
                    else
                    {
                        parametros.Add("<<alias>>", string.Empty);
                    }
                    if (Imputado.APODO != null)
                    {
                        string apodos = string.Empty;
                        foreach (var a in Imputado.APODO)
                        {
                            if (!string.IsNullOrEmpty(apodos))
                            {
                                apodos = string.Format("{0},", apodos);
                            }
                            apodos = apodos + a.APODO1;
                        }
                        parametros.Add("<<apodo>>", apodos);
                    }
                    else
                    {
                        parametros.Add("<<apodo>>", string.Empty);
                    }

                    //parametros.Add("<<estadoCivil>>", Imputado.ESTADO_CIVIL != null ? Imputado.ESTADO_CIVIL.DESCR.Trim() : string.Empty);
                    parametros.Add("<<estadoCivil>>", SelectIngreso.ESTADO_CIVIL != null ? SelectIngreso.ESTADO_CIVIL.DESCR.Trim() : string.Empty);
                    parametros.Add("<<edad>>", new Fechas().CalculaEdad(Imputado.NACIMIENTO_FECHA).ToString());
                    parametros.Add("<<conyugue>>", string.Empty);
                    parametros.Add("<<originario>>", string.Empty);
                    parametros.Add("<<fecNacimiento>>", Imputado.NACIMIENTO_FECHA.Value.ToString("dd/MM/yyyy"));
                    //parametros.Add("<<escolaridad>>", Imputado.ESCOLARIDAD != null ? Imputado.ESCOLARIDAD.DESCR.Trim() : string.Empty);
                    parametros.Add("<<escolaridad>>", SelectIngreso.ESCOLARIDAD != null ? SelectIngreso.ESCOLARIDAD.DESCR.Trim() : string.Empty);

                    //parametros.Add("<<domicilioActual>>", string.Format("{0} {1},{2},{3},{4}",
                    //    !string.IsNullOrEmpty(Imputado.DOMICILIO_CALLE) ? Imputado.DOMICILIO_CALLE.Trim() : string.Empty,
                    //    Imputado.DOMICILIO_NUM_EXT,
                    //    Imputado.COLONIA != null ? Imputado.COLONIA.DESCR.Trim() : string.Empty,
                    //    Imputado.COLONIA.MUNICIPIO != null ? Imputado.COLONIA.MUNICIPIO.MUNICIPIO1.Trim() : string.Empty,
                    //    Imputado.COLONIA.MUNICIPIO.ENTIDAD != null ? Imputado.COLONIA.MUNICIPIO.ENTIDAD.DESCR.Trim() : string.Empty));
                    parametros.Add("<<domicilioActual>>", string.Format("{0} {1},{2},{3},{4}",
                                                                        !string.IsNullOrEmpty(SelectIngreso.DOMICILIO_CALLE) ? SelectIngreso.DOMICILIO_CALLE.Trim() : string.Empty,
                                                                        SelectIngreso.DOMICILIO_NUM_EXT,
                                                                        SelectIngreso.COLONIA != null ? SelectIngreso.COLONIA.DESCR.Trim() : string.Empty,
                                                                        SelectIngreso.COLONIA.MUNICIPIO != null ? SelectIngreso.COLONIA.MUNICIPIO.MUNICIPIO1.Trim() : string.Empty,
                                                                        SelectIngreso.COLONIA.MUNICIPIO.ENTIDAD != null ? SelectIngreso.COLONIA.MUNICIPIO.ENTIDAD.DESCR.Trim() : string.Empty));
                    //parametros.Add("<<TiempoRadicacion>>",(Imputado.RESIDENCIA_ANIOS != null ? string.Format("{0} AÑOS", Imputado.RESIDENCIA_ANIOS) : string.Empty) + (Imputado.RESIDENCIA_MESES != null ? string.Format(" {0} MESES", Imputado.RESIDENCIA_MESES) : string.Empty));
                    parametros.Add("<<TiempoRadicacion>>", (SelectIngreso.RESIDENCIA_ANIOS != null ? string.Format("{0} AÑOS", SelectIngreso.RESIDENCIA_ANIOS) : string.Empty) + (SelectIngreso.RESIDENCIAS_MESES != null ? string.Format(" {0} MESES", SelectIngreso.RESIDENCIAS_MESES) : string.Empty));
                    //parametros.Add("<<telefono>>", Imputado.TELEFONO != null ? Imputado.TELEFONO.ToString() : string.Empty);
                    parametros.Add("<<telefono>>", SelectIngreso.TELEFONO != null ? SelectIngreso.TELEFONO.ToString() : string.Empty);
                    //parametros.Add("<<ocupacion>>", Imputado.OCUPACION != null ? Imputado.OCUPACION.DESCR.Trim() : string.Empty);
                    parametros.Add("<<ocupacion>>", SelectIngreso.OCUPACION != null ? SelectIngreso.OCUPACION.DESCR.Trim() : string.Empty);
                    //parametros.Add("<<NombreMadre>>",string.Format("{0} {1} {2} {3}",
                    //    Imputado.NOMBRE_MADRE,
                    //    !string.IsNullOrEmpty(Imputado.PATERNO_MADRE) ? Imputado.PATERNO_MADRE.Trim() : string.Empty,
                    //    !string.IsNullOrEmpty(Imputado.MATERNO_MADRE) ? Imputado.MATERNO_MADRE.Trim() : string.Empty,
                    //    Imputado.MADRE_FINADO.Equals("S") ? "FINADO" : string.Empty));
                    parametros.Add("<<NombreMadre>>", string.Format("{0} {1} {2} {3}",
                                                                    Imputado.NOMBRE_MADRE,
                                                                    !string.IsNullOrEmpty(Imputado.PATERNO_MADRE) ? Imputado.PATERNO_MADRE.Trim() : string.Empty,
                                                                    !string.IsNullOrEmpty(Imputado.MATERNO_MADRE) ? Imputado.MATERNO_MADRE.Trim() : string.Empty,
                                                                    SelectIngreso.MADRE_FINADO.Equals("S") ? "FINADO" : string.Empty));
                    //parametros.Add("<<nombrePadre>>", string.Format("{0} {1} {2} {3}",
                    //    Imputado.NOMBRE_PADRE,
                    //    !string.IsNullOrEmpty(Imputado.PATERNO_PADRE) ? Imputado.PATERNO_PADRE.Trim() : string.Empty,
                    //    !string.IsNullOrEmpty(Imputado.MATERNO_PADRE) ? Imputado.MATERNO_PADRE.Trim() : string.Empty,
                    //    Imputado.PADRE_FINADO.Equals("S") ? "FINADO" : string.Empty));
                    parametros.Add("<<nombrePadre>>", string.Format("{0} {1} {2} {3}",
                                                                    Imputado.NOMBRE_PADRE,
                                                                    !string.IsNullOrEmpty(Imputado.PATERNO_PADRE) ? Imputado.PATERNO_PADRE.Trim() : string.Empty,
                                                                    !string.IsNullOrEmpty(Imputado.MATERNO_PADRE) ? Imputado.MATERNO_PADRE.Trim() : string.Empty,
                                                                    SelectIngreso.PADRE_FINADO.Equals("S") ? "FINADO" : string.Empty));
                    parametros.Add("<<domicilioPadres>>", string.Empty);

/*<<nombre>>
 * <<alias>>
 * <<apodo>>
 * <<estadoCivil>>
 * <<edad>>
 * <<conyugue>>
 * <<originario>>
 * <<fecNacimiento>>
 * <<escolaridad>>
 * <<domicilioActual>>
 * <<TiempoRadicacion>>
 * <<telefono>>
 * <<ocupacion>>
 * <<NombreMadre>>
 * <<nombrePadre>>
 * <<domicilioPadres>>*/



                    //CARGAMOS DE NUEVO PARA MOSTRAR LA INFORMACION ACTUALIZADA
                    SelectedImputadoDocumento = (new cImputadoDocumento()).Obtener(SelectedImputadoDocumento.ID_CENTRO, SelectedImputadoDocumento.ID_ANIO, SelectedImputadoDocumento.ID_IMPUTADO, SelectedImputadoDocumento.ID_IM_TIPO_DOCTO);
                    //if (docto != null)
                    //    if (docto.Count > 0)
                    //        SelectedImputadoDocumento = docto[0];


                    ReporteIngreso reporte = new ReporteIngreso();
                    reporte.Nombre = string.Format("{0} {1} {2}", Imputado.NOMBRE, Imputado.PATERNO, Imputado.MATERNO);
                    reporte.Alias  = " ";
                    if (Imputado.ALIAS != null)
                    {
                        string alias = string.Empty;
                        foreach (var a in Imputado.ALIAS)
                        {
                            if (!string.IsNullOrEmpty(alias))
                            {
                                alias = string.Format("{0},", alias);
                            }
                            alias = alias + string.Format("{0} {1} {2}", a.NOMBRE, a.PATERNO, a.MATERNO);
                        }
                    }
                    reporte.Apodo = " ";
                    if (Imputado.APODO != null)
                    {
                        string apodos = string.Empty;
                        foreach (var a in Imputado.APODO)
                        {
                            if (!string.IsNullOrEmpty(apodos))
                            {
                                apodos = string.Format("{0},", apodos);
                            }
                            apodos = apodos + a.APODO1;
                        }
                    }
                    //reporte.EstadoCivil = Imputado.ESTADO_CIVIL != null ? Imputado.ESTADO_CIVIL.DESCR : " ";
                    reporte.EstadoCivil   = SelectIngreso.ESTADO_CIVIL != null ? SelectIngreso.ESTADO_CIVIL.DESCR : " ";
                    reporte.Conyugue      = " ";
                    reporte.Originario    = " ";
                    reporte.FecNacimiento = " ";
                    //reporte.Escolaridad = Imputado.ESCOLARIDAD != null ? Imputado.ESCOLARIDAD.DESCR : " ";
                    reporte.Escolaridad = SelectIngreso.ESCOLARIDAD != null ? SelectIngreso.ESCOLARIDAD.DESCR : " ";

                    reporte.DomicilioActual = " ";//string.Format("{0} {1},{2},{3},{4}", Imputado.DOMICILIO_CALLE, Imputado.DOMICILIO_NUM_EXT, Imputado.COLONIA.DESCR, Imputado.COLONIA.MUNICIPIO.MUNICIPIO1, Imputado.COLONIA.MUNICIPIO.ENTIDAD.DESCR);
                    var fechas = new Fechas();
                    reporte.Edad = " ";
                    if (Imputado.NACIMIENTO_FECHA != null)
                    {
                        reporte.Edad = string.Format("{0} AÑOS", fechas.CalculaEdad(Imputado.NACIMIENTO_FECHA));
                    }
                    //reporte.TiempoBC = (Imputado.RESIDENCIA_ANIOS != null ? string.Format("{0} AÑOS", Imputado.RESIDENCIA_ANIOS) : string.Empty) + (Imputado.RESIDENCIA_MESES != null ? string.Format(" {0} MESES", Imputado.RESIDENCIA_MESES) : string.Empty);
                    reporte.TiempoBC = (SelectIngreso.RESIDENCIA_ANIOS != null ? string.Format("{0} AÑOS", SelectIngreso.RESIDENCIA_ANIOS) : string.Empty) + (SelectIngreso.RESIDENCIAS_MESES != null ? string.Format(" {0} MESES", SelectIngreso.RESIDENCIAS_MESES) : string.Empty);
                    //reporte.Telefono = Imputado.TELEFONO != null ? Imputado.TELEFONO.ToString() : " ";
                    reporte.Telefono = SelectIngreso.TELEFONO != null?SelectIngreso.TELEFONO.ToString() : " ";

                    //reporte.Ocupacion = Imputado.OCUPACION != null ? Imputado.OCUPACION.DESCR : " ";
                    reporte.Ocupacion = SelectIngreso.OCUPACION != null ? SelectIngreso.OCUPACION.DESCR : " ";
                    //reporte.NombreMadre = string.Format("{0} {1} {2} {3}", Imputado.NOMBRE_MADRE, Imputado.PATERNO_MADRE, Imputado.MATERNO_MADRE, Imputado.MADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);
                    reporte.NombreMadre = string.Format("{0} {1} {2} {3}", Imputado.NOMBRE_MADRE, Imputado.PATERNO_MADRE, Imputado.MATERNO_MADRE, SelectIngreso.MADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);
                    //reporte.NombrePadre = string.Format("{0} {1} {2} {3}", Imputado.NOMBRE_PADRE, Imputado.PATERNO_PADRE, Imputado.MATERNO_PADRE, Imputado.PADRE_FINADO.Equals("S") ? "FINADO" : string.Empty); ;
                    reporte.NombrePadre     = string.Format("{0} {1} {2} {3}", Imputado.NOMBRE_PADRE, Imputado.PATERNO_PADRE, Imputado.MATERNO_PADRE, SelectIngreso.PADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);;
                    reporte.DomicilioPadres = " ";
                    if (reporte != null)
                    {
                        Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
                        Document wordDoc       = new Document();
                        var      tmpFile       = Path.GetTempFileName();
                        var      tmpFileStream = File.OpenWrite(tmpFile);
                        tmpFileStream.Write(SelectedImputadoDocumento.DOCUMENTO, 0, SelectedImputadoDocumento.DOCUMENTO.Length);
                        tmpFileStream.Close();
                        wordDoc = wordApp.Documents.Add(tmpFile);
                        foreach (Field myMergeField in wordDoc.Fields)
                        {
                            Range  rngFieldCode = myMergeField.Code;
                            String fieldText    = rngFieldCode.Text;
                            // ONLY GETTING THE MAILMERGE FIELDS
                            if (fieldText.StartsWith(" MERGEFIELD"))
                            {
                                Int32  endMerge        = fieldText.IndexOf("\\");
                                Int32  fieldNameLength = fieldText.Length - endMerge;
                                String fieldName       = fieldText.Substring(11, endMerge - 11);
                                fieldName = fieldName.Trim();

                                switch (fieldName)
                                {
                                case "nombre":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Nombre);
                                    break;

                                case "alias":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Alias);
                                    break;

                                case "apodo":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Apodo);
                                    break;

                                case "estadoCivil":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.EstadoCivil);
                                    break;

                                case "edad":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Edad);
                                    break;

                                case "conyugue":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Conyugue);
                                    break;

                                case "originario":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Originario);
                                    break;

                                case "fecNacimiento":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.FecNacimiento);
                                    break;

                                case "escolaridad":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Escolaridad);
                                    break;

                                case "domicilioActual":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.DomicilioActual);
                                    break;

                                case "tiempoRadicacion":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.TiempoBC);
                                    break;

                                case "telefono":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Telefono);
                                    break;

                                case "ocupacion":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.Ocupacion);
                                    break;

                                case "nombreMadre":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.NombreMadre);
                                    break;

                                case "nombrePadre":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.NombrePadre);
                                    break;

                                case "domicilioPadres":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(reporte.DomicilioPadres);
                                    break;

                                case "centro":
                                    myMergeField.Select();
                                    wordApp.Selection.TypeText(centro.DESCR.Trim());
                                    break;
                                }
                            }
                        }
                        wordDoc.SaveAs(tmpFile, WdSaveFormat.wdFormatDocument97);
                        wordDoc.Close();
                        byte[] bytes = System.IO.File.ReadAllBytes(tmpFile);
                        var    v     = new EditorView(SelectedImputadoDocumento, bytes);
                        PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO);
                        v.Owner   = PopUpsViewModels.MainWindow;
                        v.Closed += (s, e) => { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); };
                        v.Show();
                    }
                }
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al imprimir documento.", ex);
            }
        }
        private void VerDocumento()
        {
            //if (SelectedImputadoDocumento != null)
            if (SelectIngreso == null)
            {
                new Dialogos().ConfirmacionDialogo("Validación", "Favor de guardar antes de imprimir");
                return;
            }
            else
            {
                if (SelectIngreso.ID_ANIO == 0 && SelectIngreso.ID_IMPUTADO == 0 && SelectIngreso.ID_INGRESO == 0)
                {
                    new Dialogos().ConfirmacionDialogo("Validación", "Favor de guardar antes de imprimir");
                    return;
                }
            }
            if (SelectIngreso != null)
            {
                //SelectIngreso = new cIngreso().Obtener(SelectIngreso.ID_CENTRO, SelectIngreso.ID_ANIO, SelectIngreso.ID_IMPUTADO, SelectIngreso.ID_INGRESO);
                var centro = new cCentro().Obtener(GlobalVar.gCentro).FirstOrDefault();
                //CARGAMOS DE NUEVO PARA MOSTRAR LA INFORMACION ACTUALIZADA
                SelectedImputadoDocumento = (new cImputadoDocumento()).Obtener(SelectIngreso.ID_CENTRO, SelectIngreso.ID_ANIO, SelectIngreso.ID_IMPUTADO, SelectIngreso.ID_INGRESO, (short)enumTipoDocumentoImputado.SALA_CABOS);
                if (SelectedImputadoDocumento == null)
                {
                    #region Reporte
                    ReporteIngreso reporte = new ReporteIngreso();
                    reporte.Nombre = string.Format("{0} {1} {2}", SelectIngreso.IMPUTADO.NOMBRE.Trim(),
                                                   !string.IsNullOrEmpty(SelectIngreso.IMPUTADO.PATERNO) ? SelectIngreso.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                   !string.IsNullOrEmpty(SelectIngreso.IMPUTADO.MATERNO) ? SelectIngreso.IMPUTADO.MATERNO.Trim() : string.Empty);
                    reporte.Alias = " ";
                    if (SelectIngreso.IMPUTADO.ALIAS != null)
                    {
                        string alias = string.Empty;
                        foreach (var a in SelectIngreso.IMPUTADO.ALIAS)
                        {
                            if (!string.IsNullOrEmpty(alias))
                            {
                                alias = string.Format("{0},", alias);
                            }
                            alias = alias + string.Format("{0} {1} {2}", a.NOMBRE.Trim(),
                                                          !string.IsNullOrEmpty(a.PATERNO) ? a.PATERNO.Trim() : string.Empty,
                                                          !string.IsNullOrEmpty(a.MATERNO) ? a.MATERNO.Trim() : string.Empty);
                        }
                    }
                    reporte.Apodo = " ";
                    if (SelectIngreso.IMPUTADO.APODO != null)
                    {
                        string apodos = string.Empty;
                        foreach (var a in SelectIngreso.IMPUTADO.APODO)
                        {
                            if (!string.IsNullOrEmpty(apodos))
                            {
                                apodos = string.Format("{0},", apodos);
                            }
                            apodos = apodos + a.APODO1.Trim();
                        }
                    }
                    //reporte.EstadoCivil = Imputado.ESTADO_CIVIL != null ? Imputado.ESTADO_CIVIL.DESCR : " ";
                    reporte.EstadoCivil   = SelectIngreso.ESTADO_CIVIL != null ? SelectIngreso.ESTADO_CIVIL.DESCR : " ";
                    reporte.Conyugue      = " ";
                    reporte.Originario    = " ";
                    reporte.FecNacimiento = " ";
                    //reporte.Escolaridad = Imputado.ESCOLARIDAD != null ? Imputado.ESCOLARIDAD.DESCR : " ";
                    reporte.Escolaridad = SelectIngreso.ESCOLARIDAD != null ? SelectIngreso.ESCOLARIDAD.DESCR : " ";

                    reporte.DomicilioActual = " ";//string.Format("{0} {1},{2},{3},{4}", Imputado.DOMICILIO_CALLE, Imputado.DOMICILIO_NUM_EXT, Imputado.COLONIA.DESCR, Imputado.COLONIA.MUNICIPIO.MUNICIPIO1, Imputado.COLONIA.MUNICIPIO.ENTIDAD.DESCR);
                    var fechas = new Fechas();
                    reporte.Edad = " ";
                    if (Imputado.NACIMIENTO_FECHA != null)
                    {
                        reporte.Edad = string.Format("{0} AÑOS", fechas.CalculaEdad(SelectIngreso.IMPUTADO.NACIMIENTO_FECHA));
                    }
                    //reporte.TiempoBC = (Imputado.RESIDENCIA_ANIOS != null ? string.Format("{0} AÑOS",Imputado.RESIDENCIA_ANIOS) : string.Empty) + (Imputado.RESIDENCIA_MESES != null ? string.Format(" {0} MESES",Imputado.RESIDENCIA_MESES) : string.Empty);
                    reporte.TiempoBC = (SelectIngreso.RESIDENCIA_ANIOS != null ? string.Format("{0} AÑOS", SelectIngreso.RESIDENCIA_ANIOS) : string.Empty) + (SelectIngreso.RESIDENCIAS_MESES != null ? string.Format(" {0} MESES", SelectIngreso.RESIDENCIAS_MESES) : string.Empty);
                    //reporte.Telefono = Imputado.TELEFONO != null ? Imputado.TELEFONO.ToString() : " ";
                    reporte.Telefono = SelectIngreso.TELEFONO != null?SelectIngreso.TELEFONO.ToString() : " ";

                    //reporte.Ocupacion = Imputado.OCUPACION != null ? Imputado.OCUPACION.DESCR : " ";
                    reporte.Ocupacion = SelectIngreso.OCUPACION != null ? SelectIngreso.OCUPACION.DESCR : " ";
                    //reporte.NombreMadre = string.Format("{0} {1} {2} {3}", Imputado.NOMBRE_MADRE, Imputado.PATERNO_MADRE, Imputado.MATERNO_MADRE, Imputado.MADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);
                    //reporte.NombrePadre = string.Format("{0} {1} {2} {3}", Imputado.NOMBRE_PADRE, Imputado.PATERNO_PADRE, Imputado.MATERNO_PADRE, Imputado.PADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);
                    reporte.NombreMadre = string.Format("{0} {1} {2} {3}",
                                                        Imputado.NOMBRE_MADRE.Trim(),
                                                        !string.IsNullOrEmpty(Imputado.PATERNO_MADRE) ? Imputado.PATERNO_MADRE.Trim() : string.Empty,
                                                        !string.IsNullOrEmpty(Imputado.MATERNO_MADRE) ? Imputado.MATERNO_MADRE.Trim() : string.Empty,
                                                        SelectIngreso.MADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);
                    reporte.NombrePadre = string.Format("{0} {1} {2} {3}",
                                                        Imputado.NOMBRE_PADRE.Trim(),
                                                        !string.IsNullOrEmpty(Imputado.PATERNO_PADRE) ? Imputado.PATERNO_PADRE.Trim() : string.Empty,
                                                        !string.IsNullOrEmpty(Imputado.MATERNO_PADRE) ? Imputado.MATERNO_PADRE.Trim() : string.Empty,
                                                        SelectIngreso.PADRE_FINADO.Equals("S") ? "FINADO" : string.Empty);
                    reporte.DomicilioPadres = " ";

                    var diccionario = new Dictionary <string, string>();
                    diccionario.Add("<<nombre>>", reporte.Nombre);
                    diccionario.Add("<<alias>>", reporte.Alias);
                    diccionario.Add("<<apodo>>", reporte.Apodo);
                    diccionario.Add("<<estadoCivil>>", reporte.EstadoCivil);
                    diccionario.Add("<<edad>>", reporte.Edad);
                    diccionario.Add("<<conyugue>>", reporte.Conyugue);
                    diccionario.Add("<<originario>>", reporte.Originario);
                    diccionario.Add("<<fecNacimiento>>", reporte.FecNacimiento);
                    diccionario.Add("<<escolaridad>>", reporte.Escolaridad);
                    diccionario.Add("<<domicilioActual>>", reporte.DomicilioActual);
                    diccionario.Add("<<tiempoRadicacion>>", reporte.TiempoBC);
                    diccionario.Add("<<telefono>>", reporte.Telefono);
                    diccionario.Add("<<ocupacion>>", reporte.Ocupacion);
                    diccionario.Add("<<nombreMadre>>", reporte.NombreMadre);
                    diccionario.Add("<<nombrePadre>>", reporte.NombrePadre);
                    diccionario.Add("<<domicilioPadres>>", reporte.DomicilioPadres);
                    diccionario.Add("<<centro>>", centro.DESCR.Trim());

                    var documento = new cImputadoTipoDocumento().Obtener((short)enumTipoDocumentoImputado.SALA_CABOS);

                    var contenido = new cWord().FillFieldsDocx(documento.DOCUMENTO, diccionario);
                    #endregion
                    GuardarDocumento(contenido);
                    SelectedImputadoDocumento = (new cImputadoDocumento()).Obtener(SelectIngreso.ID_CENTRO, SelectIngreso.ID_ANIO, SelectIngreso.ID_IMPUTADO, SelectIngreso.ID_INGRESO, (short)enumTipoDocumentoImputado.SALA_CABOS);
                }
                #region comentado
                //if (docto != null)
                //    if (docto.Count > 0)
                //        SelectedImputadoDocumento = docto[0];

                //if (reporte != null)
                //{



                //Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
                //Document wordDoc = new Document();
                //var tmpFile = Path.GetTempFileName();
                //var tmpFileStream = File.OpenWrite(tmpFile);
                //tmpFileStream.Write(SelectedImputadoDocumento.DOCUMENTO, 0, SelectedImputadoDocumento.DOCUMENTO.Length);
                //tmpFileStream.Close();
                //wordDoc = wordApp.Documents.Add(tmpFile);
                //foreach (Field myMergeField in wordDoc.Fields)
                //{
                //    Range rngFieldCode = myMergeField.Code;
                //    String fieldText = rngFieldCode.Text;
                //    // ONLY GETTING THE MAILMERGE FIELDS
                //    if (fieldText.StartsWith(" MERGEFIELD"))
                //    {
                //        Int32 endMerge = fieldText.IndexOf("\\");
                //        Int32 fieldNameLength = fieldText.Length - endMerge;
                //        String fieldName = fieldText.Substring(11, endMerge - 11);
                //        fieldName = fieldName.Trim();

                //        switch (fieldName)
                //        {
                //            case "nombre":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Nombre);
                //                break;
                //            case "alias":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Alias);
                //                break;
                //            case "apodo":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Apodo);
                //                break;
                //            case "estadoCivil":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.EstadoCivil);
                //                break;
                //            case "edad":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Edad);
                //                break;
                //            case "conyugue":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Conyugue);
                //                break;
                //            case "originario":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Originario);
                //                break;
                //            case "fecNacimiento":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.FecNacimiento);
                //                break;
                //            case "escolaridad":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Escolaridad);
                //                break;
                //            case "domicilioActual":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.DomicilioActual);
                //                break;
                //            case "tiempoRadicacion":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.TiempoBC);
                //                break;
                //            case "telefono":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Telefono);
                //                break;
                //            case "ocupacion":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.Ocupacion);
                //                break;
                //            case "nombreMadre":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.NombreMadre);
                //                break;
                //            case "nombrePadre":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.NombrePadre);
                //                break;
                //            case "domicilioPadres":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(reporte.DomicilioPadres);
                //                break;
                //            case "centro":
                //                myMergeField.Select();
                //                wordApp.Selection.TypeText(centro.DESCR.Trim());
                //                break;
                //        }
                //    }
                //}
                //wordDoc.SaveAs(tmpFile, WdSaveFormat.wdFormatDocument97);
                //wordDoc.Close();
                //byte[] bytes = System.IO.File.ReadAllBytes(tmpFile);
                #endregion
                var v = new EditorView(SelectedImputadoDocumento, SelectedImputadoDocumento.DOCUMENTO);
                PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.OSCURECER_FONDO);
                v.Owner   = PopUpsViewModels.MainWindow;
                v.Closed += (s, e) => { PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.OSCURECER_FONDO); };
                v.Show();
                //}
            }
        }
Exemple #7
0
        private async Task CargarReporte()
        {
            await StaticSourcesViewModel.CargarDatosMetodoAsync(() => {
                var _reporte = new cHojaReferenciaMedica();
                StringBuilder _str_builder = new StringBuilder();

                if (selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.Any())
                {
                    foreach (var item in Enum.GetValues(typeof(eFamiliares)).Cast <eFamiliares>())
                    {
                        var _familiar = new cTipoReferencia().Obtener((short)item).FirstOrDefault();
                        if (_familiar != null)
                        {
                            if (_str_builder.Length != 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append(new cTipoReferencia().Obtener((short)item).FirstOrDefault().DESCR.Trim());
                            _str_builder.Append(":");
                            if (selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().HISTORIA_CLINICA_FAMILIAR.Any(a => a.ID_TIPO_REFERENCIA == _familiar.ID_TIPO_REFERENCIA))
                            {
                                var _antecedente_heredo_fam = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().HISTORIA_CLINICA_FAMILIAR.First(a => a.ID_TIPO_REFERENCIA == _familiar.ID_TIPO_REFERENCIA);
                                if ((!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_ALERGIAS) && _antecedente_heredo_fam.AHF_ALERGIAS != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_CA) && _antecedente_heredo_fam.AHF_CA != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_CARDIACOS) && _antecedente_heredo_fam.AHF_CARDIACOS != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_DIABETES) && _antecedente_heredo_fam.AHF_DIABETES != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_HIPERTENSIVO) && _antecedente_heredo_fam.AHF_HIPERTENSIVO != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_MENTALES) && _antecedente_heredo_fam.AHF_MENTALES != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_TB) && _antecedente_heredo_fam.AHF_TB != "N") ||
                                    (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_EPILEPSIA) && _antecedente_heredo_fam.AHF_EPILEPSIA != "N"))
                                {
                                    var _subsecuente = false;
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_ALERGIAS) && _antecedente_heredo_fam.AHF_ALERGIAS != "N")
                                    {
                                        _str_builder.Append("ALERGIAS");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_CA) && _antecedente_heredo_fam.AHF_CA != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("CA");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_CARDIACOS) && _antecedente_heredo_fam.AHF_CARDIACOS != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("CARDIACOS");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_DIABETES) && _antecedente_heredo_fam.AHF_DIABETES != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("DIABETES");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_HIPERTENSIVO) && _antecedente_heredo_fam.AHF_HIPERTENSIVO != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("HIPERTENSIVO");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_MENTALES) && _antecedente_heredo_fam.AHF_MENTALES != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("MENTALES");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_TB) && _antecedente_heredo_fam.AHF_TB != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("T.B.");
                                        _subsecuente = true;
                                    }
                                    if (!string.IsNullOrWhiteSpace(_antecedente_heredo_fam.AHF_EPILEPSIA) && _antecedente_heredo_fam.AHF_EPILEPSIA != "N")
                                    {
                                        if (_subsecuente)
                                        {
                                            _str_builder.Append(", ");
                                        }
                                        _str_builder.Append("EPILEPSIA");
                                        _subsecuente = true;
                                    }
                                }
                                else
                                {
                                    _str_builder.Append("NINGUNO");
                                }
                            }
                            else
                            {
                                _str_builder.Append("NINGUNO");
                            }
                        }
                    }
                    _reporte.ANT_HEREDO_FAMILIARES = _str_builder.ToString();
                    _str_builder.Clear();
                    if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_NACIMIENTO) ||
                        !string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALIMENTACION) ||
                        !string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_HABITACION) ||
                        (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TABAQUISMO) && selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TABAQUISMO == "S") ||
                        (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALCOHOLISMO) && selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALCOHOLISMO == "S") ||
                        (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TOXICOMANIAS) && selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TOXICOMANIAS == "S"))
                    {
                        if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_NACIMIENTO))
                        {
                            _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_NACIMIENTO);
                        }
                        if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALIMENTACION))
                        {
                            if (_str_builder.Length != 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALIMENTACION);
                        }
                        if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_HABITACION))
                        {
                            if (_str_builder.Length != 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_HABITACION);
                        }
                        if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TABAQUISMO) && selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TABAQUISMO == "S")
                        {
                            if (_str_builder.Length != 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append("TABAQUISMO: SÍ");
                            if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TABAQUISMO_OBSERV))
                            {
                                _str_builder.Append(", ");
                                _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TABAQUISMO_OBSERV);
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALCOHOLISMO) && selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALCOHOLISMO == "S")
                        {
                            if (_str_builder.Length != 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append("ALCOHOLISMO: SÍ");
                            if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALCOHOLISMO_OBSERV))
                            {
                                _str_builder.Append(", ");
                                _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_ALCOHOLISMO_OBSERV);
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TOXICOMANIAS) && selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TOXICOMANIAS == "S")
                        {
                            if (_str_builder.Length != 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append("TOXICOMANÍAS: SÍ");
                            if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TOXICOMANIAS))
                            {
                                _str_builder.Append(", ");
                                _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().APNP_TOXICOMANIAS);
                            }
                        }
                    }
                    else
                    {
                        _str_builder.Append("NINGUNO");
                    }
                    _reporte.ANT_PERSONALES_NO_PAT = _str_builder.ToString();
                    _str_builder.Clear();
                    if (selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().HISTORIA_CLINICA_PATOLOGICOS.Any())
                    {
                        foreach (var item in selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.HISTORIA_CLINICA.First().HISTORIA_CLINICA_PATOLOGICOS)
                        {
                            if (_str_builder.Length > 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append(item.PATOLOGICO_CAT.DESCR);
                            if (!string.IsNullOrWhiteSpace(item.OBSERVACIONES))
                            {
                                _str_builder.Append(", ");
                                _str_builder.Append(item.OBSERVACIONES);
                            }
                        }
                    }
                    else
                    {
                        _str_builder.Append("NINGUNO");
                    }
                    _reporte.ANT_PERSONALES_PAT = _str_builder.ToString();
                }
                else
                {
                    _reporte.ANT_HEREDO_FAMILIARES = "DESCONOCIDOS";
                    _reporte.ANT_PERSONALES_NO_PAT = "DESCONOCIDOS";
                    _reporte.ANT_PERSONALES_PAT    = "DESCONOCIDOS";
                }
                if (selectedInterconsultaBusqueda.ID_ESPECIALIDAD != null)
                {
                    _reporte.CAUSA_SOLICITUD = selectedInterconsultaBusqueda.ESPECIALIDAD.DESCR;
                }
                else
                {
                    _str_builder.Clear();
                    if (selectedInterconsultaBusqueda.SERVICIO_AUX_INTERCONSULTA.Any())
                    {
                        foreach (var item in selectedInterconsultaBusqueda.SERVICIO_AUX_INTERCONSULTA)
                        {
                            if (_str_builder.Length > 0)
                            {
                                _str_builder.Append(", ");
                            }
                            _str_builder.Append(item.SERVICIO_AUX_DIAG_TRAT.DESCR);
                        }
                    }
                    _reporte.CAUSA_SOLICITUD = _str_builder.ToString();
                }
                _reporte.CIUDAD  = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.CENTRO.DESCR.Trim();
                _reporte.DESTINO = selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA != null ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.Any() ? !string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().HOSPITAL_OTRO) ?
                                   selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().HOSPITAL_OTRO.Trim() : selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().HOSPITAL.DESCR.Trim() : "" : "";
                _reporte.EDAD                  = new Fechas().CalculaEdad(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.NACIMIENTO_FECHA);
                _reporte.ESTADO                = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.CENTRO.MUNICIPIO.ENTIDAD.DESCR;
                _reporte.FECHA_NAC             = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.NACIMIENTO_FECHA.Value.ToString("dd/MM/yyyy");
                _reporte.FECHA_REGISTRO_LETRA  = Fechas.fechaLetra(selectedInterconsultaBusqueda.REGISTRO_FEC, false);
                _reporte.FOLIO                 = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.ID_ANIO.ToString() + "/" + selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.ID_IMPUTADO.ToString();
                _reporte.FREC_CARDIACA         = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.NOTA_SIGNOS_VITALES.FRECUENCIA_CARDIAC;
                _reporte.FREC_RESPIRATORIA     = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.NOTA_SIGNOS_VITALES.FRECUENCIA_RESPIRA;
                _reporte.IMPRESION_DIAGNOSTICA = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.PRONOSTICO.DESCR;
                _str_builder.Clear();
                _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE.Trim());
                if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO))
                {
                    _str_builder.Append(" ");
                    _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO.Trim());
                }
                if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO))
                {
                    _str_builder.Append(" ");
                    _str_builder.Append(selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO.Trim());
                }
                _reporte.NOMBRE        = _str_builder.ToString();
                _reporte.OBSERVACIONES = selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA != null ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.Any() ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().OBSERV : string.Empty : string.Empty;
                _reporte.PESO          = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.NOTA_SIGNOS_VITALES.PESO;
                _reporte.PRIMERA       = selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA != null ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.Any() ?selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().ID_TIPO_CITA == (short)enumCita_Tipo.PRIMERA ? "X" : "" : "" : "";
                _reporte.SUBSECUENTE   = selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA != null ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.Any() ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().ID_TIPO_CITA == (short)enumCita_Tipo.SUBSECUENTE ? "X" : "" : "" : "";
                if (selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.NOTA_MEDICA_ENFERMEDAD.Any())
                {
                    _str_builder.Clear();
                    foreach (var item in selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.NOTA_MEDICA_ENFERMEDAD)
                    {
                        if (_str_builder.Length > 0)
                        {
                            _str_builder.Append(", ");
                        }
                        _str_builder.Append(item.ENFERMEDAD.NOMBRE.Trim());
                    }
                    _reporte.RESUMEN_CLINICO = _str_builder.ToString();
                }
                _reporte.SEXO             = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.IMPUTADO.SEXO == "M" ? "MASCULINO" : "FEMENINO";
                _reporte.TENSION_ARTERIAL = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.NOTA_SIGNOS_VITALES.TENSION_ARTERIAL.Trim();
                _reporte.TIPO_ATENCION    = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.ATENCION_SERVICIO.ATENCION_TIPO.DESCR;
                _reporte.CENTRO           = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.INGRESO.CENTRO.DESCR.Trim();
                _reporte.EXP_HGT          = selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA != null ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.Any() ? selectedInterconsultaBusqueda.HOJA_REFERENCIA_MEDICA.First().EXP_HGT : "" : "";
                _reporte.TALLA            = selectedInterconsultaBusqueda.CANALIZACION.NOTA_MEDICA.ATENCION_MEDICA.NOTA_SIGNOS_VITALES.TALLA;
                _str_builder.Clear();
                _str_builder.Append(selectedInterconsultaBusqueda.USUARIO.EMPLEADO.PERSONA.NOMBRE.Trim());
                if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.USUARIO.EMPLEADO.PERSONA.PATERNO.Trim()))
                {
                    _str_builder.Append(" ");
                    _str_builder.Append(selectedInterconsultaBusqueda.USUARIO.EMPLEADO.PERSONA.PATERNO.Trim());
                }
                if (!string.IsNullOrWhiteSpace(selectedInterconsultaBusqueda.USUARIO.EMPLEADO.PERSONA.MATERNO.Trim()))
                {
                    _str_builder.Append(" ");
                    _str_builder.Append(selectedInterconsultaBusqueda.USUARIO.EMPLEADO.PERSONA.MATERNO.Trim());
                }
                _reporte.NOMBRE_MEDICO = _str_builder.ToString();
                diccionario_reporte    = new Dictionary <string, string>();
                diccionario_reporte.Add("<<CENTRO>>", _reporte.CENTRO);
                diccionario_reporte.Add("<<NOMBRE>>", _reporte.NOMBRE);
                diccionario_reporte.Add("<<EDAD>>", _reporte.EDAD.ToString());
                diccionario_reporte.Add("<<FOLIO>>", _reporte.FOLIO);
                diccionario_reporte.Add("<<SEXO>>", _reporte.SEXO);
                diccionario_reporte.Add("<<FECHA_NAC>>", _reporte.FECHA_NAC);
                diccionario_reporte.Add("<<DESTINO>>", _reporte.DESTINO);
                diccionario_reporte.Add("<<TIPO_ATENCION>>", _reporte.TIPO_ATENCION);
                diccionario_reporte.Add("<<EXP_HGT>>", _reporte.EXP_HGT);
                diccionario_reporte.Add("<<CAUSA_SOLICITUD>>", _reporte.CAUSA_SOLICITUD);
                diccionario_reporte.Add("<<ANT_HEREDO_FAMILIARES>>", _reporte.ANT_HEREDO_FAMILIARES);
                diccionario_reporte.Add("<<ANT_PERSONALES_NO_PAT>>", _reporte.ANT_PERSONALES_NO_PAT);
                diccionario_reporte.Add("<<ANT_PERSONALES_PAT>>", _reporte.ANT_PERSONALES_PAT);
                diccionario_reporte.Add("<<PRIMERA>>", _reporte.PRIMERA);
                diccionario_reporte.Add("<<SUBSECUENTE>>", _reporte.SUBSECUENTE);
                diccionario_reporte.Add("<<TA>>", _reporte.TENSION_ARTERIAL);
                diccionario_reporte.Add("<<FC>>", _reporte.FREC_CARDIACA);
                diccionario_reporte.Add("<<FR>>", _reporte.FREC_RESPIRATORIA);
                diccionario_reporte.Add("<<PESO>>", _reporte.PESO);
                diccionario_reporte.Add("<<TALLA>>", _reporte.TALLA);
                diccionario_reporte.Add("<<RESUMEN_CLINICO>>", _reporte.RESUMEN_CLINICO);
                diccionario_reporte.Add("<<IMPRESION_DIAGNOSTICA>>", _reporte.IMPRESION_DIAGNOSTICA);
                diccionario_reporte.Add("<<OBSERVACIONES>>", _reporte.OBSERVACIONES);
                diccionario_reporte.Add("<<CIUDAD>>", _reporte.CIUDAD);
                diccionario_reporte.Add("<<ESTADO>>", _reporte.ESTADO);
                diccionario_reporte.Add("<<FECHA_REGISTRO_LETRA>>", _reporte.FECHA_REGISTRO_LETRA);
                diccionario_reporte.Add("<<NOMBRE_MEDICO>>", _reporte.NOMBRE_MEDICO);

                documento = new cImputadoTipoDocumento().Obtener((short)enumTipoDocumentoImputado.HOJA_REFERENCIA_MEDICA);
            });
        }