//Crea una nueva tarjeta de Crédito public void AgregarCredito(Credito card) { //el metodo recibe la tarjeta ya creada en la clase Tarjeta y ahora lo unico que hace //es agregar la tarjeta a la lista "general" de tarjetas y ademas a la lista particular del //cliente creado Tarjeta.Todas.Add(card); listaTarjetas.Add(card); }
//Crea una nueva tarjeta de Crédito public void AgregarCredito(bool personalizada, string categoria) { if (personalizada) { Tarjeta card = new Credito(true, categoria); listaTarjetas.Add(card); Console.WriteLine(card.ToString()); } else { Tarjeta creditoComun = new Credito(false, categoria); Console.WriteLine(creditoComun.ToString()); } }
public void VerificarLimite(Pago pago, Credito tarjeta) { listaPagos.Add(pago); int suma = 0; foreach (Pago pay in listaPagos) { suma += pay.Monto; if (suma > tarjeta.LimiteDeCredito) { listaPagos.Remove(pago); throw new Exception("\n\tLímite de crédito superado.No se ha podido ingresar el pago."); } } }
static void Main(string[] args) { //No va permitir personas con cédula repetida. List <Cliente> lista = new List <Cliente>(); #region Carga de datos lista.Add(new Cliente("Marcos", "Perez", "1365987", "25693265")); lista.Add(new Cliente("Ana", "Ramos", "2365741", "23360759")); lista.Add(new Cliente("Maria", "Marquez", "4401918", "25052458")); lista.Add(new Cliente("Roberto", "Ramirez", "4401884", "23659874")); lista.Add(new Cliente("Laura", "Paz", "1111111", "23101478")); lista.Add(new Cliente("Andres", "De Angeli", "4951791", "099321757")); #endregion string opcion = "", sino = ""; while (opcion != "0") { Menu(); //Imprime el Menu opcion = Console.ReadLine(); Console.Clear(); try { switch (opcion) { #region case 1: Buscar Cliente case "1": Console.WriteLine("\n\n\t ***** Buscar Cliente *****\n"); Console.Write("\n\tIngrese el numero de cédula del cliente:"); string cedula = Console.ReadLine(); int aux = 0; if (cedula.Length == 7 && int.TryParse(cedula, out aux)) { if (Buscar(lista, cedula)) { Console.Write("\n\tEl cliente con cédula " + cedula + " ya existe.\n"); Console.Write("\n\tDesea eliminar al cliente(1) o modificar sus datos(2)?:"); int seleccion = Convert.ToInt32(Console.ReadLine()); if (seleccion == 1) { Eliminar(lista, cedula); Console.Write("\n\tEl cliente con cédula " + cedula + " ha sido eliminado de la lista con éxito."); } else if (seleccion == 2) { Console.Clear(); Console.WriteLine("\n\n\t ***** Modificar Cliente *****\n"); Cliente customerMod = new Cliente(); Console.Write("\n\tIngrese nuevos datos del cliente: \n"); Console.Write("\n\tIngrese nombre: "); customerMod.Nombre = Console.ReadLine(); Console.Write("\n\tIngrese apellido: "); customerMod.Apellido = Console.ReadLine(); Console.Write("\n\tIngrese teléfono: "); customerMod.Telefono = Console.ReadLine(); customerMod.Cedula = cedula; Modificar(lista, customerMod, cedula); Console.Write("\n\tEl cliente con cédula " + cedula + " ha sido editado con éxito."); } else { Console.Write("\n\tNo ingreso una opcion valida"); Console.Write("\n\tPresione Enter para volver al Menú Principal"); } } else { Console.WriteLine("\n\tEl cliente con cédula " + cedula + " no se encuentra registrado "); Console.Write("\n\tDesea agregar un nuevo cliente? (S/N): "); sino = Console.ReadLine(); if (sino.ToUpper() == "S") { Cliente customer = new Cliente(); Console.Write("\n\tIngrese el nombre: "); customer.Nombre = Console.ReadLine(); Console.Write("\n\tIngrese el apellido: "); customer.Apellido = Console.ReadLine(); Console.Write("\n\tIngrese la cédula: "); customer.Cedula = Console.ReadLine(); Console.Write("\n\tIngrese el número de teléfono: "); customer.Telefono = Console.ReadLine(); lista.Add(customer); Console.Write("\n\tEl cliente ha sido registrado con éxito!!\n"); Console.Write(customer.ToString()); } else { Console.Write("\n\tPresione Enter para volver al Menú Principal"); } } } else { throw new Exception("\n\tLa cédula debe tener 7 dígitos y tener formato numérico.\n"); } break; #endregion #region case 2: Solicitud de Tarjetas case "2": Console.WriteLine("\n\n\t ***** Solicitud de Tarjetas *****\n"); Console.WriteLine("\t1- Tarjeta de Crédito\n"); Console.WriteLine("\t2- Tarjeta de Débito\n"); Console.Write("\n\tIngrese una opción : "); opcion = Console.ReadLine(); Console.Clear(); switch (opcion) { case "1": Console.WriteLine("\n\n\t*****Tarjeta de Crédito*****\n"); Console.Write("\n\tIngrese el numero de cedula del cliente:"); string documento = Console.ReadLine(); int aux2 = 0; if (documento.Length == 7 && int.TryParse(documento, out aux2)) { if (Buscar(lista, documento)) { foreach (Cliente cliente in lista) { if (cliente.Cedula == documento) { Console.WriteLine(cliente.ToString()); Console.Write("\n\tDesea crear una nueva Tarjeta?(S/N): "); string opcionCredito = Console.ReadLine(); string categoria = ""; if (opcionCredito.ToUpper() == "S") { //El cliente si entra aca es que va a sacar CREDITO asi //que aca mismo creo la tarjeta Credito card = new Credito(); Console.Write("\n\t*****Categoría de la Tarjeta*****\n"); Console.Write("\n\t1- Clasica"); Console.Write("\n\t2- Plata"); Console.Write("\n\t3- Oro"); Console.Write("\n\t4- Platino"); Console.Write("\n\tSeleccione una opción: "); string opcion2 = Console.ReadLine(); switch (opcion2) { case "1": categoria = "Clasica"; break; case "2": categoria = "Plata"; break; case "3": categoria = "Oro"; break; case "4": categoria = "Platino"; break; } //al tener la tarjeta creada ya le puedo pasar la categoria directamente! card.categoria = categoria; Console.Write("\n\tDesea personalizar su tarjeta?(S/N):"); string personalizar = Console.ReadLine(); //tambien le paso directamente si es personalizada o no if (personalizar.ToUpper() == "S") { card.Personalizada = true; } else { card.Personalizada = false; } //al metodo siguiente le paso la tarjeta ya creada(la tarjeta la crea la Clase //Tarjeta y no cliente como pasaba antes. cliente.AgregarCredito(card); Console.WriteLine(card.ToString()); } } } } } else { throw new Exception("\n\tLa cédula debe tener 7 dígitos y tener formato numérico.\n"); } break; case "2": Console.WriteLine("\n\n\t*****Tarjeta de Débito*****\n"); Console.Write("\n\tIngrese el numero de cedula del cliente:"); string documento2 = Console.ReadLine(); int aux3 = 0; if (documento2.Length == 7 && int.TryParse(documento2, out aux3)) { if (Buscar(lista, documento2)) { foreach (Cliente cliente in lista) { if (cliente.Cedula == documento2) { Console.WriteLine(cliente.ToString()); Console.Write("\n\tDesea crear una nueva Tarjeta?(S/N): "); string opcionDebito = Console.ReadLine(); if (opcionDebito.ToUpper() == "S") { //igual que en credito Debito card = new Debito(); Console.Write("\n\tDesea personalizar su tarjeta?(S/N):"); string personalizar = Console.ReadLine(); if (personalizar.ToUpper() == "S") { card.Personalizada = true; } else { card.Personalizada = false; } cliente.AgregarDebito(card); Console.WriteLine(card.ToString()); } } } } else { Console.WriteLine("\n\tNo se ha encontrado al cliente!\n"); Console.Write("\tPresione Enter para continuar..."); } } else { throw new Exception("\n\tLa cédula debe tener 7 dígitos y tener formato numérico.\n"); } break; } break; #endregion #region case 3: Carga de Saldo y Pago de Tarjeta case "3": Console.WriteLine("\n\n\t ***** Carga de Saldo y Pago de Tarjeta *****\n"); Console.Write("\n\tIngrese el numero de cedula del cliente: "); break; #endregion #region case 4: Listados case "4": Console.WriteLine("\n\n\t ***** Listados *****\n"); Console.WriteLine("\t1- Listado de Clientes\n"); Console.WriteLine("\t2- Listado de Tarjetas\n"); Console.WriteLine("\t3- Listado de Pagos\n"); Console.Write("\n\tIngrese una opción : "); opcion = Console.ReadLine(); Console.Clear(); switch (opcion) { case "1": Console.WriteLine("\n\n\t*****Listado de Clientes*****\n"); if (lista.Count == 0) { throw new Exception("No hay personas para listar."); } //Ordena la lista de clientes alfabeticamente IEnumerable <Cliente> listaOrdenada = lista.OrderBy(customer => customer.Nombre); foreach (Cliente customer in listaOrdenada) { Console.WriteLine("- " + customer.Nombre + " " + customer.Apellido + " CI:" + customer.Cedula + " TEL:" + customer.Telefono + "Cantidad de tarjetas:" + customer.ListaTarjetas.Count + "\n"); } break; case "2": Console.WriteLine("\n\n\t*****Listado de Tarjetas*****\n"); //lista Todas las tarjetas de la lista que esta en la clase Tarjetas if (Tarjeta.Todas.Count == 0) { throw new Exception("No hay tarjetas para listar."); } foreach (Tarjeta tar in Tarjeta.Todas) { Console.WriteLine("- N°Tarjeta: " + tar.Numero + " " + tar.Personalizada + "\n"); } break; case "3": Console.WriteLine("\n\n\t*****Listado de Pagos*****\n"); Console.Write("\n\tIngrese el numero de tarjeta: "); break; } break; #endregion #region case 0 y default case "0": Console.WriteLine("\n\n\t¡ ¡ ¡Gracias por utilizar nuestro programa! ! !"); Console.Write("\n\t\t\tEnter para salir..."); break; default: Console.WriteLine("\n\n\tLa opción ingresada no es válida."); Console.Write("\tEnter para continuar..."); break; #endregion } } catch (Exception ex) { Console.WriteLine("\n\t" + ex.Message); Console.Write("\n\tEnter para continuar..."); } Console.ReadLine(); } }
static void Main(string[] args) { //No va permitir personas con cédula repetida. List <Cliente> lista = new List <Cliente>(); #region Carga de datos lista.Add(new Cliente("Marcos", "Perez", "1365987", "25693265")); lista.Add(new Cliente("Ana", "Ramos", "2365741", "23360759")); lista.Add(new Cliente("Maria", "Marquez", "4401918", "25052458")); lista.Add(new Cliente("Roberto", "Ramirez", "4401884", "23659874")); lista.Add(new Cliente("Laura", "Paz", "1111111", "23101478")); lista.Add(new Cliente("Andres", "De Angeli", "4951791", "099321757")); #endregion string opcion = "", sino = ""; while (opcion != "0") { Menu(); //Imprime el Menu opcion = Console.ReadLine(); Console.Clear(); try { switch (opcion) { #region case 1: Buscar Cliente case "1": Console.WriteLine("\n\n\t ***** Buscar Cliente *****\n"); Console.Write("\n\tIngrese el numero de cédula del cliente:"); string cedula = Console.ReadLine(); int aux = 0; if (cedula.Length == 7 && int.TryParse(cedula, out aux)) { if (Buscar(lista, cedula)) { Console.Write("\n\tEl cliente con cédula " + cedula + " ya existe.\n"); Console.Write("\n\tDesea eliminar al cliente(1) o modificar sus datos(2)?:"); int seleccion = Convert.ToInt32(Console.ReadLine()); if (seleccion == 1) { Eliminar(lista, cedula); Console.Write("\n\tEl cliente con cédula " + cedula + " ha sido eliminado de la lista con éxito."); } else if (seleccion == 2) { Console.Clear(); Console.WriteLine("\n\n\t ***** Modificar Cliente *****\n"); Console.Write("\n\tIngrese nuevos datos del cliente: \n"); Console.Write("\n\tIngrese nombre: "); string Nombre = Console.ReadLine(); Console.Write("\n\tIngrese apellido: "); string Apellido = Console.ReadLine(); Console.Write("\n\tIngrese teléfono: "); string Telefono = Console.ReadLine(); Console.Write("\n\tIngrese cédula: "); string Cedula = Console.ReadLine(); Cliente customerMod = new Cliente(Nombre, Apellido, Cedula, Telefono); Modificar(lista, customerMod, cedula); Console.Write("\n\tEl cliente con cédula " + cedula + " ha sido editado con éxito."); } else { Console.Write("\n\tNo ingreso una opcion valida"); Console.Write("\n\tPresione Enter para volver al Menú Principal"); } } else { Console.WriteLine("\n\tEl cliente con cédula " + cedula + " no se encuentra registrado "); Console.Write("\n\tDesea agregar un nuevo cliente? (S/N): "); sino = Console.ReadLine(); if (sino.ToUpper() == "S") { Console.Write("\n\tIngrese el nombre: "); string Nombre = Console.ReadLine(); Console.Write("\n\tIngrese el apellido: "); string Apellido = Console.ReadLine(); Console.Write("\n\tIngrese la cédula: "); string Cedula = Console.ReadLine(); Console.Write("\n\tIngrese el número de teléfono: "); string Telefono = Console.ReadLine(); Cliente customer = new Cliente(Nombre, Apellido, Cedula, Telefono); lista.Add(customer); Console.Write("\n\tEl cliente ha sido registrado con éxito!!\n"); Console.Write(customer.ToString()); } else { Console.Write("\n\tPresione Enter para volver al Menú Principal"); } } } else { throw new Exception("\n\tLa cédula debe tener 7 dígitos y tener formato numérico.\n"); } break; #endregion #region case 2: Solicitud de Tarjetas case "2": Console.WriteLine("\n\n\t ***** Solicitud de Tarjetas *****\n"); Console.WriteLine("\t1- Tarjeta de Crédito\n"); Console.WriteLine("\t2- Tarjeta de Débito\n"); Console.Write("\n\tIngrese una opción : "); opcion = Console.ReadLine(); Console.Clear(); switch (opcion) { case "1": Console.WriteLine("\n\n\t*****Tarjeta de Crédito*****\n"); Console.Write("\n\tIngrese el numero de cedula del cliente:"); string documento = Console.ReadLine(); int aux2 = 0; if (documento.Length == 7 && int.TryParse(documento, out aux2)) { if (Buscar(lista, documento)) { foreach (Cliente cliente in lista) { if (cliente.Cedula == documento) { Console.WriteLine(cliente.ToString()); Console.Write("\n\tDesea crear una nueva Tarjeta?(S/N): "); string opcionCredito = Console.ReadLine(); string categoria = ""; if (opcionCredito.ToUpper() == "S") { Console.Write("\n\t*****Categoría de la Tarjeta*****\n"); Console.Write("\n\t1- CLÁSICA"); Console.Write("\n\t2- PLATA"); Console.Write("\n\t3- ORO"); Console.Write("\n\t4- PLATINO"); Console.Write("\n\tSeleccione una opción: "); string opcion2 = Console.ReadLine(); switch (opcion2) { case "1": categoria = "CLÁSICA"; break; case "2": categoria = "PLATA"; break; case "3": categoria = "ORO"; break; case "4": categoria = "PLATINO"; break; } Console.Write("\n\tDesea personalizar su tarjeta?(S/N):"); bool Personalizada; string personalizar = Console.ReadLine(); if (personalizar.ToUpper() == "S") { Personalizada = true; } else { Personalizada = false; } Console.Write("\n\tSeleccione un limite de credito:"); int limite = Convert.ToInt32(Console.ReadLine()); Credito card = new Credito(Personalizada, categoria, limite); cliente.AgregarCredito(card); Console.WriteLine(card.ToString()); } } } } } else { throw new Exception("\n\tLa cédula debe tener 7 dígitos y tener formato numérico.\n"); } break; case "2": Console.WriteLine("\n\n\t*****Tarjeta de Débito*****\n"); Console.Write("\n\tIngrese el numero de cedula del cliente:"); string documento2 = Console.ReadLine(); int aux3 = 0; if (documento2.Length == 7 && int.TryParse(documento2, out aux3)) { if (Buscar(lista, documento2)) { foreach (Cliente cliente in lista) { if (cliente.Cedula == documento2) { Console.WriteLine(cliente.ToString()); Console.Write("\n\tDesea crear una nueva Tarjeta?(S/N): "); string opcionDebito = Console.ReadLine(); if (opcionDebito.ToUpper() == "S") { Console.Write("\n\tDesea personalizar su tarjeta?(S/N):"); string personalizar = Console.ReadLine(); bool Personalizada; if (personalizar.ToUpper() == "S") { Personalizada = true; } else { Personalizada = false; } Console.Write("\n\tIngrese Cantidad de cuentas para asociar:"); int cuentas = Convert.ToInt32(Console.ReadLine()); Debito card = new Debito(Personalizada, cuentas); cliente.AgregarDebito(card); Console.WriteLine(card.ToString()); } } } } else { Console.WriteLine("\n\tNo se ha encontrado al cliente!\n"); Console.Write("\tPresione Enter para continuar..."); } } else { throw new Exception("\n\tLa cédula debe tener 7 dígitos y tener formato numérico.\n"); } break; } break; #endregion #region case 3: Carga de Saldo y Pago de Tarjeta case "3": Console.WriteLine("\n\n\t ***** Carga de Saldo y Pago de Tarjeta *****\n"); Console.Write("\n\tIngrese el número de documento: "); string doc = Console.ReadLine(); Buscar(lista, doc); if (!Buscar(lista, doc)) { Console.WriteLine("\n\tEl cliente con cédula " + doc + " no se encuentra registrado "); Console.WriteLine("\n\tDebe registrar un cliente para acceder a esta opción."); } else { foreach (Cliente customer in lista) { if (customer.Cedula == doc) { foreach (Tarjeta tar in Cliente.listaTarjetas) { if (tar is Credito) { Console.WriteLine(((Credito)tar).ToString()); } else { Console.WriteLine(((Debito)tar).ToString()); } } } } } Console.Write("\n\tSeleccione el número de la tarjeta con la que desea operar:"); int opcionOperacion = Convert.ToInt32(Console.ReadLine()); Credito a = Cliente.Tarjeta(opcionOperacion); if (Cliente.BuscarTarjeta(opcionOperacion)) { Console.Write("\n\tHa seleccionado una tarjeta de CREDITO."); Console.Write("\n\tDigite el importe del pago:"); int monto = Convert.ToInt32(Console.ReadLine()); if (monto > a.LimiteDeCredito) { Console.Write("\n\tEl pago supera el limite de credito de la tarjeta seleccionada."); Console.Write("\n\n\tPresione enter para volver al menu principal..."); } else { Console.Write("\n\tIngrese la fecha de compra:"); DateTime fecha = Convert.ToDateTime(Console.ReadLine()); Pago pago = new Pago(fecha, monto); a.AgregarPago(pago); a.LimiteDeCredito = a.LimiteDeCredito - pago.Monto; Console.Write("\n\tPago ingresado correctamente."); } } break; #endregion #region case 4: Listados case "4": Console.WriteLine("\n\n\t ***** Listados *****\n"); Console.WriteLine("\t1- Listado de Clientes\n"); Console.WriteLine("\t2- Listado de Tarjetas\n"); Console.WriteLine("\t3- Listado de Pagos\n"); Console.Write("\n\tIngrese una opción : "); opcion = Console.ReadLine(); Console.Clear(); switch (opcion) { case "1": Console.WriteLine("\n\n\t*****Listado de Clientes*****\n"); if (lista.Count == 0) { throw new Exception("No hay personas para listar."); } //Ordena la lista de clientes alfabeticamente IEnumerable <Cliente> listaOrdenada = lista.OrderBy(customer => customer.Nombre); foreach (Cliente customer in listaOrdenada) { Console.WriteLine("- " + customer.Nombre + " " + customer.Apellido + " CI:" + customer.Cedula + " TEL:" + customer.Telefono + " Cantidad de tarjetas:" + customer.CantidadTarjetas); } break; case "2": Console.WriteLine("\n\n\t*****Listado de Tarjetas*****\n"); //lista Todas las tarjetas de la lista que esta en la clase Tarjetas if (Cliente.listaTarjetas.Count == 0) { throw new Exception("No hay tarjetas para listar."); } foreach (Tarjeta tar in Cliente.listaTarjetas) { if (tar is Credito) { Console.WriteLine(((Credito)tar).ToString()); } else { Console.WriteLine(((Debito)tar).ToString()); } } break; case "3": Console.WriteLine("\n\n\t*****Listado de Pagos*****\n"); Console.Write("\n\tIngrese el numero de tarjeta: "); int numTarjeta = Convert.ToInt32(Console.ReadLine()); if (Credito.listaPagos.Count == 0) { throw new Exception("No hay pagos para listar."); } foreach (Pago pago in Credito.listaPagos) { Console.WriteLine("\n\t" + pago.ToString()); } break; } break; #endregion #region case 0 y default case "0": Console.WriteLine("\n\n\t¡ ¡ ¡Gracias por utilizar nuestro programa! ! !"); Console.Write("\n\t\t\tEnter para salir..."); break; default: Console.WriteLine("\n\n\tLa opción ingresada no es válida."); Console.Write("\tEnter para continuar..."); break; #endregion } } catch (Exception ex) { Console.WriteLine("\n\t" + ex.Message); Console.Write("\n\tEnter para continuar..."); } Console.ReadLine(); } }
public void AgregarCredito(Credito card) { listaTarjetas.Add(card); cantidadTarjetas++; }
public void AgregarCredito(Credito card) { Tarjeta.Todas.Add(card); listaTarjetas.Add(card); }