예제 #1
0
파일: Program.cs 프로젝트: nicod-c/atm-.NET
        static bool CajaAhorro_PuedeExtraer(decimal extraccion, CajaAhorro caja)
        {
            if (extraccion > caja.balance + caja.descubierto)
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
파일: Program.cs 프로젝트: nicod-c/atm-.NET
        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();
        }
예제 #3
0
파일: Program.cs 프로젝트: nicod-c/atm-.NET
        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);
        }
예제 #4
0
파일: Program.cs 프로젝트: nicod-c/atm-.NET
        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]);
        }
예제 #5
0
파일: Program.cs 프로젝트: nicod-c/atm-.NET
        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;
            }
        }
예제 #6
0
파일: Program.cs 프로젝트: nicod-c/atm-.NET
        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);
            }
        }