private void UsuarioMantenimientoPersonal_Click(object sender, RoutedEventArgs e)
        {
            Usuario c = new Usuario();

            c = (Usuario)App.Current.Properties["usuarioSesion"];
            PUsuario pusuario = new PUsuario();

            pusuario.txtIndentificacion.Text = c.Id;
            pusuario.txtNombre.Text          = c.Nombre;
            pusuario.txtContrasena.Password  = c.Contrasena;
            pusuario.txtUsuarioGeneral.Text  = c.UsuarioGeneral;
            pusuario.cboTipo.Text            = c.Tipo;

            pusuario.txtIndentificacion.IsReadOnly = true;
            pusuario.btnVolver.Visibility          = Visibility.Collapsed;
            pusuario.cboTipo.IsEnabled             = false;
            pusuario.gridForm.Visibility           = Visibility.Visible;
            pusuario.gridTabla.Visibility          = Visibility.Collapsed;
            frame.Content = pusuario;
        }
예제 #2
0
        public override void Ejecutar()
        {
            //Validar usuario
            PUsuario usuarioPer = new PUsuario();

            Entidades.EUsuario usuario = null;
            bool permiteAcceso         = true;

            //
            if (string.IsNullOrEmpty(solicitud.IdUsuario) || string.IsNullOrEmpty(solicitud.Clave))
            {
                log.Warn("Credenciales de usuario incompletas.");
                Telemetria.Instancia.Id(Common.Config.Terminal).Usuario(solicitud.IdUsuario).AgregaMetrica(new Evento("IniciasSesionInvalido"));
                iu.PanelOperador.MensajeOperador = "Campos faltantes.";
                iu.PanelLogin.Clave = string.Empty;
            }
            else
            {
                Respuesta respuesta = new Respuesta();
                usuario = usuarioPer.Autenticar(solicitud.IdUsuario, solicitud.Clave, out respuesta);
                if (respuesta.Valida)
                {
                    ////Solicitud de actualización
                    //Task<MessageResult> r = iu.PanelDispositivo.VerificarActualizacion();
                    //r.Wait();

                    //if (r.Result == MessageResult.None)
                    //{
                    //Cargue de parametros.
                    PParametros parametrosPer = new PParametros();
                    PErrores    erroresPer    = new PErrores();
                    respuesta = new Respuesta();

                    Entidades.EParametros parametros = parametrosPer.ObetenerParametros(out respuesta);
                    Entidades.EImpuestos  impuestos  = new Entidades.EImpuestos();
                    impuestos.Poblar(parametros);

                    Dictionary <int, EError> errores = erroresPer.ObtenerListaErrores();
                    if (respuesta.Valida)
                    {
                        Entorno.Instancia.Parametros = parametros;
                        Entorno.Instancia.Impuestos  = impuestos;
                        Entorno.Instancia.setMensajesError(errores);
                        CargarParametros();
                        log.Info("[CmdIniciarSesion]: Parametros establecidos correctamente.");


                        //Información del operador.
                        Entorno.Instancia.Usuario = usuario;

                        //Terminal
                        respuesta = new Respuesta(false);
                        ETerminal terminal = new PTerminal().BuscarTerminalPorCodigo("100003", out respuesta);
                        if (respuesta.Valida)
                        {
                            try
                            {
                                bool defImpuestoCompuesto = Entorno.Instancia.Parametros.ObtenerValorParametro <bool>("pdv.definicion_impuesto_compuesta");
                                if (defImpuestoCompuesto)
                                {
                                    if (!parametrosPer.VerificarExixteTablaImpuestos())
                                    {
                                        permiteAcceso = false;
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                log.ErrorFormat("[CmdIniciarSesion] {0}", ex.Message);
                                Telemetria.Instancia.AgregaMetrica(new Excepcion(ex));
                            }

                            if (permiteAcceso)
                            {
                                //Version assemblyVersion = Assembly.GetEntryAssembly().GetName().Version;
                                //string version = String.Format("{0}.{1}.{2}.{3}", assemblyVersion.Major, assemblyVersion.Minor, assemblyVersion.Build, assemblyVersion.Revision);
                                //string logInicioApp = string.Format("--> INICIO DE SESION, VERSION, {0} <--", version);
                                //log.Info(logInicioApp);


                                Entorno.Instancia.Terminal = terminal;

                                iu.PanelOperador.CodigoTerminal = terminal.Codigo;
                                iu.PanelOperador.NombreUsuario  = usuario.Nombre;

                                //
                                string msg = string.Format("[CmdIniciarSesion]: Sesión iniciada correctamente. {0}", usuario.ToString());
                                log.Info(msg);

                                // se debe preguntar por la interfaz que se encuentra en las configuraciones de la aplicación.

                                // modo caracter
                                //Solicitudes.SolicitudPanelVenta solicitudPanelventa = new Solicitudes.SolicitudPanelVenta(Enums.Solicitud.Vender);
                                //Reactor.Instancia.Procesar(solicitudPanelventa);

                                // modo touch
                                Solicitudes.SolicitudPanelVenta solicitudPanelventa = new Solicitudes.SolicitudPanelVenta(Enums.Solicitud.Vender);
                                Reactor.Instancia.Procesar(solicitudPanelventa);
                                //iu.PanelLogin.IdUsuario = "";
                                //iu.PanelLogin.Clave = "";
                                Entorno.Instancia.Vista.PanelOperador.MensajeOperador = "";

                                //Ids de mis tablas de acumulados
                                //Entorno.Instancia.IdsAcumulados = new PVenta().IdsAcumulados(Entorno.Instancia.Usuario, Entorno.Instancia.Terminal);
                                ////Clientes
                                //Entorno.Instancia.Clientes = new PClientes().GetAllClientes();
                                ////Codigos de recogida
                                //Entorno.Instancia.CodigosRecogida = new PRecogida().GetCodigosRecogida(out respuesta);
                                ////Tipos de Venta Especial
                                //Entorno.Instancia.TipoVentaEspecial = new PVentaEspecial().GetAllVentaEspecial(Entorno.Instancia.Clientes);

                                //// Ajustes
                                //Entorno.Instancia.TiposAjustes = new PTiposAjuste().GetAllTiposAjuste();

                                //Telemetria.Instancia.Id(Entorno.Instancia.Terminal.Codigo).Usuario(Entorno.Instancia.Usuario.Usuario).AgregaMetrica(new Evento("IniciarSesion"));
                                if (iu.PanelVentas != null)
                                {
                                    iu.PanelVentas.VisorEntrada     = "";
                                    iu.PanelVentas.VisorFechaActual = DateTime.Now.ToString("dd/MM/yyyy");
                                }
                            }
                            else
                            {
                                log.Warn("Informacion en base de Datos no Concuerda con Parametros.");
                                Telemetria.Instancia.Id(Common.Config.Terminal).Usuario(solicitud.IdUsuario).AgregaMetrica(new Evento("IniciasSesionInvalido"));
                                iu.PanelOperador.MensajeOperador = respuesta.Mensaje;
                                iu.PanelLogin.Clave = string.Empty;
                            }
                        }
                        else
                        {
                            Telemetria.Instancia.Id(Common.Config.Terminal).Usuario(solicitud.IdUsuario).AgregaMetrica(new Evento("TerminalInvalida"));
                            log.ErrorFormat("[CmdIniciarSesion] No se puede iniciar la aplicación ya que no se encontró terminal asociada al código \"{0}\"", Common.Config.Terminal);
                            Entorno.Vista.PanelOperador.MensajeOperador = respuesta.Mensaje;
                        }
                    }
                    else
                    {
                        Entorno.Vista.PanelOperador.MensajeOperador = respuesta.Mensaje;
                    }
                    //}
                    //else if (r.Result == MessageResult.Affirmative)
                    //{
                    //    log.Info("[CmdIniciarSesion] Proceso de actualización en proceso, se cancela el inicio de sesión.");
                    //}
                    //}
                    //else
                    //{
                    //    log.Warn("Credenciales de usuario invalidas.");
                    //    Telemetria.Instancia.Id(Common.Config.Terminal).Usuario(solicitud.IdUsuario).AgregaMetrica(new Evento("IniciasSesionInvalido"));
                    //    iu.PanelOperador.MensajeOperador = respuesta.Mensaje;
                    //    iu.PanelLogin.Clave = string.Empty;
                    //}
                }
            }
        }
        public override void Ejecutar()
        {
            try
            {
                Respuesta respuesta = new Respuesta();

                // validar contraseña
                string password        = Entorno.Instancia.Vista.PanelIntervencion.VisorEntrada;
                string tokenSupervisor = Entorno.Instancia.Usuario.ClaveSupervisor;

                PUsuario usuarioPer = new PUsuario();

                if (!string.IsNullOrEmpty(password))
                {
                    Entidades.EUsuario supervisor = usuarioPer.ValidarClaveSupervisor(Entorno.Instancia.Usuario.Usuario, password, out respuesta);

                    if (respuesta.Valida)
                    {
                        Entorno.Instancia.Usuario.UsuarioSupervisor = supervisor;
                        if (Solicitud.TipoSolicitud == Enums.Solicitud.ValidarIntervencionPrestamo)
                        {
                            Telemetria.Instancia.AgregaMetrica(new Evento("PanelPrestamos"));

                            log.Info("[CmdPanelPrestamo] Mostrando panel prestamos.");
                            if (Config.ViewMode == InternalSettings.ModoConsola)
                            {
                                Solicitudes.SolicitudPanelPrestamos solPrestamos = new Solicitudes.SolicitudPanelPrestamos(Enums.Solicitud.Prestamos, codigoRecogida);
                                Reactor.Instancia.Procesar(solPrestamos);
                            }
                            else
                            {
                                iu.MostrarModalRecogida();
                                iu.PanelOperador.MensajeOperador = Entorno.Instancia.Vista.PanelIntervencion.CodigoRecogida;
                            }
                        }
                        else if (Solicitud.TipoSolicitud == Enums.Solicitud.ValidarIntervencionRecogida)
                        {
                            if (string.IsNullOrEmpty(codigoRecogida))
                            {
                                return;
                            }

                            Telemetria.Instancia.AgregaMetrica(new Evento("PanelRecogidas"));

                            log.Info("[CmdPanelRecogida] Mostrando panel recogidas.");
                            if (Config.ViewMode == InternalSettings.ModoConsola)
                            {
                                Solicitudes.SolicitudPanelRecogidas solRecogida = new Solicitudes.SolicitudPanelRecogidas(Enums.Solicitud.Recogida, codigoRecogida);
                                Reactor.Instancia.Procesar(solRecogida);
                            }
                            else
                            {
                                iu.MostrarModalRecogida();
                                iu.PanelOperador.MensajeOperador = Entorno.Instancia.Vista.PanelIntervencion.CodigoRecogida;
                            }
                        }

                        try
                        {
                            //Entorno.Instancia.Impresora?.AbrirCajon();
                        }
                        catch (Exception ex)
                        {
                            Entorno.Instancia.Vista.PanelOperador.MensajeOperador = "No se pudo abrir el cajón monedero.";
                            log.Info("Error al abrir cajón monedero: " + ex.Message);
                            Telemetria.Instancia.AgregaMetrica(new Excepcion(ex));
                        }
                    }
                    else
                    {
                        //
                        MostrarPanelVenta();
                        iu.PanelVentas.VisorMensaje = "Contraseña incorrecta.";
                    }
                }
                else
                {
                    iu.PanelIntervencion.VisorMensaje = "Ingrese contraseña.";
                    log.WarnFormat("Se debe ingresar contraseña de intervención");

                    if (Reactor.Instancia.EstadoFSMActual == EstadosFSM.ValidarIntervencionPrestamo)
                    {
                        var solicitudOperacion = new SolicitudValidarIntervencion(Enums.Solicitud.SolicitarIntervencionPrestamo, Entorno.Instancia.Vista.PanelIntervencion.VisorEntrada, Entorno.Instancia.Vista.PanelIntervencion.CodigoRecogida);
                        Reactor.Instancia.Procesar(solicitudOperacion);
                    }
                    else if (Reactor.Instancia.EstadoFSMActual == EstadosFSM.ValidarIntervencionRecogida)
                    {
                        var solicitudOperacion = new SolicitudValidarIntervencion(Enums.Solicitud.SolicitarIntervencionRecogida, Entorno.Instancia.Vista.PanelIntervencion.VisorEntrada, Entorno.Instancia.Vista.PanelIntervencion.CodigoRecogida);
                        Reactor.Instancia.Procesar(solicitudOperacion);
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error($"[Ejecutar] Error: {ex.Message}");
                throw;
            }
        }