private async void CentroCambio(short id_centro)
        {
            var _error = false;

            StaticSourcesViewModel.ShowProgressLoading("Por favor espere un momento...");
            try
            {
                CargarAlmacenes(id_centro);
                if (SelectedAlmacen != null)
                {
                    SeleccionarFechasAgenda(SelectedAlmacen.ID_ALMACEN, SelectedMes, SelectedAnio);
                }
                StaticSourcesViewModel.CloseProgressLoading();
            }
            catch (Exception ex)
            {
                _error = true;
            }
            if (_error)
            {
                StaticSourcesViewModel.CloseProgressLoading();
                await _dialogCoordinator.ShowMessageAsync(this, "Error", "Hubo un error al cargar los catalogos. Favor de contactar al administrador");
            }
        }
        public Task <bool> Scann(PdfViewer obj = null)
        {
            scannedDoc = new List <string>();
            PDFViewer  = obj;
            Application.Current.Dispatcher.Invoke((System.Action)(delegate
            {
                obj.Visibility = Visibility.Collapsed;
            }));

            StaticSourcesViewModel.ShowMensajeProgreso("Espere Por Favor, Escaneando...");
            try
            {
                var morePages         = true;
                var commonDialogClass = new CommonDialog();
                var scannerDevice     = commonDialogClass.ShowSelectDevice(WiaDeviceType.ScannerDeviceType, false);
                var pagecount         = 0;

                if (scannerDevice != null)
                {
                    scannerDevice.Properties["Pages"].set_Value(1);
                    scannerDevice.Properties["Document Handling Select"].set_Value(1);

                    var document = new PdfDocument();
                    while (morePages)
                    {
                        try
                        {
                            var scannnerItem = scannerDevice.Items[1];
                            AdjustScannerSettings(scannnerItem, 150, 0, 0, 1250, 1700, 0, 0, WiaImageIntent.ColorIntent);

                            var img = (ImageFile)scannnerItem.Transfer("{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}");
                            if (img != null)
                            {
                                document.Pages.Add(new PdfPage());
                                var xgr  = XGraphics.FromPdfPage(document.Pages[pagecount]);
                                var Ximg = XImage.FromBitmapSource(ConvertScannedImage(img));

                                xgr.DrawImage(Ximg, 0, 0, 595, 842);

                                pagecount++;
                            }

                            WIA.Property documentHandlingSelect = null;
                            WIA.Property documentHandlingStatus = null;

                            foreach (WIA.Property prop in scannerDevice.Properties)
                            {
                                if (prop.PropertyID == 3088)
                                {
                                    documentHandlingSelect = prop;
                                }

                                if (prop.PropertyID == 3087)
                                {
                                    documentHandlingStatus = prop;
                                }
                            }

                            morePages = false;

                            if (documentHandlingSelect != null)
                            {
                                if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & 0x00000001) != 0)
                                {
                                    morePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & 0x00000001) != 0);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            if (pagecount <= 0)
                            {
                                Application.Current.Dispatcher.Invoke((System.Action)(delegate
                                {
                                    if (ex.Message == "Exception from HRESULT: 0x80210003")
                                    {
                                        StaticSourcesViewModel.Mensaje("Digitalización", "Revise que la bandeja tenga hojas", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION);
                                    }
                                    else
                                    if (ex.Message == "Value does not fall within the expected range.")
                                    {
                                        StaticSourcesViewModel.Mensaje("Digitalización", "*- Revise que el escáner este encendido.\n*- Revise que el escáner este bien conectado", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION);
                                    }
                                    else
                                    {
                                        StaticSourcesViewModel.Mensaje("Digitalización", "Hay problemas para conectarse con el escaner", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION);
                                    }
                                }));
                            }

                            morePages = false;
                        }
                    }

                    if (pagecount > 0)
                    {
                        fileNamepdf = Path.GetTempPath() + Path.GetRandomFileName().Split('.')[0] + ".pdf";

                        document.Save(fileNamepdf);

                        ScannedDocument = File.ReadAllBytes(fileNamepdf);

                        Application.Current.Dispatcher.Invoke((System.Action)(delegate
                        {
                            obj.LoadFile(fileNamepdf);
                            obj.Visibility = Visibility.Visible;
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                Application.Current.Dispatcher.Invoke((System.Action)(delegate
                {
                    if (ex.Message.Contains("HRESULT: 0x80210015"))
                    {
                        StaticSourcesViewModel.Mensaje("Digitalización", "*- No tienes ningun escaner instalado.\n*- Revise que el escáner este encendido.\n*- Revise que el escáner este bien conectado", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION);
                    }
                    if (ex.Message.Contains("HRESULT: 0x80070021"))
                    {
                        StaticSourcesViewModel.Mensaje("Digitalización", "Hay problemas para conectarse con el escaner", StaticSourcesViewModel.enumTipoMensaje.MENSAJE_INFORMACION);
                    }
                }));
            }
            StaticSourcesViewModel.CloseMensajeProgreso();
            return(TaskEx.FromResult(true));
        }
        //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));
            }
        }
        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;
        }
