MenuCamp
unknown
plain_text
2 years ago
22 kB
8
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...