MenuCamp
unknown
plain_text
2 years ago
22 kB
6
Indexable
package es.uco.pw.display.main; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import es.uco.pw.business.controller.GestorCamps; import es.uco.pw.data.dto.CampDTO; import es.uco.pw.data.dto.MonitorDTO; import es.uco.pw.data.dto.ActivityDTO; import es.uco.pw.enums.LevelEducation; import es.uco.pw.enums.Timetable; /** * Clase principal para gestionar asistentes. * @author Antonio Jiménez Jiménez * @author Carlos Marín Rodríguez * @author Gonzalo Márquez de Torres * @author José María Muñoz López * @since 05-11-2023 * @version 1.0 */ public class MenuCamp { @SuppressWarnings("resource") /** * Método principal para la gestión de campamentos. * @param args Argumentos de línea de comandos * @throws SQLException Excepción de SQL. * @throws ParseException Excepción de análisis de fecha. */ public static void main(String[] args) throws SQLException, ParseException, FileNotFoundException, IOException { Scanner myObj = new Scanner(System.in); int idActivity; ActivityDTO activity = new ActivityDTO(); MonitorDTO monitor = new MonitorDTO(); CampDTO camp = new CampDTO(); int codigoError, monitorID, opcion = 99; String nombre, apellido; int atencionEspecial; boolean atencion = false; while (opcion != 0) { System.out.println("Indique una opcion"); System.out.println("1.- Crear monitor"); System.out.println("2.- Crear actividad"); System.out.println("3.- Crear campamento"); System.out.println("4.- Asignar monitores a actividad"); System.out.println("5.- Asignar actividades a campamento"); System.out.println("6.- Asignar monitor responsable a campamento"); System.out.println("7.- Asignar monitor de atencion especial a campamento"); System.out.println("0.- Guardar y salir al menu superior"); opcion = Integer.parseInt(myObj.nextLine()); switch (opcion) { case 1: //Crea un monitor System.out.println("Indique nombre del nuevo monitor"); nombre = myObj.nextLine(); System.out.println("Indique apellido del nuevo monitor"); apellido = myObj.nextLine(); System.out.println("Indique si es monitor de educación especial (1: No, 2: Sí)"); atencionEspecial = Integer.parseInt(myObj.nextLine()); if (atencionEspecial == 1) {atencion = false;} if (atencionEspecial == 2) {atencion = true;} MonitorDTO newMonitor = new MonitorDTO(nombre, apellido, atencion); codigoError = GestorCamps.gestionarOpcionMonitor(1, newMonitor); if(codigoError==1) { System.out.println("El monitor se ha guardado correctamente."); } else if(codigoError==-1) { System.out.println("El monitor no se ha guardado correctamente."); } else if(codigoError==-2) { System.out.println("Ya hay un monitor registrado con el mismo nombre."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } break; case 2: // Crear actividad ActivityDTO actividad = new ActivityDTO(); System.out.println("Indique nombre de la nueva actividad"); nombre = myObj.nextLine(); int levelEducation_ = 0; while(levelEducation_!=1 && levelEducation_!=2 && levelEducation_!=3){ System.out.println("Indique en numeros el tipo de nivel educacional de la actividad:"); System.out.println("1. INFANTIL"); System.out.println("2. JUVENIL"); System.out.println("3. ADOLESCENTE"); levelEducation_ = Integer.parseInt(myObj.nextLine()); } if(levelEducation_==1) { actividad.setLevelEducation(1); actividad.setLevelEducation2(LevelEducation.INFANTIL); } else if(levelEducation_==2) { actividad.setLevelEducation(2); actividad.setLevelEducation2(LevelEducation.JUVENIL); } else if(levelEducation_==3) { actividad.setLevelEducation(3); actividad.setLevelEducation2(LevelEducation.ADOLESCENTE); } int timetable_ = 0; while(timetable_!=1 && timetable_!=2){ System.out.println("Indique en números el tipo de horario de la actividad:"); System.out.println("1. MAÑANA"); System.out.println("2. TARDE"); timetable_ = Integer.parseInt(myObj.nextLine()); } if(timetable_==1) { actividad.setTimetable(1); actividad.setTimetable2(Timetable.MANANA); } else if(timetable_==2) { actividad.setTimetable(2); actividad.setTimetable2(Timetable.TARDE); } System.out.println("Indique el numero maximo de asistentes de la actividad:"); int maximo = Integer.parseInt(myObj.nextLine()); System.out.println("Indique el numero maximo de monitores necesarios en la actividad:"); int monitores_asignados = Integer.parseInt(myObj.nextLine()); ActivityDTO newActivity = new ActivityDTO(nombre, actividad.getLevelEducation(), actividad.getTimetable(), maximo, monitores_asignados); codigoError = GestorCamps.gestionarOpcionActividad(2, newActivity); if(codigoError==1) { System.out.println("La actividad se ha agregado correctamente."); } else if(codigoError==-1) { System.out.println("La actividad no se ha guardado correctamente."); } else if(codigoError==-2) { System.out.println("El nombre que ha introducido ya existe. Comprueba su valor."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } break; case 3: // Crear Campamento SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); System.out.println("Indique la fecha de inicio del nuevo campamento (dd/mm/aaaa)"); String fechaInicio = myObj.nextLine(); Date startDate = formato.parse(fechaInicio); System.out.println("Indique la fecha de fin del nuevo campamento (dd/mm/aaaa)"); String fechaFin = myObj.nextLine(); Date endDate = formato.parse(fechaFin); levelEducation_ = 0; while(levelEducation_!=1 && levelEducation_!=2 && levelEducation_!=3){ System.out.println("Indique en numeros el tipo de nivel educacional de la actividad:"); System.out.println("1. INFANTIL"); System.out.println("2. JUVENIL"); System.out.println("3. ADOLESCENTE"); levelEducation_ = Integer.parseInt(myObj.nextLine()); } System.out.println("Indique el número máximo de asistentes para el nuevo campamento"); int maxAsistents = Integer.parseInt(myObj.nextLine()); CampDTO newCamp = new CampDTO(startDate, endDate, levelEducation_, maxAsistents); codigoError = GestorCamps.gestionarOpcionCampamentos(3, newCamp); if(codigoError==1) { System.out.println("El campamento se ha agregado correctamente."); } else if(codigoError==-1) { System.out.println("El campamento no se ha guardado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } break; case 4: // Asociar un monitor a una actividad System.out.println("Listando las actividades"); activity = new ActivityDTO(); codigoError =GestorCamps.gestionarOpcionActividad(4, activity); if(codigoError==1) { System.out.println("Las actividades se han listado correctamente."); } else if(codigoError==-1) { System.out.println("Las actividades no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } System.out.println("Indique el id de la actividad a la que desea asociar un monitor:"); idActivity = Integer.parseInt(myObj.nextLine()); System.out.println("Listando los monitores"); MonitorDTO emptyMonitor = new MonitorDTO(); codigoError = GestorCamps.gestionarOpcionMonitor(4, emptyMonitor); if(codigoError==-1) { System.out.println("Los monitores no se han listado correctamente."); } else if(codigoError==-2) { System.out.println("El monitor ya está asignado a una actividad."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } else if(codigoError==1) { System.out.println("Los monitores se han listado correctamente."); System.out.println("Indique el ID del monitor que desea asociar:"); int monitorId = Integer.parseInt(myObj.nextLine()); ActivityDTO assignActivity = new ActivityDTO(idActivity); MonitorDTO assignMonitor = new MonitorDTO(monitorId); codigoError = GestorCamps.asignarMonitorEnActividad(assignActivity, assignMonitor); if(codigoError==1) { System.out.println("Monitor asociado a la actividad exitosamente."); } else if(codigoError==-1) { System.out.println("No se pudo asociar al monitor con la actividad."); } else if(codigoError==-2) { System.out.println("El monitor ya está asignado a una actividad."); } else if(codigoError==-3) { System.out.println("No se pueden asignar mas monitores en la actividad."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } } break; case 5: // Asignar actividades a campamento System.out.println("Listando las actividades"); activity = new ActivityDTO(); codigoError = GestorCamps.gestionarOpcionActividad(4, activity); if(codigoError==-1) { System.out.println("Las actividades no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } else if(codigoError==1) { System.out.println("Las actividades se han listado correctamente."); System.out.println("Indique el id de la actividad para asociar a un determinado campamento:"); idActivity = Integer.parseInt(myObj.nextLine()); System.out.println("Listando los campamentos"); CampDTO emptyCamp = new CampDTO(); codigoError =GestorCamps.gestionarOpcionCampamentos(5, emptyCamp); if(codigoError==-1) { System.out.println("Los campamentos no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } else if(codigoError==1) { System.out.println("Los campamentos se han listado correctamente."); System.out.println("Indique el ID del campamento al que se desea asociar:"); int idCamp = Integer.parseInt(myObj.nextLine()); System.out.println("Indique el tipo de nivel educacional de la actividad:"); System.out.println("1. INFANTIL"); System.out.println("2. JUVENIL"); System.out.println("3. ADOLESCENTE"); int levelEducation = Integer.parseInt(myObj.nextLine()); activity = new ActivityDTO(idActivity, levelEducation); camp = new CampDTO(idCamp); codigoError = GestorCamps.asignarActividadEnCampamento(activity, camp); if(codigoError==1) { System.out.println("Actividad asociada al campamento exitosamente."); } else if(codigoError==-1) { System.out.println("El ID de la actividad no es correcto. Comprueba los datos introducidos y prueba de nuevo."); } else if(codigoError==-2) { System.out.println("El ID del campamento no es correcto. Comprueba los datos introducidos y prueba de nuevo."); } else if(codigoError==-3) { System.out.println("La actividad ya ha sido asignada a otro campamento."); } else if(codigoError==-4) { System.out.println("La actividad no ha podido ser asociada al campamento indicado."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } } } break; case 6: // Asignar monitor responsable a campamento. System.out.println("Listando los monitores"); monitor = new MonitorDTO(); codigoError = GestorCamps.gestionarOpcionMonitor(4, monitor); if(codigoError==-1) { System.out.println("Los monitores no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } else if(codigoError==1) { System.out.println("Los monitores se han listado correctamente."); System.out.println("Indique el ID del monitor responsable que desea asociar:"); monitorID = Integer.parseInt(myObj.nextLine()); monitor = new MonitorDTO(monitorID); System.out.println("Listando los campamentos"); camp = new CampDTO(); codigoError =GestorCamps.gestionarOpcionCampamentos(5, camp); if(codigoError==-1) { System.out.println("Los campamentos no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } else if(codigoError==1) { System.out.println("Los campamentos se han listado correctamente."); System.out.println("Indique el id del campamento al que desea asociar un monitor:"); int idCamp = Integer.parseInt(myObj.nextLine()); camp = new CampDTO(idCamp); codigoError = GestorCamps.asignarMonitorEnCampamento(camp, monitor); if(codigoError==1) { System.out.println("Monitor responsable asociado a campamento exitosamente"); } else if(codigoError==-1) { System.out.println("El ID del monitor no es correcto. Comprueba los datos introducidos y prueba de nuevo."); } else if(codigoError==-2) { System.out.println("El ID del campamento no es correcto. Comprueba los datos introducidos y prueba de nuevo."); } else if(codigoError==-3) { System.out.println("El monitor ya ha sido asignado como responsable de otro campamento."); } else if(codigoError==-4) { System.out.println("El monitor no ha podido ser asociado al campamento indicado."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } } } break; case 7: // Asignar monitor de atencion especial a campamento System.out.println("Listando los monitores"); monitor = new MonitorDTO(); codigoError = GestorCamps.gestionarOpcionMonitor(4, monitor); if(codigoError==-1) { System.out.println("Los monitores no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } else if(codigoError==1) { System.out.println("Los monitores se han listado correctamente."); System.out.println("Indique el ID del monitor de atencion especial que desea asociar:"); monitorID = Integer.parseInt(myObj.nextLine()); System.out.println("Listando los campamentos"); camp = new CampDTO(); codigoError = GestorCamps.gestionarOpcionCampamentos(5, camp); if(codigoError==-1) { System.out.println("Los campamentos no se han listado correctamente."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } if(codigoError==1) { System.out.println("Los campamentos se han listado correctamente."); System.out.println("Indique el id del campamento a el que desea asociar un monitor:"); int idCamp = Integer.parseInt(myObj.nextLine()); camp = new CampDTO(idCamp); monitor = new MonitorDTO(monitorID); codigoError = GestorCamps.asignarMonitorEspecialEnCampamento(camp, monitor); if(codigoError==1) { System.out.println("Monitor especial asociado a campamento exitosamente"); } else if(codigoError==-1) { System.out.println("El ID del monitor no es correcto. Comprueba los datos introducidos y prueba de nuevo."); } else if(codigoError==-2) { System.out.println("El monitor no es un educador especial. Prueba a asignar otro."); } else if(codigoError==-3) { System.out.println("No es necesario introducir un monitor especial en ese campamento."); } else if(codigoError==-4) { System.out.println("El monitor especial no ha podido ser asociado al campamento indicado."); } else if(codigoError==-5) { System.out.println("El monitor especial ya ha sido asignado."); } else if(codigoError==0) { System.out.println("No se puede establecer conexion con la base de datos."); } } } break; } } } }
Editor is loading...