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

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

                var lista_ingresos_excarcelaciones = new List <InternoIngresoExcarcelacion>();
                var ingreso_ubicacion = new cIngresoUbicacion();
                var excarcelacion     = new cExcarcelacion();
                foreach (var ingreso in lista_ingresos)
                {
                    var ultima_ubicacion     = ingreso_ubicacion.ObtenerUltimaUbicacion(ingreso.ID_ANIO, ingreso.ID_CENTRO, ingreso.ID_IMPUTADO, ingreso.ID_INGRESO);
                    var excarcelacion_activa = excarcelacion.ObtenerImputadoExcarcelaciones(ingreso.ID_CENTRO, ingreso.ID_ANIO, ingreso.ID_IMPUTADO, ingreso.ID_INGRESO).Where(w =>
                                                                                                                                                                               w.ID_ESTATUS == EXCARCELACION_ACTIVA &&
                                                                                                                                                                               w.PROGRAMADO_FEC.Value.Year == FechaServer.Year &&
                                                                                                                                                                               w.PROGRAMADO_FEC.Value.Month == FechaServer.Month &&
                                                                                                                                                                               w.PROGRAMADO_FEC.Value.Day == FechaServer.Day).Any();
                    lista_ingresos_excarcelaciones.Add(new InternoIngresoExcarcelacion()
                    {
                        Id_Centro        = ingreso.ID_CENTRO,
                        Id_Anio          = ingreso.ID_ANIO,
                        Id_Imputado      = ingreso.ID_IMPUTADO,
                        Id_Ingreso       = ingreso.ID_INGRESO,
                        Nombre           = ingreso.IMPUTADO != null ? !string.IsNullOrEmpty(ingreso.IMPUTADO.NOMBRE) ? ingreso.IMPUTADO.NOMBRE.Trim() : string.Empty : string.Empty,
                        Paterno          = ingreso.IMPUTADO != null ? !string.IsNullOrEmpty(ingreso.IMPUTADO.PATERNO) ? ingreso.IMPUTADO.PATERNO.Trim() : string.Empty : string.Empty,
                        Materno          = ingreso.IMPUTADO != null ? !string.IsNullOrEmpty(ingreso.IMPUTADO.MATERNO) ? ingreso.IMPUTADO.MATERNO.Trim() : string.Empty : string.Empty,
                        EnSalidaDeCentro = (ultima_ubicacion != null && ultima_ubicacion.ID_AREA == SALIDA_DE_CENTRO && ultima_ubicacion.ESTATUS == (short)enumUbicacion.ACTIVIDAD && !excarcelacion_activa)
                    });
                }
                ListaIngresos = lista_ingresos_excarcelaciones;
            }
            //Si ocurrió un error, entonces...
            catch (Exception ex)
            {
                //Se le notifica al usuario que ocurrió un error
                StaticSourcesViewModel.ShowMessageError("Algo Paso...", "Ocurrió un error al obtener las excarcelaciones", ex);
            }
        }
