//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)); }
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(""); }
public Flipper(Object A, Object B, int iDe) { try { InitializeComponent(); IdUSUATIO = iDe; Win = A as PantallaUsuario; MN = B as Menu_Principal2; } catch (Exception ex) { } }
//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); }
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)); }
private decimal PedirMontoADepositar() { PantallaUsuario.MostrarMensaje( "\nIntroduzca un monto a depositar (o 0 para cancelar): "); int entrada = teclado.ObtenerEntrada(); if (entrada == CANCELO) { return(CANCELO); } else { return(entrada); } }
//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(""); }
public FlipperUsuarioInactivo(object A, Object B, int iDe) { try { InitializeComponent(); IdUSUATIO = iDe; Win = A as PantallaUsuario; MN = B as Menu_Principal2; DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(2); timer.Tick += Timer_Tick; timer.Start(); } catch (Exception ex) { } }
private decimal PedirMontoADepositar() { PantallaUsuario.BorrarPantalla(); //muestra el indicador y recibe la entrada PantallaUsuario.MostrarMensaje("\nIntroduzca un monto a depositar en CENTAVOS" + "(o 0 para CANCELAR): "); int entrada = teclado.ObtenerEntrada(); //comprueba si el usuario cancelo o introdujo un monto valido if (entrada == CANCELO) { return(CANCELO); } else { return(entrada / 100.00M); } }
//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..."); } }
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..."); } }