Beispiel #1
0
    //operaciones

    //redefine el metodo de la clase base
    public override void Ejecutar()      //realiza una transaccion
    {
        bool efectivoDispensado = false; //el efectivo no se ha dispensado aun

        //la transaccion no se ha cancelado aun
        bool transaccionCancelada = false;

        //itera hasta que se dispense efectivo o el usuario cancele
        do
        {
            //obtiene el monto elegido por el usuario
            int seleccion = MostrarMenuDeMontos();

            //comprueba si el usuario eligio un monto de retiro o cancelo
            if (seleccion != CANCELO)
            {
                //establece monto al monto seleccionado en dolares
                monto = seleccion;

                //obtiene el saldo disponible en la cuenta involucrada
                decimal saldoDisponible = BaseDatos.ObtenerSaldoDisponible(NumeroCuenta);

                //comprueba si el usuario tiene suficiente dinero
                if (monto <= saldoDisponible)
                {
                    //comprueba si el dispensador de efectivo tiene suficiente dinero
                    if (dispensadorEfectivo.HaySuficienteEfectivoDisponible(monto))
                    {
                        //carga a la cuenta para reflejar el retiro
                        BaseDatos.Cargar(NumeroCuenta, monto);

                        dispensadorEfectivo.DispensarEfectivo(monto); //dispensa efectivo
                        efectivoDispensado = true;                    //se dispenso efectivo

                        //instruye al usuario para que tome el efectivo
                        PantallaUsuario.MostrarLineaMensaje("\nPor favor tome su efectivo " +
                                                            "del dispensador.");
                    }

                    else //el dispensador no tiene suficiente efectivo
                    {
                        PantallaUsuario.MostrarLineaMensaje("\nNo hay suficiente dinero " +
                                                            "disponible en el ATM\n\nPor favor elija un monto mas pequeño.");
                    }
                }

                else //no hay suficiente dinero disponible en la cuenta del usuario
                {
                    PantallaUsuario.MostrarLineaMensaje("\nNo hay suficiente dinero disponible" +
                                                        "en su cuenta\n\nPor favor elija un monto mas pequeño.");
                }
            }

            else
            {
                PantallaUsuario.MostrarLineaMensaje("\nCancelando la transaccion...");
                transaccionCancelada = true; //el usuario cancelo la transaccion
            }
        } while ((!efectivoDispensado) && (!transaccionCancelada));
    }
Beispiel #2
0
        public override void Ejecutar()
        {
            decimal saldoDisponible = BaseDatos.GetSaldoDisponible(NumeroCuenta);
            decimal saldoTotal      = BaseDatos.GetSaldoDisponible(NumeroCuenta);

            PantallaUsuario.MostrarLineaMensaje("\nInformacion del Saldo: ");
            PantallaUsuario.MostrarMensaje(" - Saldo Disponible: ");

            PantallaUsuario.MostrarMontoEnDolares(saldoDisponible);
            PantallaUsuario.MostrarMensaje("\n - Saldo total: ");
            PantallaUsuario.MostrarMontoEnDolares(saldoTotal);
            PantallaUsuario.MostrarLineaMensaje("");
        }
Beispiel #3
0
    //muestra un menu de montos para retirar y la opcion para cancelar
    //devuelve el monto elegido o 6 si el usuario elije cancelar
    private int MostrarMenuDeMontos()
    {
        int eleccionUsuario = 0; //almacena el valor devuelto

        //arreglo de montos que corresponden a los numeros del menu
        int[] montos = { 0, 20, 40, 60, 100, 200 };

        //itera mientras no se haya realizado una seleccion valida
        while (eleccionUsuario == 0)
        {
            PantallaUsuario.MostrarLineaMensaje("\nOpciones de retiro:");
            PantallaUsuario.MostrarLineaMensaje("1 - $20");
            PantallaUsuario.MostrarLineaMensaje("2 - $40");
            PantallaUsuario.MostrarLineaMensaje("3 - $60");
            PantallaUsuario.MostrarLineaMensaje("4 - $100");
            PantallaUsuario.MostrarLineaMensaje("5 - $200");
            PantallaUsuario.MostrarLineaMensaje("6 - Cancelar la transaccion");
            PantallaUsuario.MostrarLineaMensaje("\nElija una opcion de retiro (1-6): ");

            //obtiene la entrada de usuario
            int entrada = teclado.ObtenerEntrada();

            //determina como proceder con base en el valor de entrada
            switch (entrada)
            {
            //si el usuario eligio un monto de retiro (osea una opcion del 1 - 5) devuelve
            //el monto correspondiente del arreglo montos
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                eleccionUsuario = montos[entrada];     //guarda la eleccion del usuario
                break;

            case CANCELO:
                eleccionUsuario = CANCELO;     //guarda la eleccion del usuario
                break;

            default:
                PantallaUsuario.MostrarLineaMensaje("\nSeleccion invalida. Intente nuevamente.");
                teclado.ApretarTecla();
                break;
            }
        }

        return(eleccionUsuario);
    }