Esempio n. 2
0
        public bool Insertar_Comprobacion_CertificadoMedico(List <TRASLADO_DETALLE> ListaTrasDetalle, List <EXCARCELACION> ListaExcarcel, string NameProceso, string TipoCertificadoMedico, short?IdAreaTRaslado, DateTime FechaServer)
        {
            using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
            {
                IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
            }))
            {
                try
                {
                    cExcarcelacion    ExcarcelacionActualizar     = new cExcarcelacion();
                    cTrasladoDetalle  TrasladoDetalleControlador  = new cTrasladoDetalle();
                    cAtencionServicio AtencionServControlador     = new cAtencionServicio();
                    cIngresoUbicacion IngresoUbicacionControlador = new cIngresoUbicacion();
                    var    Enums         = AtencionServControlador.ObtenerTodo().Where(w => w.ID_TIPO_SERVICIO == 3 && w.ID_TIPO_ATENCION == 1).FirstOrDefault();
                    bool   OCURRIO_ERROR = false;
                    string ACTIVIDAD     = string.Empty;
                    switch (NameProceso)
                    {
                    case "Traslados-Salidas":
                        ACTIVIDAD = "TRASLADO";
                        foreach (var itemTrasDetalle in ListaTrasDetalle)
                        {
                            var ObjAtencionMed = new ATENCION_MEDICA();
                            ObjAtencionMed.ID_ANIO          = itemTrasDetalle.ID_ANIO;
                            ObjAtencionMed.ID_CENTRO        = itemTrasDetalle.ID_CENTRO;
                            ObjAtencionMed.ID_IMPUTADO      = itemTrasDetalle.ID_IMPUTADO;
                            ObjAtencionMed.ID_INGRESO       = itemTrasDetalle.ID_INGRESO;
                            ObjAtencionMed.ID_TIPO_ATENCION = Enums.ID_TIPO_ATENCION;
                            ObjAtencionMed.ID_TIPO_SERVICIO = Enums.ID_TIPO_SERVICIO;

                            if (this.Insertar(ObjAtencionMed))
                            {
                                //Se actualiza campo de ID_ATENCION_MEDICA(comprobacion certificado medico)
                                itemTrasDetalle.ID_ATENCION_MEDICA = ObjAtencionMed.ID_ATENCION_MEDICA;
                                if (TrasladoDetalleControlador.Actualizar(new TRASLADO_DETALLE()
                                {
                                    ID_CENTRO = itemTrasDetalle.ID_CENTRO,
                                    ID_ANIO = itemTrasDetalle.ID_ANIO,
                                    ID_IMPUTADO = itemTrasDetalle.ID_IMPUTADO,
                                    ID_INGRESO = itemTrasDetalle.ID_INGRESO,
                                    ID_ESTATUS = itemTrasDetalle.ID_ESTATUS,
                                    AMP_ID_AMPARO_INDIRECTO = itemTrasDetalle.AMP_ID_AMPARO_INDIRECTO,
                                    AMP_ID_ANIO = itemTrasDetalle.AMP_ID_ANIO,
                                    AMP_ID_CENTRO = itemTrasDetalle.AMP_ID_CENTRO,
                                    AMP_ID_IMPUTADO = itemTrasDetalle.AMP_ID_IMPUTADO,
                                    AMP_ID_INGRESO = itemTrasDetalle.AMP_ID_INGRESO,
                                    CANCELADO_OBSERVA = itemTrasDetalle.CANCELADO_OBSERVA,
                                    EGRESO_FEC = itemTrasDetalle.EGRESO_FEC,
                                    ID_ATENCION_MEDICA = itemTrasDetalle.ID_ATENCION_MEDICA,
                                    ID_CENTRO_TRASLADO = itemTrasDetalle.ID_CENTRO_TRASLADO,
                                    ID_ESTATUS_ADMINISTRATIVO = itemTrasDetalle.ID_ESTATUS_ADMINISTRATIVO,
                                    ID_MOTIVO = itemTrasDetalle.ID_MOTIVO,
                                    ID_TRASLADO = itemTrasDetalle.ID_TRASLADO
                                }))
                                {
                                    int IdCpnsecutivo         = 0;
                                    int?Id_custodio           = null;
                                    var IngresoUbicacionDatos = IngresoUbicacionControlador.ObtenerTodos().Where(w => w.ID_ANIO == itemTrasDetalle.ID_ANIO && w.ID_CENTRO == itemTrasDetalle.ID_CENTRO && w.ID_IMPUTADO == itemTrasDetalle.ID_IMPUTADO && w.ID_INGRESO == itemTrasDetalle.ID_INGRESO);
                                    if (IngresoUbicacionDatos.Count() > 0) //si el ingreso ya tiene registros anteriores Actualizara el ultimo Movimiento
                                    {                                      //SE ACTUALIZA
                                        var ObjetoUbicacionTras = IngresoUbicacionDatos.Where(w => w.ID_CONSEC == IngresoUbicacionDatos.Max(IdMAX => IdMAX.ID_CONSEC)).ToList().FirstOrDefault();

                                        //ACTUALIZACION DATOS DE UBICACION_DETALLE
                                        Id_custodio = ObjetoUbicacionTras.ID_CUSTODIO; //Revisar que regreso si es null declararlo de inicio como null sio es cero declararlo de inicio como cero

                                        ObjetoUbicacionTras.ESTATUS = 2;               //:::::ACTUALIZA ESTATUS
                                        if (!IngresoUbicacionControlador.Actualizar(new INGRESO_UBICACION()
                                        {
                                            ID_ANIO = ObjetoUbicacionTras.ID_ANIO,
                                            MOVIMIENTO_FEC = ObjetoUbicacionTras.MOVIMIENTO_FEC,
                                            ACTIVIDAD = ObjetoUbicacionTras.ACTIVIDAD,
                                            ID_CENTRO = ObjetoUbicacionTras.ID_CENTRO,
                                            ID_CONSEC = ObjetoUbicacionTras.ID_CONSEC,
                                            ID_CUSTODIO = ObjetoUbicacionTras.ID_CUSTODIO,
                                            ID_IMPUTADO = ObjetoUbicacionTras.ID_IMPUTADO,
                                            ID_INGRESO = ObjetoUbicacionTras.ID_INGRESO,
                                            INTERNO_UBICACION = ObjetoUbicacionTras.INTERNO_UBICACION,
                                            ID_AREA = 46,    //Valor que se leasigna por el momento
                                            ESTATUS = ObjetoUbicacionTras.ESTATUS
                                        }))
                                        {
                                            OCURRIO_ERROR = true;
                                        }
                                    }

                                    //SE AGREGA UNO NUEVO
                                    if (!IngresoUbicacionControlador.Insertar(new INGRESO_UBICACION()
                                    {
                                        ID_ANIO = itemTrasDetalle.ID_ANIO,
                                        ID_CENTRO = itemTrasDetalle.ID_CENTRO,
                                        ID_IMPUTADO = itemTrasDetalle.ID_IMPUTADO,
                                        ID_INGRESO = itemTrasDetalle.ID_INGRESO,
                                        ID_CONSEC = IngresoUbicacionControlador.ObtenerConsecutivo <int>(itemTrasDetalle.ID_CENTRO, itemTrasDetalle.ID_ANIO, itemTrasDetalle.ID_IMPUTADO, itemTrasDetalle.ID_INGRESO),
                                        MOVIMIENTO_FEC = FechaServer,
                                        ACTIVIDAD = ACTIVIDAD,
                                        ID_AREA = IdAreaTRaslado,
                                        ESTATUS = 1,
                                        ID_CUSTODIO = Id_custodio,
                                    }))
                                    {
                                        OCURRIO_ERROR = true;
                                    }
                                }
                            }
                            else
                            {
                                OCURRIO_ERROR = true;
                            }
                        }

                        break;

                    case "EXCARCELACIÓN":
                        foreach (var itemExcarcelDetalle in ListaExcarcel)
                        {
                            var ObjAtencionMed = new ATENCION_MEDICA();
                            ObjAtencionMed.ID_ANIO          = itemExcarcelDetalle.ID_ANIO;
                            ObjAtencionMed.ID_CENTRO        = itemExcarcelDetalle.ID_CENTRO;
                            ObjAtencionMed.ID_IMPUTADO      = itemExcarcelDetalle.ID_IMPUTADO;
                            ObjAtencionMed.ID_INGRESO       = itemExcarcelDetalle.ID_INGRESO;
                            ObjAtencionMed.ID_TIPO_ATENCION = Enums.ID_TIPO_ATENCION;
                            ObjAtencionMed.ID_TIPO_SERVICIO = Enums.ID_TIPO_SERVICIO;

                            if (this.Insertar(ObjAtencionMed))
                            {
                                //Se agrega campo de CERTIFICADO_MEDICO_SALIDA  y se actualiza Tabla excarcelacion
                                switch (TipoCertificadoMedico)
                                {
                                case "SALIDA":
                                    itemExcarcelDetalle.CERT_MEDICO_SALIDA = ObjAtencionMed.ID_ATENCION_MEDICA;
                                    ACTIVIDAD = "EXCARCELACIÓN";
                                    break;

                                case "RETORNO":
                                    itemExcarcelDetalle.CERT_MEDICO_RETORNO = ObjAtencionMed.ID_ATENCION_MEDICA;
                                    ACTIVIDAD = "ESTANCIA";
                                    break;
                                }

                                if (ExcarcelacionActualizar.Actualizar(new EXCARCELACION()
                                {
                                    ID_ANIO = itemExcarcelDetalle.ID_ANIO,
                                    ID_CENTRO = itemExcarcelDetalle.ID_CENTRO,
                                    ID_IMPUTADO = itemExcarcelDetalle.ID_IMPUTADO,
                                    ID_INGRESO = itemExcarcelDetalle.ID_INGRESO,
                                    ID_CONSEC = itemExcarcelDetalle.ID_CONSEC,
                                    ID_TIPO_EX = itemExcarcelDetalle.ID_TIPO_EX,
                                    ID_ESTATUS = itemExcarcelDetalle.ID_ESTATUS,
                                    ID_USUARIO = itemExcarcelDetalle.ID_USUARIO,
                                    OBSERVACION = itemExcarcelDetalle.OBSERVACION,
                                    PROGRAMADO_FEC = itemExcarcelDetalle.PROGRAMADO_FEC,
                                    REGISTRO_FEC = itemExcarcelDetalle.REGISTRO_FEC,
                                    RETORNO_FEC = itemExcarcelDetalle.RETORNO_FEC,
                                    SALIDA_FEC = itemExcarcelDetalle.SALIDA_FEC,
                                    CANCELADO_TIPO = itemExcarcelDetalle.CANCELADO_TIPO,
                                    CERT_MEDICO_RETORNO = itemExcarcelDetalle.CERT_MEDICO_RETORNO,
                                    CERT_MEDICO_SALIDA = itemExcarcelDetalle.CERT_MEDICO_SALIDA,
                                    CERTIFICADO_MEDICO = itemExcarcelDetalle.CERTIFICADO_MEDICO,
                                }))
                                {
                                    int IdCpnsecutivo         = 0;
                                    int?Id_custodio           = null;
                                    var IngresoUbicacionDatos = IngresoUbicacionControlador.ObtenerTodos().Where(w => w.ID_ANIO == itemExcarcelDetalle.ID_ANIO && w.ID_CENTRO == itemExcarcelDetalle.ID_CENTRO && w.ID_IMPUTADO == itemExcarcelDetalle.ID_IMPUTADO && w.ID_INGRESO == itemExcarcelDetalle.ID_INGRESO);
                                    if (IngresoUbicacionDatos.Count() > 0)
                                    {    //SE ACTUALIZA
                                        var ObjetoUnicacionTras = IngresoUbicacionDatos.Where(w => w.ID_CONSEC == IngresoUbicacionDatos.Max(IdMAX => IdMAX.ID_CONSEC)).ToList().FirstOrDefault();

                                        Id_custodio = ObjetoUnicacionTras.ID_CUSTODIO; //Revisar que regreso si es null declararlo de inicio como null sio es cero declararlo de inicio como cero
                                        ObjetoUnicacionTras.ESTATUS = 2;               //:::::ACTUALIZA ESTATUS
                                        if (!IngresoUbicacionControlador.Actualizar(new INGRESO_UBICACION()
                                        {
                                            ID_ANIO = ObjetoUnicacionTras.ID_ANIO,
                                            MOVIMIENTO_FEC = ObjetoUnicacionTras.MOVIMIENTO_FEC,
                                            ACTIVIDAD = ObjetoUnicacionTras.ACTIVIDAD,
                                            ID_CENTRO = ObjetoUnicacionTras.ID_CENTRO,
                                            ID_CONSEC = ObjetoUnicacionTras.ID_CONSEC,
                                            ID_CUSTODIO = ObjetoUnicacionTras.ID_CUSTODIO,
                                            ID_IMPUTADO = ObjetoUnicacionTras.ID_IMPUTADO,
                                            ID_INGRESO = ObjetoUnicacionTras.ID_INGRESO,
                                            INTERNO_UBICACION = ObjetoUnicacionTras.INTERNO_UBICACION,
                                            ID_AREA = 46,    //Valor que se leasigna por el momento
                                            ESTATUS = ObjetoUnicacionTras.ESTATUS
                                        }))
                                        {
                                            OCURRIO_ERROR = true;
                                        }
                                    }

                                    //SE AGREGA UNO NUEVO
                                    if (!IngresoUbicacionControlador.Insertar(new INGRESO_UBICACION()
                                    {
                                        ID_ANIO = itemExcarcelDetalle.ID_ANIO,
                                        ID_CENTRO = itemExcarcelDetalle.ID_CENTRO,
                                        ID_IMPUTADO = itemExcarcelDetalle.ID_IMPUTADO,
                                        ID_INGRESO = itemExcarcelDetalle.ID_INGRESO,
                                        ID_CONSEC = IngresoUbicacionControlador.ObtenerConsecutivo <int>(itemExcarcelDetalle.ID_CENTRO, itemExcarcelDetalle.ID_ANIO, itemExcarcelDetalle.ID_IMPUTADO, itemExcarcelDetalle.ID_INGRESO),
                                        MOVIMIENTO_FEC = FechaServer,
                                        ACTIVIDAD = ACTIVIDAD,
                                        ID_AREA = IdAreaTRaslado,
                                        ESTATUS = 1,
                                        ID_CUSTODIO = Id_custodio,
                                    }))
                                    {
                                        OCURRIO_ERROR = true;
                                    }
                                }
                                else
                                {
                                    OCURRIO_ERROR = true;
                                }
                            }
                            else
                            {
                                OCURRIO_ERROR = true;
                            }
                        }


                        break;

                    default:
                        break;
                    }
                    if (OCURRIO_ERROR == false)
                    {
                        transaccion.Complete();
                        return(true);
                    }
                }
                catch (Exception)
                {
                    transaccion.Dispose();
                }
            }
            return(true);
        }
        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;
            }
        }
