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      = "Bitácora de Recepción de Visita Legal",
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Centro      = centro.DESCR.Trim().ToUpper(),
                });


                var lstIngresos = new List <cBitacoraIngresosVisitaLegal>();
                var ingresos    = new cAduanaIngreso().ObtenerTodosPorTipoVisita(FFechaInicio.Value.Date, FFechaFin.Value.Date, GlobalVar.gCentro, (short)enumTipoPersona.PERSONA_ABOGADO);
                if (ingresos != null)
                {
                    foreach (var ai in ingresos)
                    {
                        var obj = new cBitacoraIngresosVisitaLegal();
                        obj.FechaHoraEntrada = string.Format("{0:dd/MM/yyyy hh:mm tt}", ai.ADUANA.ENTRADA_FEC);
                        obj.FechaHoraSalida  = string.Format("{0:dd/MM/yyyy hh:mm tt}", ai.ADUANA.SALIDA_FEC);
                        obj.Expediente       = string.Format("{0}/{1}", ai.ID_ANIO, ai.ID_IMPUTADO);
                        obj.Interno          = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(ai.INGRESO.IMPUTADO.NOMBRE) ? ai.INGRESO.IMPUTADO.NOMBRE.Trim() : string.Empty, !string.IsNullOrEmpty(ai.INGRESO.IMPUTADO.PATERNO) ? ai.INGRESO.IMPUTADO.PATERNO.Trim() : string.Empty, !string.IsNullOrEmpty(ai.INGRESO.IMPUTADO.MATERNO) ? ai.INGRESO.IMPUTADO.MATERNO.Trim() : string.Empty);
                        obj.Abogado          = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(ai.ADUANA.PERSONA.NOMBRE) ? ai.ADUANA.PERSONA.NOMBRE.Trim() : string.Empty, !string.IsNullOrEmpty(ai.ADUANA.PERSONA.PATERNO) ? ai.ADUANA.PERSONA.PATERNO.Trim() : string.Empty, !string.IsNullOrEmpty(ai.ADUANA.PERSONA.MATERNO) ? ai.ADUANA.PERSONA.MATERNO.Trim() : string.Empty);
                        lstIngresos.Add(obj);
                    }
                }

                //ARMAMOS EL REPORTE
                Reporte.LocalReport.ReportPath = "Reportes/rBitacoraIngresoVisitaLegal.rdlc";
                Reporte.LocalReport.DataSources.Clear();

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

                Microsoft.Reporting.WinForms.ReportDataSource rds2 = new Microsoft.Reporting.WinForms.ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds2);
                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.RefreshReport();
                    ReportViewerVisible = Visibility.Visible;
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al generar reporte", ex);
            }
        }
        public void RevertirUltimoMovimiento()
        {
            var aduana_ingreso          = new cAduanaIngreso();
            var ingreso                 = new cIngreso().ObtenerUltimoIngreso(SelectedImputado.ID_CENTRO, SelectedImputado.ID_ANIO, SelectedImputado.ID_IMPUTADO);
            var consulta_aduana_ingreso = aduana_ingreso.ObtenerAduanaIngresoConNotificacion(ingreso.ID_CENTRO, ingreso.ID_ANIO, ingreso.ID_IMPUTADO, ingreso.ID_INGRESO, Fechas.GetFechaDateServer).FirstOrDefault();
            var imputado_incidente      = new cImputado().ObtenerPorNIP(IncidenciaNIP);
            var ingreso_incidente       = imputado_incidente.INGRESO.OrderByDescending(o => o.ID_INGRESO).FirstOrDefault().ID_INGRESO;
            var LOCUTORIOS              = Parametro.UBICACION_VISITA_ACTUARIO;

            new cAduanaIngreso().CambiarEstadoVisitaInterno(new INGRESO_UBICACION()
            {
                ID_CENTRO      = ingreso.ID_CENTRO,
                ID_ANIO        = ingreso.ID_ANIO,
                ID_IMPUTADO    = ingreso.ID_IMPUTADO,
                ID_INGRESO     = ingreso.ID_INGRESO,
                ID_CONSEC      = new cIngresoUbicacion().ObtenerConsecutivo <int>(ingreso.ID_CENTRO, ingreso.ID_ANIO, ingreso.ID_IMPUTADO, ingreso.ID_INGRESO),
                ID_AREA        = LOCUTORIOS,
                MOVIMIENTO_FEC = Fechas.GetFechaDateServer,
                ACTIVIDAD      = VISITA_LEGAL,
                ESTATUS        = (short)enumUbicacion.EN_TRANSITO
            }, new ADUANA_INGRESO()
            {
                ID_ADUANA          = consulta_aduana_ingreso.ID_ADUANA,
                ID_CENTRO          = consulta_aduana_ingreso.ID_CENTRO,
                ID_ANIO            = consulta_aduana_ingreso.ID_ANIO,
                ID_IMPUTADO        = consulta_aduana_ingreso.ID_IMPUTADO,
                ID_INGRESO         = consulta_aduana_ingreso.ID_INGRESO,
                INTERNO_NOTIFICADO = INTERNO_NO_NOTIFICADO
            }, new INCIDENTE()
            {
                ID_CENTRO         = imputado_incidente.ID_CENTRO,
                ID_ANIO           = imputado_incidente.ID_ANIO,
                ID_IMPUTADO       = imputado_incidente.ID_IMPUTADO,
                ID_INGRESO        = ingreso_incidente,
                ID_INCIDENTE      = new cIncidente().ObtenerConsecutivo <short>(imputado_incidente.ID_CENTRO, imputado_incidente.ID_ANIO, imputado_incidente.ID_IMPUTADO, ingreso_incidente),
                ID_INCIDENTE_TIPO = (short)enumIncidente.NORMAL,
                REGISTRO_FEC      = Fechas.GetFechaDateServer,
                MOTIVO            = TextoIncidenciaFalsoPositivo
            });
        }