Beispiel #4
0
        public override void Ejecutar()
        {
            bool efectivoDispensado   = false;
            bool transaccionCancelada = false;

            do
            {
                int seleccion = MostrarMenuDeMontos();

                if (seleccion != CANCELO)
                {
                    monto = seleccion;
                    decimal saldoDisponible = BaseDatos.GetSaldoDisponible(NumeroCuenta);

                    if (monto <= saldoDisponible)
                    {
                        if (dispensadorEfectivo.HayEfectivoDisponible(monto))
                        {
                            BaseDatos.Cargar(NumeroCuenta, monto);

                            dispensadorEfectivo.DispensarEfectivo(monto);
                            efectivoDispensado = true;


                            PantallaUsuario.MostrarLineaMensaje(
                                "\nPor favor agarre su efectivo.");
                        }
                        else
                        {
                            PantallaUsuario.MostrarLineaMensaje(
                                "\nNo hay suficiente efectivo disponible en el Cajero." +
                                "\n\nPor favor elija un monto valido.");
                        }
                    }
                    else
                    {
                        PantallaUsuario.MostrarLineaMensaje(
                            "\nNo hay suficiente efectivo disponible en su cuenta." +
                            "\n\nPor favor elija otro monto.");
                    }
                }
                else
                {
                    PantallaUsuario.MostrarLineaMensaje("\nCancelando la transacción...");
                    transaccionCancelada = true;
                }
            } while ((!efectivoDispensado) && (!transaccionCancelada));
        }
Beispiel #5
0
    //realiza una transaccion; redefine el metodo abstracto de la clase base
    public override void Ejecutar()
    {
        //obtiene el saldo disponible para la cuenta del usuario actual
        decimal saldoDisponible = BaseDatos.ObtenerSaldoDisponible(NumeroCuenta);

        //obtiene el saldo total de la cuenta del usuario actual
        decimal saldoTotal = BaseDatos.ObtenerSaldoTotal(NumeroCuenta);

        //muestra la informacion del saldo en la pantalla
        PantallaUsuario.MostrarLineaMensaje("\nInformacion del saldo: ");
        PantallaUsuario.MostrarMensaje(" - Saldo disponible: ");
        PantallaUsuario.MostrarMontoEnDolares(saldoDisponible);
        PantallaUsuario.MostrarMensaje("\n - Saldo total: ");
        PantallaUsuario.MostrarMontoEnDolares(saldoTotal);
        PantallaUsuario.MostrarLineaMensaje("");
    }
Beispiel #6
0
    //realiza una transaccion
    public override void Ejecutar()
    {
        PantallaUsuario.BorrarPantalla();
        monto = PedirMontoADepositar(); //obtiene el monto a depositar del usuario

        //comprueba si el usuario introdujo un monto a depositar especificado
        if (monto != CANCELO)
        {
            //solicita un sobre de deposito que contega el monto especificado
            PantallaUsuario.MostrarMensaje("\nIntroduzca un sobre de deposito que contenga ");
            PantallaUsuario.MostrarMontoEnDolares(monto);
            PantallaUsuario.MostrarLineaMensaje(" en la ranura para depositos.");

            //obtiene el sobre de deposito
            bool sobreRecibido = ranuraDeposito.SeRecibioSobreDeposito();

            //comprueba so se recibio el sobre
            if (sobreRecibido)
            {
                PantallaUsuario.BorrarPantalla();
                PantallaUsuario.MostrarLineaMensaje("\nSe recibio su sobre.\n" +
                                                    "El dinero que acaba de despositar no estara disponible " +
                                                    "hasta que verifiquemos el monto del efectivo dentro del" +
                                                    "sobre, y que se haya verificado cualquier cheque incluido.");

                //abona a la cuenta para reflejar el deposito
                BaseDatos.Abonar(NumeroCuenta, monto);
            }

            else
            {
                PantallaUsuario.MostrarLineaMensaje("\nNo se inserto un sobre, el ATM" +
                                                    "ha cancelado su transaccion.");
            }
        }

        else
        {
            PantallaUsuario.MostrarLineaMensaje("\nCancelando la transaccion...");
        }
    }
Beispiel #7
0
        private int MostrarMenuDeMontos()
        {
            int eleccion = 0;

            int[] montos = { 0, 100, 200, 300, 400, 500 };

            while (eleccion == 0)
            {
                PantallaUsuario.MostrarLineaMensaje("\nOpciones de retiro:");
                PantallaUsuario.MostrarLineaMensaje("1 - $100");
                PantallaUsuario.MostrarLineaMensaje("2 - $200");
                PantallaUsuario.MostrarLineaMensaje("3 - $300");
                PantallaUsuario.MostrarLineaMensaje("4 - $400");
                PantallaUsuario.MostrarLineaMensaje("5 - $500");
                PantallaUsuario.MostrarLineaMensaje("6 - Cancelar transacción");
                PantallaUsuario.MostrarMensaje(
                    "\nElija una opción de retiro (1-6): ");

                int entrada = teclado.ObtenerEntrada();
                switch (entrada)
                {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                    eleccion = montos[entrada];
                    break;

                case CANCELO:
                    eleccion = CANCELO;
                    break;

                default:
                    PantallaUsuario.MostrarLineaMensaje("\nSelección inválida. Intentar de nuevo.");
                    break;
                }
            }
            return(eleccion);
        }
        public override void Ejecutar()
        {
            monto = PedirMontoADepositar();


            if (monto != CANCELO)
            {
                PantallaUsuario.MostrarMensaje(
                    "\nIntroduzca un depósito que contenga ");
                PantallaUsuario.MostrarMontoEnDolares(monto);
                PantallaUsuario.MostrarLineaMensaje(" en la ranura para depósitos.");


                bool sobreRecibido = ranuraDeposito.DepositoRecibido();


                if (sobreRecibido)
                {
                    PantallaUsuario.MostrarLineaMensaje(
                        "\nSe recibió su deposito.\n"
                        );


                    BaseDatos.Abonar(NumeroCuenta, monto);
                }
                else
                {
                    PantallaUsuario.MostrarLineaMensaje(
                        "\nNo insertó un deposito  " +
                        "cancelo su transacción.");
                }
            }
            else
            {
                PantallaUsuario.MostrarLineaMensaje("\nCancelando la transacción...");
            }
        }