Esempio n. 5
0
        public ObservableCollection <InternosAusentes> ListInternosAusentesReporte(short?ID_CENTRO, DateTime?fechaInicio = null, DateTime?fechaFin = null)
        {
            try
            {
                var Resultado = new cIngresoUbicacion().ObtenerTodos(ID_CENTRO, fechaInicio, fechaFin).ToList();

                var lstAusentes        = new ObservableCollection <InternosAusentes>();
                var lstAusentesEntrada = new ObservableCollection <InternosAusentes>();

                //var query = (from p in Resultado
                //                where p.ID_CONSEC ==
                //               (from pp in Resultado
                //                  where pp.ID_IMPUTADO == p.ID_IMPUTADO
                //                 select pp.ID_CONSEC).Max()
                //                 select p).ToList();

                //    internos_ausentes = new ObservableCollection<INGRESO_UBICACION>(query);

                foreach (var item in Resultado.OrderBy(o => o.ID_IMPUTADO).ThenBy(t => t.MOVIMIENTO_FEC))
                {
                    var consulta_imputado = item.INGRESO.IMPUTADO;
                    var consulta_interno  = item.INGRESO;
                    var edificio          = consulta_interno.CAMA.CELDA.SECTOR.EDIFICIO;
                    var sector            = consulta_interno.CAMA.CELDA.SECTOR;
                    var celda             = consulta_interno.CAMA.CELDA;

                    if (item.ESTATUS == 1)
                    {
                        lstAusentes.Add(new InternosAusentes()
                        {
                            Llave      = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO),
                            Expediente = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd(),
                            Paterno    = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd(),
                            Materno    = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd(),
                            Nombre     = string.IsNullOrEmpty(consulta_imputado.NOMBRE) ? string.Empty : consulta_imputado.NOMBRE.TrimEnd(),
                            Ubicacion  = string.IsNullOrEmpty(ubicacion_transito) ? string.Empty : ubicacion_transito.TrimEnd(),
                            Estancia   = string.Format("{0}-{1}-{2}-{3}", string.IsNullOrEmpty(edificio.DESCR) ? string.Empty : edificio.DESCR.TrimEnd(), string.IsNullOrEmpty(sector.DESCR) ? string.Empty : sector.DESCR.TrimEnd(),
                                                       string.IsNullOrEmpty(celda.ID_CELDA) ? string.Empty : celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA),
                            Actividad = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd(),
                            IdArea    = item.ID_AREA,
                            Area      = string.IsNullOrEmpty(item.ACTIVIDAD) ?
                                        string.Empty
                            : (item.ACTIVIDAD.TrimEnd() == "ESTANCIA" ?
                               string.Format("{0}-{1}-{2}-{3}", string.IsNullOrEmpty(edificio.DESCR) ? string.Empty : edificio.DESCR.TrimEnd(), string.IsNullOrEmpty(sector.DESCR) ? string.Empty : sector.DESCR.TrimEnd(),
                                             string.IsNullOrEmpty(celda.ID_CELDA) ? string.Empty : celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA)
                            : item.AREA.DESCR.TrimEnd()),
                            Fecha       = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC.Value : Fechas.GetFechaDateServer,
                            IdCentro    = consulta_imputado.ID_CENTRO,
                            IdAnio      = consulta_imputado.ID_ANIO,
                            IdIngreso   = consulta_interno.ID_INGRESO,
                            IdImputado  = consulta_imputado.ID_IMPUTADO,
                            Consecutivo = item.ID_CONSEC,
                            NIP         = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty,
                            Estatus     = item.ESTATUS,
                            Ingreso     = consulta_interno
                        });
                    }
                    else if (item.ESTATUS == 2)
                    {
                        lstAusentes.Add(new InternosAusentes()
                        {
                            Llave      = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO),
                            Expediente = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd(),
                            Paterno    = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd(),
                            Materno    = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd(),
                            Nombre     = string.IsNullOrEmpty(consulta_imputado.NOMBRE) ? string.Empty : consulta_imputado.NOMBRE.TrimEnd(),
                            Ubicacion  = item.INGRESO.EXCARCELACION.Any(w => w.ID_ESTATUS == "AC") ? item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").ID_TIPO_EX == (short)enumTipoExcarcelacion.JURIDICA ?
                                         item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().JUZGADO.DESCR
                            : item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().ID_HOSPITAL == id_hospital_otros ?
                                         item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL_OTRO :
                                         item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL.DESCR :
                                         item.AREA.DESCR.TrimEnd(),
                            Estancia  = string.Format("{0}-{1}-{2}-{3}", edificio.DESCR.TrimEnd(), sector.DESCR.TrimEnd(), celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA),
                            Actividad = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd(),
                            IdArea    = item.ID_AREA,
                            Area      = item.INGRESO.EXCARCELACION.Any(w => w.ID_ESTATUS == "AC") ? item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").ID_TIPO_EX == (short)enumTipoExcarcelacion.JURIDICA ?
                                        item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().JUZGADO.DESCR
                            : item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().ID_HOSPITAL == id_hospital_otros ?
                                        item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL_OTRO :
                                        item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL.DESCR :
                                        item.AREA.DESCR.TrimEnd(),
                            Fecha       = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC.Value : Fechas.GetFechaDateServer,
                            IdCentro    = consulta_imputado.ID_CENTRO,
                            IdAnio      = consulta_imputado.ID_ANIO,
                            IdIngreso   = consulta_interno.ID_INGRESO,
                            IdImputado  = consulta_imputado.ID_IMPUTADO,
                            Consecutivo = item.ID_CONSEC,
                            NIP         = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty,
                            Estatus     = item.ESTATUS,
                            Ingreso     = consulta_interno
                        });
                    }
                    else if (item.ESTATUS == 0)
                    {
                        lstAusentes.Add(new InternosAusentes()
                        {
                            Llave       = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO),
                            Expediente  = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd(),
                            Paterno     = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd(),
                            Materno     = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd(),
                            Nombre      = string.IsNullOrEmpty(consulta_imputado.NOMBRE) ? string.Empty : consulta_imputado.NOMBRE.TrimEnd(),
                            Ubicacion   = string.IsNullOrEmpty(item.AREA.DESCR) ? string.Empty : item.AREA.DESCR.TrimEnd(),
                            Estancia    = string.Format("{0}-{1}-{2}-{3}", edificio.DESCR.TrimEnd(), sector.DESCR.TrimEnd(), celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA),
                            Actividad   = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd(),
                            IdArea      = item.ID_AREA,
                            Area        = string.IsNullOrEmpty(item.AREA.DESCR) ? string.Empty : item.AREA.DESCR.TrimEnd(),
                            Fecha       = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC.Value : Fechas.GetFechaDateServer,
                            IdCentro    = consulta_imputado.ID_CENTRO,
                            IdAnio      = consulta_imputado.ID_ANIO,
                            IdIngreso   = consulta_interno.ID_INGRESO,
                            IdImputado  = consulta_imputado.ID_IMPUTADO,
                            Consecutivo = item.ID_CONSEC,
                            NIP         = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty,
                            Estatus     = item.ESTATUS,
                            Ingreso     = consulta_interno,
                            Entrada     = true
                        });
                    }
                }
                //FILTRO QUE TOMA EN CUENTA EL ULTIMO MOVIMIENTO DEL INTERNO
                //var query2 = (from p in lstAusentes
                //             where p.Consecutivo ==
                //             (from pp in lstAusentes
                //              where pp.IdImputado == p.IdImputado
                //              select pp.Consecutivo).Max()
                //             select p).ToList();

                //foreach (var x in query2)
                //{
                //    lstAusentesEntrada.Add(x);
                //}
                lstAusentesEntrada = new ObservableCollection <InternosAusentes>(lstAusentes);
                return(lstAusentesEntrada);
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al obtener internos ausentes", ex);
                return(null);
            }
        }