Ejemplo 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);
            }
        }
Ejemplo 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
        }
Ejemplo n.º 7
0
        private async Task CargarInformacionAwaitable()
        {
            //Vacia datos a propiedades
            limpiarCampos();


            ID          = SelectedProducto.ID_PRODUCTO;
            Nombre      = SelectedProducto.NOMBRE;
            Descripcion = SelectedProducto.DESCRIPCION;
            if (SelectedProducto.PRODUCTO_IMAGEN != null)
            {
                ImagenData = SelectedProducto.PRODUCTO_IMAGEN.IMAGEN;
            }
            Activo = (SelectedProducto.ACTIVO == "S") ? true : false;

            if (SelectedProducto.ID_CATEGORIA.HasValue)
            {
                SelectedProducto_Categoria = Producto_Categorias.FirstOrDefault(f => f.ID_CATEGORIA == SelectedProducto.ID_CATEGORIA.Value);
            }
            if (SelectedProducto.ID_SUBCATEGORIA.HasValue || SelectedProducto_Categoria.PRODUCTO_SUBCATEGORIA.Count > 0)
            {
                IsSubcategoriaVisible = true;
                StaticSourcesViewModel.ShowProgressLoading("Espere un momento...");
                await Task.Factory.StartNew(() =>
                {
                    CargarSubCategoria(selectedProducto_Categoria.ID_CATEGORIA);
                })
                .ContinueWith((prevTask) => {
                    if (SelectedProducto.ID_SUBCATEGORIA.HasValue)
                    {
                        SelectedProducto_SubcategoriaValue = Producto_Subcategorias.FirstOrDefault(f => f.ID_SUBCATEGORIA == SelectedProducto.ID_SUBCATEGORIA.Value).ID_SUBCATEGORIA;
                    }
                    else
                    {
                        SelectedProducto_SubcategoriaValue = -1;
                    }
                    IsSubcategoriaVisible = true;
                    setValidationRules(true);
                });

                StaticSourcesViewModel.CloseProgressLoading();
            }
            else
            {
                IsSubcategoriaVisible = false;
                setValidationRules(false);
            }
            if (SelectedProducto.ID_PRESENTACION.HasValue)
            {
                SelectedProducto_Presentacion = Producto_Presentaciones.FirstOrDefault(f => f.ID_PRESENTACION == SelectedProducto.ID_PRESENTACION.Value);
            }
            if (SelectedProducto.ID_UNIDAD_MEDIDA.HasValue)
            {
                SelectedProducto_Unidad_Medida = Producto_Unidades_Medida.FirstOrDefault(f => f.ID_UNIDAD_MEDIDA == SelectedProducto.ID_UNIDAD_MEDIDA.Value);
            }
            //hay que cambiar el tipo de llenado porque es asincrono
            selectedAlmacen_Grupo = Almacen_Grupos.FirstOrDefault(w => w.ID_ALMACEN_GRUPO == SelectedProducto.ALMACEN_TIPO_CAT.First().ID_ALMACEN_GRUPO);
            RaisePropertyChanged("SelectedAlmacen_Grupo");
            IsGrupoDefinido = true;
            await CargarAlmacen_Tipos_CatAwaitable(selectedAlmacen_Grupo.ID_ALMACEN_GRUPO, SelectedProducto.ALMACEN_TIPO_CAT.ToList());

            setValidationRules(false);
        }