import java.util.ArrayList;
import java.util.Scanner;
import peluqueriaServicios.Servicio.Servicios;
public class Peluqueria {
private static ArrayList<Empleado> empleados;
private static Scanner teclado;
public static void main(String[] args) {
empleados = new ArrayList<Empleado>();
teclado = new Scanner(System.in);
int opcion = 0;
do {
System.out.println("\n\t\tMENU PELUQUERIA");
System.out.println("\t\t---- ----------");
System.out.println("\t(1) -- Contratar Empleado");
System.out.println("\t(2) -- Asignar Servicio a un Empleado");
System.out.println("\t(3) -- Eliminar Servicio a un Empleado");
System.out.println("\t(4) -- Reportar Servicios de un Empleado");
System.out.println("\t(5) -- Reportar Monto total de un Empleado");
System.out.println("\t(6) -- Reporte total de todos los Empleados y sus Servicios");
System.out.println("\t(9) -- TERMINAR PROGRAMA");
System.out.print("Opcion: ");
opcion = Integer.parseInt(teclado.nextLine());
switch(opcion) {
case 1:
contratar();
break;
case 2:
asignarServicio();
break;
case 3:
eliminarServicio();
break;
case 4:
reporteServicioEmpleado();
break;
case 5:
reporteMontoEmpleado();
break;
case 6:
reporteTotalEmpleados();
break;
case 9:
System.out.println("\n\t\tFIN DE PROGRAMA");
break;
default:
System.out.println("Opcion equivocada");
}
} while(opcion != 9);
}
private static void contratar() {
System.out.println("\n\tContratar Empleado");
System.out.print("Nombre completo: ");
String nombre = teclado.nextLine();
empleados.add(new Empleado(nombre));
System.out.println("\nNuevo empleado contratado");
}
private static void asignarServicio() {
System.out.println("\n\tAsignar Servicio");
if (empleados.isEmpty())
System.out.println("No hay Empleados contratados...");
else {
System.out.print("Nombre del Empleado: ");
String nombre = teclado.nextLine();
//Buscamos el empleado
Empleado buscar = null;
for (Empleado emp: empleados)
if (emp.getNombre().equals(nombre))
buscar = emp;
//Comprobamos si lo hemos encontrado
if (buscar == null)
System.out.println("\nNo se encuentra el empleado: " + nombre);
else {
System.out.println("\nElija el Servicio que quiere asignar.");
buscar.agregarServicio(new Servicio(elegirServicio()));
}
}
}
private static void eliminarServicio() {
System.out.println("\n\tEliminar Servicio");
if (empleados.isEmpty())
System.out.println("No hay Empleados contratados...");
else {
System.out.print("Nombre del Empleado: ");
String nombre = teclado.nextLine();
//Buscamos el empleado
Empleado buscar = null;
for (Empleado emp: empleados)
if (emp.getNombre().equals(nombre))
buscar = emp;
//Comprobamos si lo hemos encontrado
if (buscar == null)
System.out.println("\nNo se encuentra el empleado: " + nombre);
else {
System.out.println("\nElija el Servicio que quiere eliminar.");
buscar.eliminarServicio(new Servicio(elegirServicio()));
}
}
}
private static void reporteServicioEmpleado() {
System.out.println("\n\tReporte Servicios de un Empleado");
if (empleados.isEmpty())
System.out.println("No hay Empleados contratados...");
else {
System.out.print("Nombre del Empleado: ");
String nombre = teclado.nextLine();
//Buscamos el empleado
Empleado buscar = null;
for (Empleado emp: empleados)
if (emp.getNombre().equals(nombre))
buscar = emp;
//Comprobamos si lo hemos encontrado
System.out.println(); //Salto de linea
if (buscar == null)
System.out.println("\nNo se encuentra el empleado: " + nombre);
else
buscar.reporteDeServicios();
}
}
private static void reporteMontoEmpleado() {
System.out.println("\n\tReporte Monto de un Empleado");
if (empleados.isEmpty())
System.out.println("No hay Empleados contratados...");
else {
System.out.print("Nombre del Empleado: ");
String nombre = teclado.nextLine();
//Buscamos el empleado
Empleado buscar = null;
for (Empleado emp: empleados)
if (emp.getNombre().equals(nombre))
buscar = emp;
//Comprobamos si lo hemos encontrado
System.out.println(); //Salto de linea
if (buscar == null)
System.out.println("\nNo se encuentra el empleado: " + nombre);
else
buscar.reporteMontoTotal();
}
}
private static void reporteTotalEmpleados() {
System.out.println("\n\tReporte total de Empleados");
if (empleados.isEmpty())
System.out.println("No hay Empleados contratados...");
else {
for (Empleado emp: empleados) {
System.out.println("\n\t****************");
emp.reporteDeServicios();
emp.reporteMontoTotal();
System.out.println("\t****************");
}
}
}
/**
* Muestra una lista de los Servicios disponibles y
* permite escoger uno indicando su número.
*/
private static Servicios elegirServicio() {
Servicios elegido = null;
//Creamos un array a partir de los valores del enum Servicios
Servicios[] lista = Servicios.values();
while (elegido == null) {
System.out.println("\n\t\tLista de Servicios");
for (int i = 0; i < lista.length; i++)
System.out.println("\t#" + i + " ---> " + lista[i].toString());
System.out.print("Numero de Servicio: ");
int numero = Integer.parseInt(teclado.nextLine());
if (numero < 0 || numero >= lista.length)
System.out.println("Servicio incorrecta. Escoja un numero de la lista.");
else
elegido = lista[numero];
}
return elegido;
}
}