Esempio n. 6
0
        public ObservableCollection <InternosAusentes> ListInternosAusentes(short?ID_CENTRO)
        {
            try
            {
                var grupo_ausente      = new cIngresoUbicacion().ObtenerTodos(ID_CENTRO);
                var lstAusentes        = new ObservableCollection <InternosAusentes>();
                var lstAusentesEntrada = new ObservableCollection <InternosAusentes>();

                foreach (var item in grupo_ausente.OrderBy(o => o.ID_IMPUTADO).ThenBy(t => t.MOVIMIENTO_FEC))
                {
                    var consulta_imputado = item.INGRESO.IMPUTADO;
                    var consulta_interno  = item.INGRESO.IMPUTADO.INGRESO.OrderByDescending(o => o.ID_INGRESO).FirstOrDefault();
                    var edificio          = consulta_interno.CAMA.CELDA.SECTOR.EDIFICIO;
                    var sector            = consulta_interno.CAMA.CELDA.SECTOR;
                    var celda             = consulta_interno.CAMA.CELDA;

                    if (item.ESTATUS == 1)
                    {
                        var ia = new InternosAusentes();
                        ia.Llave      = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO);
                        ia.Expediente = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd();
                        ia.Paterno    = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd();
                        ia.Materno    = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd();
                        ia.Nombre     = consulta_imputado.NOMBRE.TrimEnd();
                        ia.Ubicacion  = string.IsNullOrEmpty(ubicacion_transito) ? string.Empty : ubicacion_transito.TrimEnd();
                        ia.Estancia   = string.Format("{0}-{1}-{2}-{3}",
                                                      string.IsNullOrEmpty(edificio.DESCR) ? string.Empty : edificio.DESCR.TrimEnd(),
                                                      string.IsNullOrEmpty(sector.DESCR) ? string.Empty : sector.DESCR.TrimEnd(),
                                                      string.IsNullOrEmpty(celda.ID_CELDA) ? string.Empty : celda.ID_CELDA.TrimEnd(),
                                                      consulta_interno.CAMA.ID_CAMA);
                        ia.Actividad = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd();
                        ia.IdArea    = item.ID_AREA;
                        ia.Area      = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : (item.ACTIVIDAD.TrimEnd() == "ESTANCIA" ?
                                                                                              string.Format("{0}-{1}-{2}-{3}",
                                                                                                            edificio != null ? !string.IsNullOrEmpty(edificio.DESCR) ? edificio.DESCR.TrimEnd() : string.Empty : string.Empty,
                                                                                                            sector != null ? !string.IsNullOrEmpty(sector.DESCR) ? sector.DESCR.TrimEnd() : string.Empty : string.Empty,
                                                                                                            celda != null ? !string.IsNullOrEmpty(celda.ID_CELDA) ?  celda.ID_CELDA.TrimEnd() : string.Empty : string.Empty,
                                                                                                            consulta_interno.CAMA.ID_CAMA)
                                : (item.AREA != null ? item.AREA.DESCR.TrimEnd() : string.Empty));
                        ia.Fecha       = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC : null;//Fechas.GetFechaDateServer;
                        ia.IdCentro    = consulta_imputado.ID_CENTRO;
                        ia.IdAnio      = consulta_imputado.ID_ANIO;
                        ia.IdIngreso   = consulta_interno.ID_INGRESO;
                        ia.IdImputado  = consulta_imputado.ID_IMPUTADO;
                        ia.Consecutivo = item.ID_CONSEC;
                        ia.NIP         = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty;
                        ia.Estatus     = item.ESTATUS;
                        ia.Ingreso     = consulta_interno;
                        lstAusentes.Add(ia);
                        //lstAusentes.Add(new InternosAusentes()
                        //{
                        //Llave = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO),
                        //Expediente = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd(),
                        //Paterno = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd(),
                        //Materno = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd(),
                        //Nombre = consulta_imputado.NOMBRE.TrimEnd(),
                        //Ubicacion = string.IsNullOrEmpty(ubicacion_transito) ? string.Empty : ubicacion_transito.TrimEnd(),
                        //Estancia = string.Format("{0}-{1}-{2}-{3}", string.IsNullOrEmpty(edificio.DESCR) ? string.Empty : edificio.DESCR.TrimEnd(), string.IsNullOrEmpty(sector.DESCR) ? string.Empty : sector.DESCR.TrimEnd(),
                        //    string.IsNullOrEmpty(celda.ID_CELDA) ? string.Empty : celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA),
                        //Actividad = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd(),
                        //IdArea = item.ID_AREA,
                        //Area = string.IsNullOrEmpty(item.ACTIVIDAD) ?
                        //    string.Empty
                        //: (item.ACTIVIDAD.TrimEnd() == "ESTANCIA" ?
                        //    string.Format("{0}-{1}-{2}-{3}", edificio.DESCR.TrimEnd(), sector.DESCR.TrimEnd(), celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA)
                        //: item.AREA.DESCR.TrimEnd()),
                        //Fecha = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC.Value : Fechas.GetFechaDateServer,
                        //IdCentro = consulta_imputado.ID_CENTRO,
                        //IdAnio = consulta_imputado.ID_ANIO,
                        //IdIngreso = consulta_interno.ID_INGRESO,
                        //IdImputado = consulta_imputado.ID_IMPUTADO,
                        //Consecutivo = item.ID_CONSEC,
                        //NIP = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty,
                        //Estatus = item.ESTATUS,
                        //Ingreso = consulta_interno
                        //});
                    }
                    else if (item.ESTATUS == 2)
                    {
                        if (!ParametroEstatusInactivos.Contains(item.INGRESO.ID_ESTATUS_ADMINISTRATIVO))
                        {
                            lstAusentes.Add(new InternosAusentes()
                            {
                                Llave      = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO),
                                Expediente = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd(),
                                Paterno    = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd(),
                                Materno    = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd(),
                                Nombre     = consulta_imputado.NOMBRE.TrimEnd(),
                                Ubicacion  = item.INGRESO.EXCARCELACION.Any(w => w.ID_ESTATUS == "AC") ? item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").ID_TIPO_EX == (short)enumTipoExcarcelacion.JURIDICA ?
                                             item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().JUZGADO.DESCR
                                : item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().ID_HOSPITAL == id_hospital_otros ?
                                             item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL_OTRO :
                                             item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL.DESCR :
                                             item.AREA.DESCR.TrimEnd(),
                                Estancia  = string.Format("{0}-{1}-{2}-{3}", edificio.DESCR.TrimEnd(), sector.DESCR.TrimEnd(), celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA),
                                Actividad = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd(),
                                IdArea    = item.ID_AREA,
                                Area      = item.INGRESO.EXCARCELACION.Any(w => w.ID_ESTATUS == "AC") ? item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").ID_TIPO_EX == (short)enumTipoExcarcelacion.JURIDICA ?
                                            item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().JUZGADO.DESCR
                                : item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().ID_HOSPITAL == id_hospital_otros ?
                                            item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL_OTRO :
                                            item.INGRESO.EXCARCELACION.First(w => w.ID_ESTATUS == "AC").EXCARCELACION_DESTINO.First().INTERCONSULTA_SOLICITUD.HOJA_REFERENCIA_MEDICA.First().HOSPITAL.DESCR :
                                            item.AREA.DESCR.TrimEnd(),
                                Fecha       = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC.Value : Fechas.GetFechaDateServer,
                                IdCentro    = consulta_imputado.ID_CENTRO,
                                IdAnio      = consulta_imputado.ID_ANIO,
                                IdIngreso   = consulta_interno.ID_INGRESO,
                                IdImputado  = consulta_imputado.ID_IMPUTADO,
                                Consecutivo = item.ID_CONSEC,
                                NIP         = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty,
                                Estatus     = item.ESTATUS,
                                Ingreso     = consulta_interno
                            });
                        }
                    }
                    else if (item.ESTATUS == 0)
                    {
                        lstAusentes.Add(new InternosAusentes()
                        {
                            Llave       = string.Format("{0}/{1}/{2}/{3}", consulta_imputado.ID_CENTRO, consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO, consulta_interno.ID_INGRESO),
                            Expediente  = string.Format("{0}/{1}", consulta_imputado.ID_ANIO, consulta_imputado.ID_IMPUTADO).TrimEnd(),
                            Paterno     = string.IsNullOrEmpty(consulta_imputado.PATERNO) ? string.Empty : consulta_imputado.PATERNO.TrimEnd(),
                            Materno     = string.IsNullOrEmpty(consulta_imputado.MATERNO) ? string.Empty : consulta_imputado.MATERNO.TrimEnd(),
                            Nombre      = consulta_imputado.NOMBRE.TrimEnd(),
                            Ubicacion   = item.AREA.DESCR.TrimEnd(),
                            Estancia    = string.Format("{0}-{1}-{2}-{3}", edificio.DESCR.TrimEnd(), sector.DESCR.TrimEnd(), celda.ID_CELDA.TrimEnd(), consulta_interno.CAMA.ID_CAMA),
                            Actividad   = string.IsNullOrEmpty(item.ACTIVIDAD) ? string.Empty : item.ACTIVIDAD.TrimEnd(),
                            IdArea      = item.ID_AREA,
                            Area        = item.AREA.DESCR.TrimEnd(),
                            Fecha       = item.MOVIMIENTO_FEC.HasValue ? item.MOVIMIENTO_FEC.Value : Fechas.GetFechaDateServer,
                            IdCentro    = consulta_imputado.ID_CENTRO,
                            IdAnio      = consulta_imputado.ID_ANIO,
                            IdIngreso   = consulta_interno.ID_INGRESO,
                            IdImputado  = consulta_imputado.ID_IMPUTADO,
                            Consecutivo = item.ID_CONSEC,
                            NIP         = !string.IsNullOrEmpty(consulta_imputado.NIP) ? consulta_imputado.NIP.TrimEnd() : string.Empty,
                            Estatus     = item.ESTATUS,
                            Ingreso     = consulta_interno,
                            Entrada     = true
                        });
                    }
                }
                //FILTRO QUE TOMA EN CUENTA EL ULTIMO MOVIMIENTO DEL INTERNO
                var query = (from p in lstAusentes
                             where p.Consecutivo ==
                             (from pp in lstAusentes
                              where pp.IdImputado == p.IdImputado
                              select pp.Consecutivo).Max()
                             select p).ToList();

                foreach (var x in query.Where(w => w.Entrada != true))
                {
                    lstAusentesEntrada.Add(x);
                }
                lstAusentesEntrada = new ObservableCollection <InternosAusentes>(lstAusentesEntrada);
                return(lstAusentesEntrada);
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al obtener internos ausentes", ex);
                return(null);
            }
            #endregion
        }
        //CLICK SWITCH - BOTONES
        public async void ClickSwitch(object obj)
        {
            switch (obj.ToString())
            {
            case "BuscarClick":
                VentanaBusqueda.Hide();
                await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                {
                    var AnioBusqueda  = 0;
                    var FolioBusqueda = 0;
                    Int32.TryParse(AnioBuscar, out AnioBusqueda);
                    Int32.TryParse(FolioBuscar, out FolioBusqueda);
                    if (!string.IsNullOrEmpty(NombreBuscar) || !string.IsNullOrEmpty(ApellidoPaternoBuscar) || !string.IsNullOrEmpty(ApellidoMaternoBuscar) || AnioBusqueda != 0 || FolioBusqueda != 0)
                    {
                        try
                        {
                            ListExpediente.Clear();
                            var imputados_busqueda            = new List <InternosActividad>();
                            List <GRUPO_ASISTENCIA> imputados = new InternosActividad().ObtenerInternos(Areas, NombreBuscar, ApellidoPaternoBuscar, ApellidoMaternoBuscar, (short)AnioBusqueda, FolioBusqueda).Where(w =>

                                                                                                                                                                                                                     //FILTRA CON LA FECHA DEL SERVER
                                                                                                                                                                                                                     w.GRUPO_HORARIO.HORA_INICIO.Value.Day == Fechas.GetFechaDateServer.Day &&
                                                                                                                                                                                                                     w.GRUPO_HORARIO.HORA_INICIO.Value.Month == Fechas.GetFechaDateServer.Month &&
                                                                                                                                                                                                                     w.GRUPO_HORARIO.HORA_INICIO.Value.Year == Fechas.GetFechaDateServer.Year &&
                                                                                                                                                                                                                     w.GRUPO_HORARIO.HORA_INICIO.Value.Hour == Fechas.GetFechaDateServer.Hour &&

                                                                                                                                                                                                                     //FILTRA A LOS INTERNOS CON TRASLADOS EN PROCESO Ó ACTIVOS
                                                                                                                                                                                                                     (w.GRUPO_PARTICIPANTE.INGRESO.TRASLADO_DETALLE.Where(
                                                                                                                                                                                                                          wTD =>
                                                                                                                                                                                                                          wTD.TRASLADO.TRASLADO_FEC.Year == Fechas.GetFechaDateServer.Year &&
                                                                                                                                                                                                                          wTD.TRASLADO.TRASLADO_FEC.Month == Fechas.GetFechaDateServer.Month &&
                                                                                                                                                                                                                          wTD.TRASLADO.TRASLADO_FEC.Day == Fechas.GetFechaDateServer.Day &&
                                                                                                                                                                                                                          (wTD.TRASLADO.ID_ESTATUS == "EP" || wTD.TRASLADO.ID_ESTATUS == "AC")).Count() == 0) &&

                                                                                                                                                                                                                     //FILTRA A LOS INTERNOS CON EXCARCELACIONES EN PROCESO Ó ACTIVAS
                                                                                                                                                                                                                     (w.GRUPO_PARTICIPANTE.INGRESO.EXCARCELACION.Where(
                                                                                                                                                                                                                          wEXC =>
                                                                                                                                                                                                                          wEXC.PROGRAMADO_FEC.Value.Year == Fechas.GetFechaDateServer.Year &&
                                                                                                                                                                                                                          wEXC.PROGRAMADO_FEC.Value.Month == Fechas.GetFechaDateServer.Month &&
                                                                                                                                                                                                                          wEXC.PROGRAMADO_FEC.Value.Day == Fechas.GetFechaDateServer.Day &&
                                                                                                                                                                                                                          wEXC.ID_ESTATUS == "EP" || wEXC.ID_ESTATUS == "AC").Count() == 0)
                                                                                                                                                                                                                     ).ToList();


                            foreach (var imputado in imputados)
                            {
                                if (!ListaSeleccionados.Where(w =>
                                                              w.Anio == imputado.GRUPO_PARTICIPANTE.ING_ID_ANIO &&
                                                              w.Centro == imputado.GRUPO_PARTICIPANTE.ING_ID_CENTRO &&
                                                              w.IdImputado == imputado.GRUPO_PARTICIPANTE.ING_ID_IMPUTADO).Any())
                                {
                                    imputados_busqueda.Add(new InternosActividad()
                                    {
                                        Actividad   = imputado.GRUPO_PARTICIPANTE.ACTIVIDAD.DESCR,
                                        Anio        = (short)imputado.GRUPO_PARTICIPANTE.ING_ID_ANIO,
                                        Area        = (short)imputado.GRUPO_HORARIO.ID_AREA,
                                        Asistencia  = imputado.ASISTENCIA == 1 ? true : false,
                                        Centro      = (short)imputado.GRUPO_PARTICIPANTE.ING_ID_CENTRO,
                                        Expediente  = string.Format("{0}/{1}", imputado.GRUPO_PARTICIPANTE.ING_ID_ANIO, imputado.GRUPO_PARTICIPANTE.ING_ID_IMPUTADO),
                                        IdIngreso   = (short)imputado.GRUPO_PARTICIPANTE.ING_ID_INGRESO,
                                        IdImputado  = (short)imputado.GRUPO_PARTICIPANTE.ING_ID_IMPUTADO,
                                        Id_Grupo    = (short)imputado.GRUPO_PARTICIPANTE.ID_GRUPO,
                                        IdConsec    = (short)imputado.ID_CONSEC,
                                        Materno     = imputado.GRUPO_PARTICIPANTE.INGRESO.IMPUTADO.MATERNO,
                                        Paterno     = imputado.GRUPO_PARTICIPANTE.INGRESO.IMPUTADO.PATERNO,
                                        Nombre      = imputado.GRUPO_PARTICIPANTE.INGRESO.IMPUTADO.NOMBRE,
                                        NIP         = imputado.GRUPO_PARTICIPANTE.INGRESO.IMPUTADO.NIP,
                                        Ubicacion   = imputado.GRUPO_HORARIO.AREA.DESCR,
                                        Seleccionar = false,
                                        Responsable = string.Format("{1} {2} {0}", imputado.GRUPO_PARTICIPANTE.GRUPO.PERSONA.NOMBRE.TrimEnd(), imputado.GRUPO_PARTICIPANTE.GRUPO.PERSONA.PATERNO.TrimEnd(), imputado.GRUPO_PARTICIPANTE.GRUPO.PERSONA.MATERNO.TrimEnd())
                                    });
                                }
                            }
                            ListExpediente = imputados_busqueda;
                            if (ListExpediente.Count > 0)
                            {
                                EmptyBusquedaVisible = false;
                            }
                            else
                            {
                                EmptyBusquedaVisible = true;
                            }
                        }


                        catch (Exception ex)
                        {
                            StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al realizar la busqueda de participantes.", ex);
                        }
                    }
                    else
                    {
                        ListExpediente = new List <InternosActividad>();
                    }
                });

                VentanaBusqueda.ShowDialog();

                break;

            case "SeleccionarImputado":
                if (SelectedImputado != null)
                {
                    if (SelectedImputado.FotoInterno == null)
                    {
                        try
                        {
                            var ingreso_biometrico = new cIngresoBiometrico();
                            var placeholder        = new Imagenes().getImagenPerson();
                            var foto_ingreso       = ingreso_biometrico.Obtener(SelectedImputado.Anio, SelectedImputado.Centro, SelectedImputado.IdImputado, (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault();
                            var foto_seguimiento   = ingreso_biometrico.Obtener(SelectedImputado.Anio, SelectedImputado.Centro, SelectedImputado.IdImputado, (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO).FirstOrDefault();
                            SelectedImputadoFotoIngreso     = foto_ingreso != null ? foto_ingreso.BIOMETRICO : placeholder;
                            SelectedImputadoFotoSeguimiento = foto_seguimiento != null ? foto_seguimiento.BIOMETRICO : placeholder;
                        }
                        catch (Exception ex)
                        {
                            StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al obtener fotos del imputado seleccionado.", ex);
                        }
                    }
                }
                break;

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

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

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

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

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

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

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

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

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

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

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

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

            case "onBuscarPorNIP":
                var NIP = 0;
                try
                {
                    if (Int32.TryParse(NIPBuscar, out NIP))
                    {
                        SelectedCustodio = new cEmpleado().Obtener(NIP);

                        if (SelectedCustodio != null)
                        {
                            NombreCustodio  = SelectedCustodio.PERSONA.NOMBRE.TrimEnd();
                            PaternoCustodio = SelectedCustodio.PERSONA.PATERNO.TrimEnd();
                            MaternoCustodio = SelectedCustodio.PERSONA.MATERNO.TrimEnd();
                            AnioCustodio    = SelectedCustodio.REGISTRO_FEC.Value.Year.ToString();
                            IDCustodio      = SelectedCustodio.ID_EMPLEADO.ToString();
                            var consulta_foto_custodio = SelectedCustodio.PERSONA.PERSONA_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault();
                            FotoCustodio = consulta_foto_custodio != null ? consulta_foto_custodio.BIOMETRICO : new Imagenes().getImagenPerson();
                            CambiarMensajeNIP(enumMensajeNIP.ENCONTRADO);
                        }
                        else
                        {
                            CambiarMensajeNIP(enumMensajeNIP.NO_ENCONTRADO);
                        }
                    }
                }
                catch (Exception ex)
                {
                    VentanaBusqueda.Hide();
                    StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al obtener informacion de un custodio (Error al buscar por ID).", ex);
                }

                break;

            case "Autorizar":
                try
                {
                    var ingreso_ubicacion = new cIngresoUbicacion();
                    using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
                    {
                        IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
                    }))
                    {
                        foreach (var imputado in ListExpediente)
                        {
                        }

                        transaccion.Complete();
                    }
                }
                catch (Exception ex)
                {
                    StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al asignar el custodio seleccionado.", ex);
                }
                break;

            case "SeleccionarInternos":
                if (ListExpediente.Count > 0)
                {
                    var seleccionados       = ListExpediente.Where(w => w.Seleccionar).ToList();
                    var lista_seleccionados = seleccionados != null ? seleccionados : new List <InternosActividad>();
                    if (lista_seleccionados.Count > 0)
                    {
                        EmptySeleccionadosVisible = false;
                        ListaSeleccionados.AddRange(lista_seleccionados);
                        RaisePropertyChanged("ListaSeleccionados");
                    }

                    else
                    {
                        EmptySeleccionadosVisible = true;
                        await VentanaBusqueda.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.");
                    }
                }
                else
                {
                    await VentanaBusqueda.ShowMessageAsync("Validación", "No hay internos resultantes de la búsqueda. Por favor, intente más tarde ó ejecute una nueva búsqueda.");
                }
                break;

            case "RemoverInternos":
                if (ListaSeleccionados.Count > 0)
                {
                    var seleccionados       = ListaSeleccionados.Where(w => w.Seleccionar).ToList();
                    var lista_seleccionados = seleccionados != null ? seleccionados : new List <InternosActividad>();
                    if (lista_seleccionados.Count > 0)
                    {
                    }
                    else
                    {
                        await VentanaBusqueda.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.");
                    }
                }
                else
                {
                    await VentanaBusqueda.ShowMessageAsync("Validación", "No hay internos seleccionados.");
                }
                break;

            case "Limpiar":
                SelectedJustificacion = enumTipoSalida.TRASLADO;
                NombreCustodio        = "";
                PaternoCustodio       = "";
                MaternoCustodio       = "";
                AnioCustodio          = "";
                IDCustodio            = "";
                FotoCustodio          = new Imagenes().getImagenPerson();
                break;

            case "LimpiarClick":
                var placeholder_limpiar = new Imagenes().getImagenPerson();
                SelectedImputadoFotoIngreso     = placeholder_limpiar;
                SelectedImputadoFotoSeguimiento = placeholder_limpiar;
                NombreBuscar          = "";
                ApellidoPaternoBuscar = "";
                ApellidoMaternoBuscar = "";
                AnioBuscar            = "";
                FolioBuscar           = "";
                ListExpediente        = new List <InternosActividad>();
                EmptyBusquedaVisible  = true;
                break;
            }
        }