public class Main{
private static ArrayList<Usuario> usuarios;
private static Scanner teclado;
public static void main(String[] args) {
usuarios = new ArrayList<Usuario>();
teclado = new Scanner(System.in);
System.out.println("No hay usuarios registrados."
+ "\nSe ha de registrar al menos un Administrador antes de continuar...");
registrarAdmin();
menuLogIn();
}
private static void menuLogIn() {
do {
Usuario userActivo = null;
System.out.println("\n\tLogin Usuario");
System.out.println("\t----- -------\n");
System.out.print("ID usuario: ");
String id = teclado.nextLine();
System.out.print("Clave: ");
String pass = teclado.nextLine();
for (Usuario usr: usuarios) {
if (usr.getID().equals(id) && usr.getPass().equals(pass)) {
userActivo = usr;
break;
}
}
if (userActivo == null) //No se ha encontrado ningún usuario con esos datos
System.out.println("Error en ID Usuario o clave de acceso");
else {
if (userActivo instanceof Administrador)
while(menuAdministrador()); //Esto repite su menú hasta que escoja finalizar sesion
else
while(menuCliente()); //Si no es Administrador, es un Cliente
System.out.println("\nSesión finalizada.");
}
System.out.print("¿Desea cerrar el programa?[s/n]:");
}while (teclado.nextLine().toLowerCase().equals("n"));
System.out.println("\n\n\t\t--FIN DEL PROGRAMA--");
}
private static boolean menuAdministrador() {
System.out.println("\n\tMenú Administrador");
System.out.println("\t---- -------------\n");
System.out.println("[1] -- Registrar Administrador");
System.out.println("[2] -- Registrar Cliente");
System.out.println("[3] -- Nueva Categoría de Producto");
System.out.println("[4] -- Nuevo Producto");
System.out.println("[5] -- Consultar Ventas por Fechas");
System.out.println("\n[0] -- FINALIZAR SESIÓN");
int opc = teclado.nextLine().charAt(0);
switch(opc) {
case '0':
return false; //Fin de este método, sesión termina
case '1':
registrarAdmin();
break;
case '2':
registrarCliente();
break;
case '3':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN...");
break;
case '4':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN...");
break;
case '5':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN...");
break;
default:
System.out.println("\nOpción no válida.");
}
System.out.println("\nPulse ENTER para continuar...");
teclado.nextLine();
return true; //Fin de este método, menú sigue ejecutándose
}
private static boolean menuCliente() {
System.out.println("\n\tMenú Cliente");
System.out.println("\t---- -------\n");
System.out.println("[1] -- Ver catálogo de Productos");
System.out.println("[2] -- Comprar Productos");
System.out.println("[3] -- Consultar Mis Compras");
System.out.println("\n[0] -- FINALIZAR SESIÓN");
int opc = teclado.nextLine().charAt(0);
switch(opc) {
case '0':
return false;
case '1':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN...");
break;
case '2':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN...");
break;
case '3':
System.out.println("\n...OPCIÓN EN CONSTRUCCIÓN...");
break;
default:
System.out.println("\nOpción no válida.");
}
System.out.println("\nPulse ENTER para continuar...");
teclado.nextLine();
return true;
}
private static void registrarAdmin() {
System.out.println("\n\tRegistro Administrador");
System.out.println("\t-------- -------------\n");
System.out.print("ID Usuario: ");
String id = teclado.nextLine();
System.out.print("Clave Usuario: ");
String pass = teclado.nextLine();
System.out.print("Nombre: ");
String nombre = teclado.nextLine();
System.out.print("E-Mail: ");
String email = teclado.nextLine();
System.out.print("Teléfono: ");
String telef = teclado.nextLine();
Administrador admin = new Administrador(id, pass, nombre, email, telef);
if (usuarios.contains(admin))
System.out.println("Usuario rechazado. Ya existe otro con el ID: " + id);
else {
usuarios.add(admin);
System.out.println("Usuario registrado.");
}
}
private static void registrarCliente() {
System.out.println("\n\tRegistrar Cliente");
System.out.println("\t--------- -------\n");
System.out.print("ID Usuario: ");
String id = teclado.nextLine();
System.out.print("Clave Usuario: ");
String pass = teclado.nextLine();
System.out.print("Nombre: ");
String nombre = teclado.nextLine();
System.out.print("E-Mail: ");
String email = teclado.nextLine();
System.out.print("Teléfono: ");
String telef = teclado.nextLine();
System.out.print("Tarjeta compra asociada: ");
String tarjeta = teclado.nextLine();
Cliente cliente = new Cliente(id, pass, nombre, email, telef, tarjeta);
if (usuarios.contains(cliente))
System.out.println("Usuario rechazado. Ya existe otro con el ID: " + id);
else {
usuarios.add(cliente);
System.out.println("Usuario registrado.");
}
}
}