//NIP PARA DAR ENCONTRAR A LOS CUSTODIOS (AUSENTES) private async void CompararNIPAsistenciaCustodio(string nip) { try { ListResultadoCustodio = ListResultadoCustodio ?? new List <ResultadoBusquedaBiometricoCustodio>(); if (BuscarNIP != string.Empty) { long NIP = Convert.ToInt64(nip); //Se busca el custodio por medio del ID obtenido CustodioSelect = new cEmpleado().ObtenerEmpleadoPorDepartamento(NIP, (short)enumAreaTrabajo.COMANDANCIA); if (CustodioSelect != null) { ListResultadoCustodio.Add(new ResultadoBusquedaBiometricoCustodio() { //Se muestra la información del custodio encontrado Nombre = string.IsNullOrEmpty(CustodioSelect.PERSONA.NOMBRE) ? string.Empty : CustodioSelect.PERSONA.NOMBRE.TrimEnd(), CPaterno = string.IsNullOrEmpty(CustodioSelect.PERSONA.PATERNO) ? string.Empty : CustodioSelect.PERSONA.PATERNO.TrimEnd(), CMaterno = string.IsNullOrEmpty(CustodioSelect.PERSONA.MATERNO) ? string.Empty : CustodioSelect.PERSONA.MATERNO.TrimEnd(), IdPersona = CustodioSelect.ID_EMPLEADO, ENCONTRADO = true, Persona = CustodioSelect.PERSONA }); ImagenCustodio = new cPersonaBiometrico().ObtenerTodos(CustodioSelect.ID_EMPLEADO, (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).Any() ? new cPersonaBiometrico().ObtenerTodos(CustodioSelect.ID_EMPLEADO, (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault().BIOMETRICO : new Imagenes().getImagenPerson(); //SE ENCONTRO CUSTODIO CambiarMensajeNIP(enumMensajeNIP.ENCONTRADO); NIPCapturaVisible = false; } else { //NO SE ENCONTRO CUSTODIO CambiarMensajeNIP(enumMensajeNIP.NO_ENCONTRADO); } } else { //NIP VIENE VACIO CambiarMensajeNIP(enumMensajeNIP.NO_ENCONTRADO); } } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al obtener información.", ex); } }
//HUELLA PARA LOS CUSTODIOS private Task <bool> CompararHuellaCustodio(byte[] Huella = null, enumTipoBiometrico?Finger = null) { try { var bytesHuella = FingerPrintData != null?FeatureExtraction.CreateFmdFromFid(FingerPrintData, Constants.Formats.Fmd.ANSI).Data.Bytes : null ?? Huella; var verifyFinger = Finger ?? (DD_DedoHuella.HasValue ? DD_DedoHuella.Value : enumTipoBiometrico.INDICE_DERECHO); ImagenCustodio = null; ListResultadoCustodio = null; TextoRegistroEdificioCustodio = null; if (bytesHuella == null) { Application.Current.Dispatcher.Invoke((System.Action)(delegate { if (Finger == null) { ScannerMessage = "Vuelve a capturar las huellas"; } else { ScannerMessage = "Siguiente Huella"; } FocusAceptarBusquedaHuella = true; ColorMensaje = new SolidColorBrush(Colors.DarkOrange); ShowLinea = Visibility.Collapsed; })); } Application.Current.Dispatcher.Invoke((System.Action)(delegate { ScannerMessage = "Procesando..."; ColorMensaje = new SolidColorBrush(System.Windows.Media.Color.FromRgb(51, 115, 242)); FocusAceptarBusquedaHuella = false; })); var Service = new BiometricoServiceClient(); if (Service == null) { Application.Current.Dispatcher.Invoke((System.Action)(delegate { ScannerMessage = "Error en el servicio de comparación"; FocusAceptarBusquedaHuella = true; ColorMensaje = new SolidColorBrush(Colors.Red); ShowLinea = Visibility.Collapsed; })); } var CompareResult = Service.CompararHuellaPersona(new ComparationRequest { BIOMETRICO = bytesHuella, ID_TIPO_BIOMETRICO = verifyFinger, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, ID_TIPO_PERSONA = enumTipoPersona.PERSONA_EMPLEADO, ID_CENTRO = GlobalVar.gCentro }); //var CompareResult = Service.CompararHuellaPersona(new ComparationRequest { BIOMETRICO = bytesHuella, ID_TIPO_BIOMETRICO = verifyFinger, ID_TIPO_FORMATO = enumTipoFormato.FMTO_DP, ID_TIPO_PERSONA = enumTipoPersona.PERSONA_EMPLEADO }); if (CompareResult.Identify) { ListResultadoCustodio = ListResultadoCustodio ?? new List <ResultadoBusquedaBiometricoCustodio>(); if (CompareResult.Result.Count() > 1) { TextoRegistroEdificioCustodio = "NOTA: Se encontró más de una coincidencia, por favor intente de nuevo"; ScannerMessage = ""; return(TaskEx.FromResult(false)); } else { foreach (var item in CompareResult.Result) { var custodio = new cPersonaBiometrico().GetData().Where(w => w.ID_PERSONA == item.ID_PERSONA && (w.ID_TIPO_BIOMETRICO == (DD_DedoHuella.HasValue ? (short)DD_DedoHuella.Value : (short)enumTipoBiometrico.INDICE_DERECHO) && w.ID_FORMATO == (short)enumTipoFormato.FMTO_DP)).OrderBy(o => o.ID_PERSONA).FirstOrDefault(); ShowContinue = Visibility.Collapsed; if (custodio == null) { continue; } Application.Current.Dispatcher.Invoke((System.Action)(delegate { var custodio_biometrico = custodio.PERSONA; var FotoBusquedaHuella = new Imagenes().ConvertByteToBitmap(new Imagenes().getImagenPerson()); if (custodio_biometrico != null) { if (custodio_biometrico.PERSONA_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO && w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG).Any()) { FotoBusquedaHuella = new Imagenes().ConvertByteToBitmap(custodio_biometrico.PERSONA_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO && w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG).SingleOrDefault().BIOMETRICO); } else if (custodio_biometrico.PERSONA_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO && w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG).Any()) { FotoBusquedaHuella = new Imagenes().ConvertByteToBitmap(custodio_biometrico.PERSONA_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO && w.ID_FORMATO == (short)enumTipoFormato.FMTO_JPG).SingleOrDefault().BIOMETRICO); } } ListResultadoCustodio.Add(new ResultadoBusquedaBiometricoCustodio() { IdPersona = custodio.PERSONA.ID_PERSONA, Nombre = string.IsNullOrEmpty(custodio.PERSONA.NOMBRE) ? string.Empty : custodio.PERSONA.NOMBRE.TrimEnd(), CPaterno = string.IsNullOrEmpty(custodio.PERSONA.PATERNO) ? string.Empty : custodio.PERSONA.PATERNO.TrimEnd(), CMaterno = string.IsNullOrEmpty(custodio.PERSONA.MATERNO) ? string.Empty : custodio.PERSONA.MATERNO.TrimEnd(), ENCONTRADO = true, Persona = custodio.PERSONA }); })); ImagenCustodio = new cPersonaBiometrico().ObtenerTodos(custodio.ID_PERSONA, (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).Any() ? new cPersonaBiometrico().ObtenerTodos(custodio.ID_PERSONA, (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault().BIOMETRICO : new Imagenes().getImagenPerson(); } } foreach (var llenar in ListResultadoCustodio) { var igual = ListaCustodio.Where(w => w.IdPersona == llenar.IdPersona).Count(); if (igual == 0) { ListaCustodio.Add(llenar); } else { llenar.ENCONTRADO = false; } ListResultadoCustodio = new List <ResultadoBusquedaBiometricoCustodio>(ListResultadoCustodio); ShowContinue = Visibility.Collapsed; if (ListResultadoCustodio.Any()) { Application.Current.Dispatcher.Invoke((System.Action)(delegate { if (igual > 0) { ScannerMessage = "Registro repetido"; FocusAceptarBusquedaHuella = true; ColorMensaje = new SolidColorBrush(Colors.Orange); } else if (!CancelKeepSearching) { ScannerMessage = "Registro encontrado"; FocusAceptarBusquedaHuella = true; ColorMensaje = new SolidColorBrush(Colors.Green); } })); if (Finger != null) { Service.Close(); } return(TaskEx.FromResult(false)); } } } else { Application.Current.Dispatcher.Invoke((System.Action)(delegate { if (!CancelKeepSearching) { ScannerMessage = "Huella no encontrada"; ColorMensaje = new SolidColorBrush(Colors.Red); FocusAceptarBusquedaHuella = true; ImagenCustodio = ImagenPlaceHolder.getImagenPerson(); } })); IsSucceded = false; if (!CancelKeepSearching) { SelectedRegistroCustodio = null; } PropertyImage = null; } Service.Close(); FingerPrintData = null; return(TaskEx.FromResult(true)); } catch (System.ServiceModel.EndpointNotFoundException ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "No se pudo conectar al servidor de huellas", ex); return(TaskEx.FromResult(false)); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cargar búsqueda", ex); return(TaskEx.FromResult(false)); } }
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); } }
private void OnLoad(LeerCustodioEdificio Window) { #region [Huellas Digitales] var myDoubleAnimation = new DoubleAnimation(); myDoubleAnimation.From = 0; myDoubleAnimation.To = 185; myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(1.3)); myDoubleAnimation.AutoReverse = true; myDoubleAnimation.RepeatBehavior = RepeatBehavior.Forever; Storyboard.SetTargetName(myDoubleAnimation, "Ln"); Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(Canvas.TopProperty)); var myStoryboard = new Storyboard(); myStoryboard.Children.Add(myDoubleAnimation); myStoryboard.Begin(Window.Ln); ColorNIPAprobacion = new SolidColorBrush(Colors.DarkBlue); MensajeNipAprobacion = "Capture NIP"; MarkCheck = "🔍"; ImagenPlaceHolder = new Imagenes(); ImagenCustodio = ImagenPlaceHolder.getImagenPerson(); #endregion Window.Closed += (s, e) => { try { if (OnProgress == null) { return; } if (!IsSucceded) { SelectedRegistroCustodio = null; } OnProgress.Abort(); CancelCaptureAndCloseReader(OnCaptured); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cargar búsqueda", ex); } }; if (CurrentReader != null) { CurrentReader.Dispose(); CurrentReader = null; } CurrentReader = Readers[0]; if (CurrentReader == null) { return; } if (!OpenReader()) { Window.Close(); } if (!StartCaptureAsync(OnCaptured)) { Window.Close(); } OnProgress = new Thread(() => InvokeDelegate(Window)); Application.Current.Dispatcher.Invoke((System.Action)(delegate { ScannerMessage = "Capture Huella"; ColorMensaje = new SolidColorBrush(Colors.Green); ColorNIPAprobacion = new SolidColorBrush(Colors.DarkBlue); })); GuardandoHuellas = true; }
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 }