예제 #1
0
 public CmdPanelRecogida(ISolicitud solicitud) : base(solicitud)
 {
     this.Solicitud = solicitud as Solicitudes.SolicitudPanelRecogidas;
     codigoRecogida = Solicitud.CodigoRecogida;
 }
예제 #2
0
        public override void Ejecutar()
        {
            try
            {
                Entorno.Instancia.Recogida = null;
                Entorno.Instancia.Prestamo = null;

                if (Solicitud.TipoSolicitud == Enums.Solicitud.SolicitarIntervencionRecogida)
                {
                    int solicitaIntervencionRecogida = Entorno.Instancia.Parametros.ObtenerValorParametro <int>("pdv.intervencion.recogidas");

                    switch (solicitaIntervencionRecogida)
                    {
                    case 0:
                        Entorno.Instancia.Recogida = null;

                        Entorno.Instancia.Vista.PanelOperador.MensajeOperador = "No se pueden realizar recogidas.";
                        Solicitudes.SolicitudVolver volver = new Solicitudes.SolicitudVolver(Enums.Solicitud.Volver);
                        Reactor.Instancia.Procesar(volver);
                        break;

                    case 1:
                        if (Config.ViewMode == InternalSettings.ModoConsola)
                        {
                            IniciarRecogida();

                            log.Info("[CmdPanelIntervencion] Mostrando panel intervención.");
                            iu.MostrarPanelIntervencion(Solicitud.CodigoRecogida);
                            iu.PanelIntervencion.VisorEntrada = string.Empty;
                            iu.PanelIntervencion.VisorMensaje = string.Empty;
                        }
                        break;

                    case 2:
                        Solicitudes.SolicitudPanelRecogidas panelRecogida = new Solicitudes.SolicitudPanelRecogidas(Enums.Solicitud.Recogida, CodigoRecogida);
                        Reactor.Instancia.Procesar(panelRecogida);
                        break;

                    default:
                        log.Error("[CmdPanelIntervencion] Intervención Recogida: Opción inválida.");
                        break;
                    }
                }
                else if (Solicitud.TipoSolicitud == Enums.Solicitud.SolicitarIntervencionPrestamo)
                {
                    int solicitaIntervencionPrestamos = Entorno.Instancia.Parametros.ObtenerValorParametro <int>("pdv.intervencion.prestamos");

                    switch (solicitaIntervencionPrestamos)
                    {
                    case 0:
                        Entorno.Instancia.Prestamo = null;

                        Entorno.Instancia.Vista.PanelOperador.MensajeOperador = "No se pueden realizar prestamos.";
                        Solicitudes.SolicitudVolver volver = new Solicitudes.SolicitudVolver(Enums.Solicitud.Volver);
                        Reactor.Instancia.Procesar(volver);
                        break;

                    case 1:
                        if (Config.ViewMode == InternalSettings.ModoConsola)
                        {
                            log.Info("[CmdPanelIntervencion] Mostrando panel intervención.");
                            iu.MostrarPanelIntervencion(Solicitud.CodigoRecogida);
                            iu.PanelIntervencion.VisorEntrada = string.Empty;
                            iu.PanelIntervencion.VisorMensaje = string.Empty;
                        }
                        break;

                    case 2:
                        Solicitudes.SolicitudPanelPrestamos panelRecogida = new Solicitudes.SolicitudPanelPrestamos(Enums.Solicitud.Prestamos, CodigoRecogida);
                        Reactor.Instancia.Procesar(panelRecogida);
                        break;

                    default:
                        log.Error("[CmdPanelIntervencion] Intervención Prestamo: Opción inválida.");
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error($"[CmdPanelIntervencion] Error { ex.Message }");
            }
        }
        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;
            }
        }