Example #3
0
        public void ObtenerVisitas()
        {
            var lista_visitas = new List <InternoVisitaAbogado>();
            var FechaServer   = Fechas.GetFechaDateServer.Date;
            var visitas       = new cAduanaIngreso().ObtenerVisitasAbogados(FechaServer).ToList();

            foreach (var visita in visitas)
            {
                lista_visitas.Add(new InternoVisitaAbogado()
                {
                    ID_CENTRO        = visita.ID_CENTRO,
                    ID_ANIO          = visita.ID_ANIO,
                    ID_IMPUTADO      = (short)visita.ID_IMPUTADO,
                    PATERNO          = visita.INGRESO.IMPUTADO.PATERNO.TrimEnd(),
                    MATERNO          = visita.INGRESO.IMPUTADO.MATERNO.TrimEnd(),
                    NOMBRE           = visita.INGRESO.IMPUTADO.NOMBRE.TrimEnd(),
                    TIPO_VISITANTE   = (short)visita.ADUANA.ID_TIPO_PERSONA,
                    NOMBRE_VISITANTE = string.Format("{1} {2} {0}", visita.ADUANA.PERSONA.NOMBRE.TrimEnd(), visita.ADUANA.PERSONA.PATERNO.TrimEnd(), visita.ADUANA.PERSONA.MATERNO.TrimEnd())
                });
            }
            ListaInternoAbogado = lista_visitas;
        }
        public void CompararHuellaImputado()
        {
            ImagenImputado   = new Imagenes().getImagenPerson();
            ImputadoEntrante = new List <InternoVisitaLegal>();
            var bytesHuella = FingerPrintData != null?FeatureExtraction.CreateFmdFromFid(FingerPrintData, Constants.Formats.Fmd.ANSI).Data.Bytes : null;

            var MensajeResultado = enumMensajeResultadoComparacion.HUELLA_VACIA;

            if (bytesHuella == null)
            {
                Application.Current.Dispatcher.Invoke((Action)(delegate()
                {
                    CambiarMensaje(MensajeResultado);
                }));
            }
            else
            {
                MensajeResultado = enumMensajeResultadoComparacion.PROCESANDO;
                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    CambiarMensaje(MensajeResultado);
                }));

                var doIdentify = Comparison.Identify(Importer.ImportFmd(bytesHuella, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data, 0, HuellasImputadosVisitas.Where(w => w.FMD != null && w.tipo_biometrico == SelectedFinger).Select(s => s.FMD), (0x7fffffff / 100000), 10);
                var result     = new List <object>();

                if (doIdentify.ResultCode != Constants.ResultCode.DP_SUCCESS)
                {
                    if (HuellasImputadosVisitas.Count == 0)
                    {
                        MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                    }
                    else
                    {
                        switch (doIdentify.ResultCode)
                        {
                        case Constants.ResultCode.DP_DEVICE_BUSY:
                            break;

                        case Constants.ResultCode.DP_DEVICE_FAILURE:
                            break;

                        case Constants.ResultCode.DP_ENROLLMENT_INVALID_SET:
                            break;

                        case Constants.ResultCode.DP_ENROLLMENT_IN_PROGRESS:
                            break;

                        case Constants.ResultCode.DP_ENROLLMENT_NOT_READY:
                            break;

                        case Constants.ResultCode.DP_ENROLLMENT_NOT_STARTED:
                            break;

                        case Constants.ResultCode.DP_FAILURE:
                            break;

                        case Constants.ResultCode.DP_INVALID_DEVICE:
                            break;

                        case Constants.ResultCode.DP_INVALID_FID:
                            break;

                        case Constants.ResultCode.DP_INVALID_FMD:
                            break;

                        case Constants.ResultCode.DP_INVALID_PARAMETER:
                            break;

                        case Constants.ResultCode.DP_MORE_DATA:
                            break;

                        case Constants.ResultCode.DP_NOT_IMPLEMENTED:
                            break;

                        case Constants.ResultCode.DP_NO_DATA:
                            break;

                        case Constants.ResultCode.DP_TOO_SMALL_AREA:
                            break;

                        case Constants.ResultCode.DP_VERSION_INCOMPATIBILITY:
                            break;

                        default:
                            break;
                        }
                    }
                }
                else
                {
                    if (doIdentify.Indexes.Count() > 0)
                    {
                        foreach (var resultado in doIdentify.Indexes.ToList())
                        {
                            result.Add(HuellasImputadosVisitas[resultado.FirstOrDefault()].IMPUTADO);
                        }
                    }
                    if (result.Count > 0)
                    {
                        if (result.Count == 1)
                        {
                            try
                            {
                                var   imputado         = ((cHuellasImputado)result.FirstOrDefault());
                                var   ultimo_ingreso   = new cIngreso().ObtenerUltimoIngreso(imputado.ID_CENTRO, imputado.ID_ANIO, imputado.ID_IMPUTADO);
                                var   ultima_ubicacion = new cIngresoUbicacion().ObtenerUltimaUbicacion(imputado.ID_ANIO, imputado.ID_CENTRO, (int)imputado.ID_IMPUTADO, ultimo_ingreso.ID_INGRESO);
                                var   LOCUTORIOS       = Parametro.UBICACION_VISITA_ACTUARIO;
                                var   SALA_ABOGADOS    = Parametro.UBICACION_VISITA_ABOGADO;
                                short SIN_AREA         = 0;
                                if (ultima_ubicacion != null)
                                {
                                    //if (ultima_ubicacion.ESTATUS == (short)enumUbicacion.EN_TRANSITO && (ultima_ubicacion.ID_AREA == LOCUTORIOS || ultima_ubicacion.ID_AREA == SALA_ABOGADOS))
                                    //{
                                    var aduana_ingreso          = new cAduanaIngreso();
                                    var consulta_aduana_ingreso = aduana_ingreso.ObtenerAduanaIngresoSinNotificacion(imputado.ID_CENTRO, imputado.ID_ANIO, imputado.ID_IMPUTADO, ultimo_ingreso.ID_INGRESO, Fechas.GetFechaDateServer).FirstOrDefault();
                                    if (consulta_aduana_ingreso != null)
                                    {
                                        new cAduanaIngreso().CambiarEstadoVisitaInterno(new INGRESO_UBICACION()
                                        {
                                            ID_CENTRO      = consulta_aduana_ingreso.ID_CENTRO,
                                            ID_ANIO        = consulta_aduana_ingreso.ID_ANIO,
                                            ID_IMPUTADO    = consulta_aduana_ingreso.ID_IMPUTADO,
                                            ID_INGRESO     = consulta_aduana_ingreso.ID_INGRESO,
                                            ID_CONSEC      = new cIngresoUbicacion().ObtenerConsecutivo <int>(imputado.ID_CENTRO, imputado.ID_ANIO, imputado.ID_IMPUTADO, ultimo_ingreso.ID_INGRESO),
                                            ID_AREA        = consulta_aduana_ingreso.ADUANA.ID_AREA != null ? (consulta_aduana_ingreso.ADUANA.ID_AREA == SALA_ABOGADOS ? SALA_ABOGADOS : LOCUTORIOS) : SIN_AREA,//ultima_ubicacion.ID_AREA == LOCUTORIOS ? LOCUTORIOS : SALA_ABOGADOS,
                                            MOVIMIENTO_FEC = Fechas.GetFechaDateServer,
                                            ACTIVIDAD      = VISITA_LEGAL,
                                            ESTATUS        = (short)enumUbicacion.ACTIVIDAD
                                        }, new ADUANA_INGRESO()
                                        {
                                            ID_ADUANA          = consulta_aduana_ingreso.ID_ADUANA,
                                            ID_CENTRO          = consulta_aduana_ingreso.ID_CENTRO,
                                            ID_ANIO            = consulta_aduana_ingreso.ID_ANIO,
                                            ID_IMPUTADO        = consulta_aduana_ingreso.ID_IMPUTADO,
                                            ID_INGRESO         = consulta_aduana_ingreso.ID_INGRESO,
                                            INTERNO_NOTIFICADO = INTERNO_NOTIFICADO
                                        });
                                        var imputado_entrante = new List <InternoVisitaLegal>();
                                        imputado_entrante.Add(new InternoVisitaLegal()
                                        {
                                            ID_CENTRO   = imputado.ID_CENTRO,
                                            ID_ANIO     = imputado.ID_ANIO,
                                            ID_IMPUTADO = (short)imputado.ID_IMPUTADO,
                                            PATERNO     = ultimo_ingreso.IMPUTADO.PATERNO.TrimEnd(),
                                            MATERNO     = ultimo_ingreso.IMPUTADO.MATERNO.TrimEnd(),
                                            NOMBRE      = ultimo_ingreso.IMPUTADO.NOMBRE.TrimEnd(),
                                            PERMITIR    = true,
                                            HABILITAR   = true
                                        });
                                        ImputadoEntrante = imputado_entrante;
                                        SelectedImputado = ImputadoEntrante.FirstOrDefault();
                                        var huella = HuellasImputadosVisitas.Where(w =>
                                                                                   w.IMPUTADO.ID_CENTRO == SelectedImputado.ID_CENTRO &&
                                                                                   w.IMPUTADO.ID_ANIO == SelectedImputado.ID_ANIO &&
                                                                                   w.IMPUTADO.ID_IMPUTADO == SelectedImputado.ID_IMPUTADO).FirstOrDefault();
                                        HuellasImputadosVisitas.Remove(huella);
                                        var placeholder      = new Imagenes().getImagenPerson();
                                        var foto_seguimiento = consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO != null?consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO.Where(w =>
                                                                                                                                                                                   w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO).FirstOrDefault() : null;

                                        var foto_registro = consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO != null?consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO.Where(w =>
                                                                                                                                                                                w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault() : null;

                                        ImagenImputado   = foto_seguimiento != null ? foto_seguimiento.BIOMETRICO : (foto_registro != null ? foto_registro.BIOMETRICO : placeholder);
                                        MensajeResultado = enumMensajeResultadoComparacion.ENCONTRADO;
                                    }
                                    else
                                    {
                                        MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                                    }
                                    //}
                                    //else
                                    //{
                                    //    MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                                    //}
                                }
                                else
                                {
                                    MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                                }
                            }
                            catch (Exception ex)
                            {
                                throw new ApplicationException(ex.Message);
                            }
                        }
                        else
                        {
                            MensajeResultado = enumMensajeResultadoComparacion.COINCIDENCIAS;
                        }
                    }
                    else
                    {
                        MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                    }
                }
            }
            Application.Current.Dispatcher.Invoke((Action)(delegate()
            {
                CambiarMensaje(MensajeResultado);
            }));
        }
        public void ClickSwitch(Object obj)
        {
            switch (obj.ToString())
            {
            case "0":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "0";
                }
                break;

            case "1":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "1";
                }
                break;

            case "2":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "2";
                }
                break;

            case "3":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "3";
                }
                break;

            case "4":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "4";
                }
                break;

            case "5":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "5";
                }
                break;

            case "6":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "6";
                }
                break;

            case "7":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "7";
                }
                break;

            case "8":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "8";
                }
                break;

            case "9":
                if (NIPBuscar.Length < 13)
                {
                    NIPBuscar += "9";
                }
                break;

            case "backspace":
                if (NIPBuscar.Length > 0)
                {
                    NIPBuscar = NIPBuscar.Substring(0, NIPBuscar.Length - 1);
                }
                break;

            case "limpiarNIP":
                NIPBuscar = "";
                break;

            case "onBuscarPorNIP":
                var   imputado         = new cImputado().ObtenerPorNIP(NIPBuscar);
                var   MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                var   LOCUTORIOS       = Parametro.UBICACION_VISITA_ACTUARIO;
                var   SALA_ABOGADOS    = Parametro.UBICACION_VISITA_ABOGADO;
                short SIN_AREA         = 0;
                if (imputado != null)
                {
                    try
                    {
                        var ultimo_ingreso   = new cIngreso().ObtenerUltimoIngreso(imputado.ID_CENTRO, imputado.ID_ANIO, imputado.ID_IMPUTADO);
                        var ultima_ubicacion = new cIngresoUbicacion().ObtenerUltimaUbicacion(imputado.ID_ANIO, imputado.ID_CENTRO, (int)imputado.ID_IMPUTADO, ultimo_ingreso.ID_INGRESO);
                        //if (ultima_ubicacion.ESTATUS == (short)enumUbicacion.EN_TRANSITO && (ultima_ubicacion.ID_AREA == LOCUTORIOS || ultima_ubicacion.ID_AREA == SALA_ABOGADOS))
                        //{
                        var aduana_ingreso          = new cAduanaIngreso();
                        var consulta_aduana_ingreso = aduana_ingreso.ObtenerAduanaIngresoSinNotificacion(imputado.ID_CENTRO, imputado.ID_ANIO, imputado.ID_IMPUTADO, ultimo_ingreso.ID_INGRESO, Fechas.GetFechaDateServer).FirstOrDefault();
                        if (consulta_aduana_ingreso != null && ultimo_ingreso.ID_UB_CENTRO.HasValue && ultimo_ingreso.ID_UB_CENTRO.Value == GlobalVar.gCentro)
                        {
                            new cAduanaIngreso().CambiarEstadoVisitaInterno(new INGRESO_UBICACION()
                            {
                                ID_CENTRO      = consulta_aduana_ingreso.ID_CENTRO,
                                ID_ANIO        = consulta_aduana_ingreso.ID_ANIO,
                                ID_IMPUTADO    = consulta_aduana_ingreso.ID_IMPUTADO,
                                ID_INGRESO     = consulta_aduana_ingreso.ID_INGRESO,
                                ID_CONSEC      = new cIngresoUbicacion().ObtenerConsecutivo <int>(imputado.ID_CENTRO, imputado.ID_ANIO, imputado.ID_IMPUTADO, ultimo_ingreso.ID_INGRESO),
                                ID_AREA        = consulta_aduana_ingreso.ADUANA.ID_AREA != null ? (consulta_aduana_ingreso.ADUANA.ID_AREA == SALA_ABOGADOS ? SALA_ABOGADOS : LOCUTORIOS) : SIN_AREA,//ultima_ubicacion.ID_AREA == LOCUTORIOS ? LOCUTORIOS : SALA_ABOGADOS,
                                MOVIMIENTO_FEC = Fechas.GetFechaDateServer,
                                ACTIVIDAD      = VISITA_LEGAL,
                                ESTATUS        = (short)enumUbicacion.ACTIVIDAD
                            }, new ADUANA_INGRESO()
                            {
                                ID_ADUANA          = consulta_aduana_ingreso.ID_ADUANA,
                                ID_CENTRO          = consulta_aduana_ingreso.ID_CENTRO,
                                ID_ANIO            = consulta_aduana_ingreso.ID_ANIO,
                                ID_IMPUTADO        = consulta_aduana_ingreso.ID_IMPUTADO,
                                ID_INGRESO         = consulta_aduana_ingreso.ID_INGRESO,
                                INTERNO_NOTIFICADO = INTERNO_NOTIFICADO
                            });

                            var imputado_entrante = new List <InternoVisitaLegal>();
                            imputado_entrante.Add(new InternoVisitaLegal()
                            {
                                ID_CENTRO   = imputado.ID_CENTRO,
                                ID_ANIO     = imputado.ID_ANIO,
                                ID_IMPUTADO = (short)imputado.ID_IMPUTADO,
                                PATERNO     = ultimo_ingreso.IMPUTADO.PATERNO.TrimEnd(),
                                MATERNO     = ultimo_ingreso.IMPUTADO.MATERNO.TrimEnd(),
                                NOMBRE      = ultimo_ingreso.IMPUTADO.NOMBRE.TrimEnd(),
                                PERMITIR    = true,
                                HABILITAR   = true
                            });
                            ImputadoEntrante = imputado_entrante;
                            SelectedImputado = ImputadoEntrante.FirstOrDefault();
                            var huella = HuellasImputadosVisitas.Where(w =>
                                                                       w.IMPUTADO.ID_CENTRO == SelectedImputado.ID_CENTRO &&
                                                                       w.IMPUTADO.ID_ANIO == SelectedImputado.ID_ANIO &&
                                                                       w.IMPUTADO.ID_IMPUTADO == SelectedImputado.ID_IMPUTADO).FirstOrDefault();
                            HuellasImputadosVisitas.Remove(huella);
                            var placeholder      = new Imagenes().getImagenPerson();
                            var foto_seguimiento = consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO != null?consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO.Where(w =>
                                                                                                                                                                       w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO).FirstOrDefault() : null;

                            var foto_registro = consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO != null?consulta_aduana_ingreso.INGRESO.INGRESO_BIOMETRICO.Where(w =>
                                                                                                                                                                    w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault() : null;

                            ImagenImputado   = foto_seguimiento != null ? foto_seguimiento.BIOMETRICO : (foto_registro != null ? foto_registro.BIOMETRICO : placeholder);
                            MensajeResultado = enumMensajeResultadoComparacion.ENCONTRADO;
                        }
                        else
                        {
                            MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                        }
                        //}
                        //else
                        //{
                        //    MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                        //}
                        CambiarMensajeNIP(MensajeResultado);
                    }
                    catch (Exception ex)
                    {
                        throw new ApplicationException(ex.Message);
                    }
                }
                else
                {
                    MensajeResultado = enumMensajeResultadoComparacion.NO_ENCONTRADO;
                }
                break;

            case "OpenCloseFlyout":
                if (CapturaNIPVisible)
                {
                    CapturaNIPVisible = false;
                }

                else
                {
                    CapturaNIPVisible = true;
                }
                break;

            case "PermitirEntradaVisita":
                if (!SelectedImputado.PERMITIR)
                {
                    IncidenciaRevertirVisitaLegalVisible = true;
                }
                break;

            case "CapturarIncidenciaRevertirUltimoMovimiento":
                ValidacionNIP();
                if (!base.HasErrors)
                {
                    var imputado_validacion = new cImputado().ObtenerPorNIP(IncidenciaNIP);
                    ValidacionNIPInexistente(imputado_validacion);
                    if (!base.HasErrors)
                    {
                        ValidacionImputadoActivo(imputado_validacion);
                        if (!base.HasErrors)
                        {
                            try
                            {
                                RevertirUltimoMovimiento();
                                var huella = new cIngreso().ObtenerUltimoIngreso(SelectedImputado.ID_CENTRO, SelectedImputado.ID_ANIO, SelectedImputado.ID_IMPUTADO).
                                             IMPUTADO.IMPUTADO_BIOMETRICO.Where(wB =>
                                                                                wB.ID_FORMATO == (short)enumTipoFormato.FMTO_DP && wB.CALIDAD > 0 &&
                                                                                wB.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)SelectedFinger && wB.BIOMETRICO != null).AsEnumerable().Select(s =>
                                                                                                                                                                                               new Imputado_Huella
                                {
                                    IMPUTADO = new cHuellasImputado {
                                        ID_ANIO = s.ID_ANIO, ID_CENTRO = s.ID_CENTRO, ID_IMPUTADO = s.ID_IMPUTADO
                                    },
                                    FMD             = Importer.ImportFmd(s.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data,
                                    tipo_biometrico = (enumTipoBiometrico)s.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO
                                }).FirstOrDefault();
                                if (huella != null)
                                {
                                    HuellasImputadosVisitas.Add(huella);
                                }
                                var imputado_entrante_revertir_ultimo_movimiento = new List <InternoVisitaLegal>();
                                imputado_entrante_revertir_ultimo_movimiento.Add(new InternoVisitaLegal()
                                {
                                    ID_CENTRO   = SelectedImputado.ID_CENTRO,
                                    ID_ANIO     = SelectedImputado.ID_ANIO,
                                    ID_IMPUTADO = SelectedImputado.ID_IMPUTADO,
                                    PATERNO     = SelectedImputado.NOMBRE,
                                    MATERNO     = SelectedImputado.PATERNO,
                                    NOMBRE      = SelectedImputado.MATERNO,
                                    PERMITIR    = false,
                                    HABILITAR   = false
                                });
                                TextoIncidenciaFalsoPositivo         = "SIN OBSERVACIONES";
                                ImputadoEntrante                     = imputado_entrante_revertir_ultimo_movimiento;
                                SelectedImputado                     = ImputadoEntrante.FirstOrDefault();
                                IncidenciaRevertirVisitaLegalVisible = false;
                            }
                            catch (Exception ex)
                            {
                                throw new ApplicationException(ex.Message);
                            }
                        }
                    }
                }


                break;

            case "CapturarIncidenciaRevertirVisitaLegal":
                ValidacionNIP();
                if (!base.HasErrors)
                {
                    var imputado_validacion = new cImputado().ObtenerPorNIP(incidenciaNIP);
                    ValidacionNIPInexistente(imputado_validacion);
                    if (!base.HasErrors)
                    {
                        ValidacionImputadoActivo(imputado_validacion);
                        if (!base.HasErrors)
                        {
                            try
                            {
                                RevertirVisitaLegal();
                                var huella = new cIngreso().ObtenerUltimoIngreso(SelectedImputado.ID_CENTRO, SelectedImputado.ID_ANIO, SelectedImputado.ID_IMPUTADO).
                                             IMPUTADO.IMPUTADO_BIOMETRICO.Where(wB =>
                                                                                wB.ID_FORMATO == (short)enumTipoFormato.FMTO_DP && wB.CALIDAD > 0 &&
                                                                                wB.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)SelectedFinger && wB.BIOMETRICO != null).AsEnumerable().Select(s =>
                                                                                                                                                                                               new Imputado_Huella
                                {
                                    IMPUTADO = new cHuellasImputado {
                                        ID_ANIO = s.ID_ANIO, ID_CENTRO = s.ID_CENTRO, ID_IMPUTADO = s.ID_IMPUTADO
                                    },
                                    FMD             = Importer.ImportFmd(s.BIOMETRICO, Constants.Formats.Fmd.ANSI, Constants.Formats.Fmd.ANSI).Data,
                                    tipo_biometrico = (enumTipoBiometrico)s.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO
                                }).FirstOrDefault();
                                if (huella != null)
                                {
                                    HuellasImputadosVisitas.Add(huella);
                                }
                                TextoIncidenciaFalsoPositivo = "SIN OBSERVACIONES";
                                ImputadoEntrante             = new List <InternoVisitaLegal>();
                                ImagenImputado = new Imagenes().getImagenPerson();
                                IncidenciaRevertirVisitaLegalVisible = false;
                            }
                            catch (Exception ex)
                            {
                                throw new ApplicationException(ex.Message);
                            }
                        }
                    }
                }

                break;

            case "CancelarReversion":
                IncidenciaRevertirVisitaLegalVisible = false;
                break;
            }
        }
        private void GenerarReporteNew()
        {
            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      = "Bitácora de Recepción de Visita Familiar",
                    Logo1       = Parametro.REPORTE_LOGO1,
                    Logo2       = Parametro.REPORTE_LOGO2,
                    Centro      = centro.DESCR.Trim().ToUpper(),
                });
                var lstContenido = new List <cBitacoraVisitaFamiliar>();
                var resultado    = new cAduanaIngreso().ObtenerTodosPorTipoVisita(FFechaInicio.Value.Date, GlobalVar.gCentro, (short)enumTipoPersona.PERSONA_VISITA);
                if (resultado != null)
                {
                    foreach (var r in resultado)
                    {
                        var o = new cBitacoraVisitaFamiliar();
                        o.HoraIngreso = string.Format("{0:hh:mm tt}", r.ADUANA.ENTRADA_FEC);
                        o.NoVisitante = r.ADUANA.ID_PERSONA.ToString();//r.ID_PERSONA.ToString();
                        o.Visitante   = string.Format("{0} {1} {2}",
                                                      !string.IsNullOrEmpty(r.ADUANA.PERSONA.NOMBRE) ? r.ADUANA.PERSONA.NOMBRE.Trim() : string.Empty,
                                                      !string.IsNullOrEmpty(r.ADUANA.PERSONA.PATERNO) ? r.ADUANA.PERSONA.PATERNO.Trim() : string.Empty,
                                                      !string.IsNullOrEmpty(r.ADUANA.PERSONA.MATERNO) ? r.ADUANA.PERSONA.MATERNO.Trim() : string.Empty);
                        o.Expendiente = string.Format("{0}/{1}", r.ID_ANIO, r.ID_IMPUTADO);
                        o.Interno     = string.Format("{0} {1} {2}",
                                                      !string.IsNullOrEmpty(r.INGRESO.IMPUTADO.NOMBRE) ? r.INGRESO.IMPUTADO.NOMBRE.Trim() : string.Empty,
                                                      !string.IsNullOrEmpty(r.INGRESO.IMPUTADO.PATERNO) ? r.INGRESO.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                      !string.IsNullOrEmpty(r.INGRESO.IMPUTADO.MATERNO) ? r.INGRESO.IMPUTADO.MATERNO.Trim() : string.Empty);
                        o.Ubicacion = string.Format("{0}-{1}-{2}-{3}",
                                                    r.INGRESO.CAMA.CELDA.SECTOR.EDIFICIO.DESCR.Trim(),
                                                    r.INGRESO.CAMA.CELDA.SECTOR.DESCR.Trim(),
                                                    r.INGRESO.CAMA.ID_CELDA.Trim(),
                                                    r.INGRESO.CAMA.ID_CAMA);
                        o.AutorizoEntrada = r.ADUANA.ID_USUARIO;
                        o.HoraSalida      = string.Format("{0:hh:mm tt}", r.ADUANA.SALIDA_FEC);
                        o.AutorizoSalida  = r.ADUANA.ID_USUARIO;
                        o.TipoVisita      = r.INTIMA == "S" ? "INTIMA" : "FAMILIAR";
                        lstContenido.Add(o);
                    }
                }
                //ARMAMOS EL REPORTE
                Reporte.LocalReport.ReportPath = "Reportes/rBitacoraIngresoVisitaFamiliarNew.rdlc";
                Reporte.LocalReport.DataSources.Clear();

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

                Microsoft.Reporting.WinForms.ReportDataSource rds2 = new Microsoft.Reporting.WinForms.ReportDataSource();
                rds2.Name  = "DataSet2";
                rds2.Value = datosReporte;
                Reporte.LocalReport.DataSources.Add(rds2);
                Application.Current.Dispatcher.Invoke((Action)(delegate
                {
                    Reporte.RefreshReport();
                    ReportViewerVisible = Visibility.Visible;
                }));
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error", ex);
            }
        }