/** * * @author Johannes Rothkegel, Juan Pablo Rothkegel Ide, Raul Cortes * * Reservas Personas, es la clase que se encarga de anidar la reserva con una persona respectiva * y así poder mostrar luego por pantalla, que habitaciones están disponibles para el cliente. * */ import java.util.*; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ReservasPersona implements DataBase{ private Personas personas; private ArrayList reservas; public ReservasPersona(Personas p){ personas = p; reservas = new ArrayList(); this.refreshDataBase(); } /** * addReserva añade una reserva al arreglo, si es que ya existe muestra un mensaje de error. * Se puede dar el caso que una persona no tenga reserva y se quiera intentar de agregar igual * al arreglo, lo cual igual envía un mensaje de error. */ public void addReserva(Reserva p){ Persona per = personas.getPersona(p.getRut()); Reserva res = (this).getReservaId(p.getId()); if(per!=null){ if(res==null) reservas.add(p); else System.out.println("<-- Error! Codigo de Reserva ya existente -->"); } else System.out.println("<-- Error al ingresar Reserva, no existe persona con rut "+ p.getRut() +" -->"); } public Reserva getReservaId(String id){ for(Reserva r: reservas){ if(r.getId().equals(id)) return r; } return null; } public Reserva getReservaRut(String rut){ for(Reserva r: reservas){ if(r.getRut().equals(rut)) return r; } return null; } /** * showReservas es un método que se encarga de mostrar la tabla de reservas. */ public void showReservas(){ System.out.println("Nombre"+"\t"+"CodigoReserva"+"\t"+"Desde"+"\t\t\t"+"Hasta"); System.out.println("---------------------------------------------"); for(Reserva p: reservas){ String st; Persona per = personas.getPersona(p.getRut()); if(per!=null) st = per.getNombre() +"\t"+ p.getId()+"\t\t\t"+p.desde+"\t"+p.hasta; else st = "<-- Error, no existe persona con rut"+ p.getRut() +" -->"; System.out.println(st); } System.out.println(); } //---------------------------------------Data Base methods-------------------------------------- public void writeDataBase(){ int i=0; try { FileWriter writer = new FileWriter("Reserva.txt"); for(Reserva p: reservas){ if(i!=0) writer.write("\r\n" ); writer.write(p.getId()+"\t"+p.getRut()+"\t"+p.desde+"\t"+p.hasta); i++; } writer.close(); } catch (IOException e) { e.printStackTrace(); } } public void deleteFromDataBase(String id){ for(int i=0;i per = new ArrayList(); for(Reserva p: reservas){ per.add(p); } reservas.clear(); try{ in = new Scanner(file); while(in.hasNextLine()){ String r,id,d,h; if(in.hasNext()) id = in.next(); else break; if(in.hasNext()) r = in.next(); else break; if(in.hasNext()) d = in.next(); else break; if(in.hasNext()) h = in.nextLine().trim(); else break; if(id != ""){ reservas.add(new Reserva(id,r,d,h)); } } } catch(FileNotFoundException exception){ System.out.println("The file " + file.getPath() + " was not found."); System.exit(-1); } if (in.hasNextLine()) // there was a break while reading the input file System.out.println("Input file format error in: "+in.nextLine()); for(Reserva p: per){ boolean isIn=false; for(Reserva pe: reservas){ if(pe.getId().equals(p.getId())){ isIn=true; } } if(isIn == false){ reservas.add(p); writeDataBase(); } } } }