static bool CajaAhorro_PuedeExtraer(decimal extraccion, CajaAhorro caja) { if (extraccion > caja.balance + caja.descubierto) { return(false); } return(true); }
static void Main(string[] args) { #region DB_CAJERO List <TarjetaDebito> tarjetas = new List <TarjetaDebito>(); BaseDatosCajero BdTarjetas = new BaseDatosCajero(tarjetas); List <CajaAhorro> cuentasCuno = new List <CajaAhorro>(); List <CajaAhorro> cuentasCdos = new List <CajaAhorro>(); List <CajaAhorro> cuentasCtres = new List <CajaAhorro>(); List <CajaAhorro> cuentasCcuatro = new List <CajaAhorro>(); Moneda Pesos = new Moneda("ARS", "Peso", 0.013m); Moneda Dolares = new Moneda("USD", "Dolar", 78.12m); Cliente clienteUno = new Cliente("Nicolas", "Cordoba", "32743499", "0001", cuentasCuno); Cliente clienteDos = new Cliente("Daniela", "Diaz", "32125217", "0002", cuentasCdos); Cliente clienteTres = new Cliente("Juan", "Perez", "24543234", "0003", cuentasCtres); Cliente clienteCuatro = new Cliente("Maria", "Gonzalez", "28444543", "0004", cuentasCcuatro); CajaAhorro caUno = new CajaAhorro("123456789", "2517433511100053655043", "Nico.C", Pesos, 0m, 15500m); CajaAhorro caUnoP = new CajaAhorro("1234567890", "2517433511100053655044", "Nico.C.P", Pesos, 1000m, 551200m); CajaAhorro caUnoUsd = new CajaAhorro("123456780", "2517433511100053655142", "Nico.C.Usd", Dolares, 0m, 150m); CajaAhorro caDos = new CajaAhorro("987654321", "3876116011100057554247", "Dani.Diaz", Pesos, 500m, 35000m); CajaAhorro caTres = new CajaAhorro("123498765", "5625623511100099967696", "PerezJ", Pesos, 300m, 21200m); CajaAhorro caCuatroP = new CajaAhorro("987612345", "3153794611100001345765", "MGonzalez", Pesos, 0m, 123245.52m); CajaAhorro caCuatro = new CajaAhorro("087612345", "3153794611100001345766", "MGonzalez.B", Pesos, 0m, 25433.22m); CajaAhorro caCinco = new CajaAhorro("111333444", "3822175811100051681145", null, Pesos, 0m, 0m); TarjetaDebito tdUno = new TarjetaDebito(clienteUno, "1111", new DateTime(2023 - 07), true, "1234"); TarjetaDebito tdDos = new TarjetaDebito(clienteDos, "2222", new DateTime(2027 - 08), true, "5678"); TarjetaDebito tdTres = new TarjetaDebito(clienteTres, "3333", new DateTime(2023 - 08), true, "1111"); TarjetaDebito tdCuatro = new TarjetaDebito(clienteCuatro, "4444", new DateTime(2022 - 12), true, "4321"); TarjetaDebito tdCinco = new TarjetaDebito(clienteUno, "5555", new DateTime(2020 - 06), false, "1234"); tarjetas.Add(tdUno); tarjetas.Add(tdDos); tarjetas.Add(tdTres); tarjetas.Add(tdCuatro); tarjetas.Add(tdCinco); clienteUno.CajasAhorro.Add(caUno); clienteUno.CajasAhorro.Add(caUnoUsd); clienteUno.CajasAhorro.Add(caUnoP); clienteDos.CajasAhorro.Add(caDos); clienteTres.CajasAhorro.Add(caTres); clienteCuatro.CajasAhorro.Add(caCuatroP); clienteCuatro.CajasAhorro.Add(caCuatro); #endregion MostrarPantallaBienvenida(BdTarjetas); Console.ReadKey(); }
static void MostrarPantallaInfCbu(TarjetaDebito tarjeta, BaseDatosCajero bd) { CajaAhorro caja = MostrarSeleccionCajaAhorro(tarjeta.cliente.CajasAhorro, tarjeta, bd); Console.WriteLine($"El CBU de la caja de ahorro {caja.moneda.codigoIso} - {caja.numero} es:"); Console.WriteLine($"{caja.cbu}"); Console.WriteLine("Presione Enter para salir"); Console.ReadLine(); MostrarPantallaPrincipal(tarjeta, bd); }
static CajaAhorro MostrarSeleccionCajaAhorro(List <CajaAhorro> cajas, TarjetaDebito tarjeta, BaseDatosCajero bd) { int eleccion = -1; Console.WriteLine($"Elija la caja de ahorro a utilizar: "); for (int i = 0; i < cajas.Count; i++) { CajaAhorro caja = cajas[i]; Console.WriteLine($"{i} - {caja.moneda.codigoIso} - {caja.numero} - Saldo disponible: ${caja.balance}"); } Console.WriteLine($"{cajas.Count} - Cancelar"); eleccion = PedirValorIntClampeado("Su eleccion:", 0, cajas.Count); if (eleccion == cajas.Count) { MostrarPantallaPrincipal(tarjeta, bd); } return(cajas[eleccion]); }
static void CalcularSaldosExtraccion(ref decimal fondosCajero, decimal extraccion, CajaAhorro caja) { fondosCajero -= extraccion; if (caja.balance > extraccion) { caja.balance -= extraccion; } else if (caja.balance - extraccion < 0) { caja.descubierto -= (extraccion - caja.balance); caja.balance = 0; } }
static void MostrarPantallaExtraccion(ref TarjetaDebito tarjeta, BaseDatosCajero bd) { CajaAhorro caja = MostrarSeleccionCajaAhorro(tarjeta.cliente.CajasAhorro, tarjeta, bd); decimal extraccion = -1; int index = 0; for (int i = 0; i < tarjeta.cliente.CajasAhorro.Count; i++) { if (caja == tarjeta.cliente.CajasAhorro[i]) { Console.WriteLine($"¿Cuánto quiere retirar de la caja de ahorro {caja.moneda.codigoIso} - {caja.numero} ? (Fondos: {caja.balance} Descubierto: {caja.descubierto})"); index = i; caja = tarjeta.cliente.CajasAhorro[i]; } } if (caja.moneda.codigoIso == "ARS") { extraccion = PedirValorDecimalClampeado("Ingrese el monto (0 para cancelar): ", 0); while (!CajaAhorro_PuedeExtraer(extraccion, caja)) { Console.WriteLine("Fondos insuficientes en caja de ahorro"); extraccion = PedirValorDecimalClampeado("Ingrese el monto (0 para cancelar): ", 0); } while (!Cajero_ConFondos(extraccion, bd.BdFondosArs)) { Console.WriteLine("Cajero sin fondos suficientes, ingrese un monto menor"); extraccion = PedirValorDecimalClampeado("Ingrese el monto (0 para cancelar): ", 0); } if (CajaAhorro_PuedeExtraer(extraccion, caja) && Cajero_ConFondos(extraccion, bd.BdFondosArs)) { CalcularSaldosExtraccion(ref bd.BdFondosArs, extraccion, tarjeta.cliente.CajasAhorro[index]); Console.WriteLine($"Extracción de {caja.moneda.codigoIso}{extraccion} exitosa."); Console.WriteLine($"Nuevos saldos de la Caja de ahorro {caja.moneda.codigoIso} - {tarjeta.cliente.CajasAhorro[index].numero}" + $" (Fondos: {tarjeta.cliente.CajasAhorro[index].balance} Descubierto: {tarjeta.cliente.CajasAhorro[index].descubierto}"); extraccion = PedirValorDecimalClampeado("Presione 0 para continuar: ", 0); } } if (caja.moneda.codigoIso == "USD") { extraccion = PedirValorDecimalClampeado("Ingrese el monto (0 para cancelar): ", 0); while (!CajaAhorro_PuedeExtraer(extraccion, caja)) { Console.WriteLine("Fondos insuficientes en caja de ahorro"); extraccion = PedirValorDecimalClampeado("Ingrese el monto (0 para cancelar): ", 0); } while (!Cajero_ConFondos(extraccion, bd.BdFondosUsd)) { Console.WriteLine("Cajero sin fondos suficientes, ingrese un monto menor"); extraccion = PedirValorDecimalClampeado("Ingrese el monto (0 para cancelar): ", 0); } if (CajaAhorro_PuedeExtraer(extraccion, caja) && Cajero_ConFondos(extraccion, bd.BdFondosUsd)) { CalcularSaldosExtraccion(ref bd.BdFondosUsd, extraccion, tarjeta.cliente.CajasAhorro[index]); Console.WriteLine($"Extracción de {caja.moneda.codigoIso}{extraccion} exitosa."); Console.WriteLine($"Nuevos saldos de la Caja de ahorro {caja.moneda.codigoIso} - {tarjeta.cliente.CajasAhorro[index].numero}" + $" (Fondos: {tarjeta.cliente.CajasAhorro[index].balance} Descubierto: {tarjeta.cliente.CajasAhorro[index].descubierto}"); extraccion = PedirValorDecimalClampeado("Presione 0 para continuar: ", 0); } } if (extraccion == 0) { MostrarPantallaPrincipal(tarjeta, bd); } }