Package jsf.bean

Source Code of jsf.bean.CitaBean

package jsf.bean;

import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.DateSelectEvent;
import org.primefaces.model.StreamedContent;

import servicios.ApplicationBusinessDelegate;
import servicios.BoletaService;
import servicios.CitaService;
import servicios.DisponibilidadAsistentaService;
import servicios.PersonaService;
import servicios.SolicitudRetiroService;
import utiles.Constantes;
import utiles.EnviaMail;
import entidades.Alumno;
import entidades.Apoderado;
import entidades.Boleta;
import entidades.Cita;
import entidades.Disponibilidadasistentasocial;
import entidades.Motivo;
import entidades.Persona;
import entidades.SolicitudRetiro;
import entidades.Usuario;


@SessionScoped
@ManagedBean
public class CitaBean implements Serializable {

   private static ApplicationBusinessDelegate abd = new ApplicationBusinessDelegate();
   
   private static PersonaService asistentaService = abd.getPersonaService();
   private static CitaService citaService = abd.getCitaService();
   private static SolicitudRetiroService retiroService = abd.getRetiroService();
   private static PersonaService personaService = abd.getPersonaService();
   private static BoletaService boletaService = abd.getBoletaService();
   private static DisponibilidadAsistentaService daservice=abd.getDisponibilidadAsistentaService();
  
  private static final long serialVersionUID = 1L;
  private String includedPage;
  private int intCodigoAlumno;
  private Alumno alumnoElegido=new Alumno();
  private Persona asistentaElegida=new Persona();
  private ArrayList<Persona> listaAsistentas;
  private Cita nuevaCita;
  private Date fechaCita;
  private String horaCita;
  private ArrayList<String> listaHorasDisponibles; 
  private String observacion;
  private Motivo motivo=new Motivo();
  private SolicitudRetiro misolicitud=new SolicitudRetiro();
  private SolicitudRetiro lasolicitud=new SolicitudRetiro();
  private Boleta boleta = new Boleta();
  private Map<String, Object> misesion;
  private StreamedContent documento;
 
  public CitaBean(){
    System.out.println("Creando CitaBean...");
    intCodigoAlumno = 0;   
  }
 
  public String redericcionaCita(){
   
    System.out.println("---------------Redireccionando------------------------");
    for (Method m : alumnoElegido.getClass().getMethods()){
      if((m.getName().startsWith("getStr"))||(m.getName().startsWith("getInt"))){
        try {
          System.out.println("Alumno Elegido para generacion de Cita - "+m.getName().substring(6).toUpperCase() + " : " +  m.invoke(alumnoElegido));
        }catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      } 
    }
    return "/citas/generarCita.xhtml";
  }
 
  public void cargaComboListadoHorasDisponibles(DateSelectEvent event){
    System.out.println("-------Cargando horas disponibles------");
    Date date=event.getDate();
    if(date!=null)
    System.out.println("fecha q llega: "+date.toString());
    if(this.asistentaElegida.getStrCodigoPersona()!=null)
    System.out.println("asistenta: "+this.asistentaElegida.getStrCodigoPersona());
    //if(this.horaCita!=null)
    //System.out.println("hora q llega: "+this.horaCita);
    if(this.fechaCita!=null && this.asistentaElegida.getStrCodigoPersona()!=null)
      cargaArregloHD2(this.asistentaElegida,date);
    else{
      this.horaCita="";
      System.out.println("Seleccione fecha, hora y asistenta");
    }
   
  }

  public void cargaComboListadoHorasDisponibles2(){
    System.out.println("-------Cargando horas disponibles 2------");
    //hacemos nula la hora
    this.horaCita=null;
    //------
    if(this.fechaCita!=null)
    System.out.println("fecha q llega: "+this.fechaCita);
    if(this.asistentaElegida.getStrCodigoPersona()!=null)
    System.out.println("asistenta: "+this.asistentaElegida.getStrCodigoPersona());
    //if(this.horaCita!=null)
    //System.out.println("hora q llega: "+this.horaCita);
    if(this.fechaCita!=null && this.asistentaElegida.getStrCodigoPersona()!=null)
      //cargaArregloCombo();
      //cargaArregloHD(this.asistentaElegida,this.fechaCita);
      cargaArregloHD2(this.asistentaElegida,this.fechaCita);
    else{
      System.out.println("Seleccione fecha, hora y asistenta");
    }
   
  }
 
 
  private void cargaArregloHD2(Persona asistentaElegida2, Date date) {
    // TODO Auto-generated method stub
    int eldia=date.getDay();
    System.out.println("cargaArregloHD2 - asistonta: "+asistentaElegida2.getStrCodigoPersona());
    System.out.println("cargaArregloHD2 - eldia: "+eldia);
    try {
      Disponibilidadasistentasocial midas=daservice.obtenerDisponibilidad(asistentaElegida2.getStrCodigoPersona(),eldia);
      listaHorasDisponibles=new ArrayList<String>();
     
      if(midas!=null){
        for(int i=Integer.parseInt(midas.getHorainicio());i<Integer.parseInt(midas.getHorafin());i++){
          if(i<10){
            listaHorasDisponibles.add("0"+i+":00:00");
            listaHorasDisponibles.add("0"+i+":30:00");
          }else {
            listaHorasDisponibles.add(""+i+":00:00");
            listaHorasDisponibles.add(""+i+":30:00");
          }
        }
      }else{
        System.out.println("La disponibilidad no fue encontrada en la BD");
      }
     
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
   
  }
 
  public void guardaCita(){
    System.out.println("guardando cita ... ");
    System.out.println("fechaCita: "+this.fechaCita);
    System.out.println("horaCita: "+this.horaCita);
    SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
    String lafecha=sd.format(this.fechaCita);
    System.out.println("lafecha: "+lafecha);
    System.out.println("lahora: "+this.horaCita);
   
   
    try {
      SimpleDateFormat sd2=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      String cadenafechahora=lafecha+" "+this.horaCita;
      System.out.println("cadenafechahora: "+cadenafechahora);
      Date temporal=sd2.parse(cadenafechahora);
      System.out.println("***temporal: "+temporal);
      Long tiempoexacto=temporal.getTime();
      //System.out.println("tiempoexacto:"+tiempoexacto);
     
      Cita miciCita=new Cita();
      miciCita.setAlumno(this.alumnoElegido);
      miciCita.setDtfecharegistro(new java.sql.Timestamp(tiempoexacto));
      System.out.println("fecha para el mysql:"+miciCita.getDtfecharegistro());
      miciCita.setIntcodtiposervicio(Constantes.TIPOSERVICIO_RETIRO);
      miciCita.setStrcodasistentasocial(this.asistentaElegida.getStrCodigoPersona());
      miciCita.setStrcoddisponibilidadas(obtieneCodDA(this.fechaCita,this.horaCita));
      miciCita.setStrestado(Constantes.CITA_PENDIENTE);
      miciCita.setStrMail(this.alumnoElegido.getApoderados().getPersonas().getStrMail());
      miciCita.setStrtlffijo(this.alumnoElegido.getApoderados().getPersonas().getStrTelefono());
      miciCita.setTlfcelular(this.alumnoElegido.getApoderados().getPersonas().getStrCelular());
     
      System.out.println("consultando citas pendientes para alumno: "+alumnoElegido.getIntDni());
      Cita citapendiente=citaService.consultaCitaPendiente(this.alumnoElegido.getStrCodigoAlumno());
      if(citapendiente!=null){
        System.out.println("Existe una cita pendiente para este alumno el dia "+citapendiente.getDtfecharegistro());
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Cita","El Alumno ya presenta una cita pendiente para el dia "+citapendiente.getDtfecharegistro() ));
      }else{
        System.out.println("insertando Solicitud de Retiro ... ");
        if(guardaSR()==true){
          System.out.println("insertando cita ... ");
          citaService.registrarCita(miciCita);
          System.out.println("cita insertada ... ");
          System.out.println("enviando correo ... ");
          EnviaMail enviador=new EnviaMail();
          enviador.enviarCorreoRegistroCita(miciCita);
          FacesMessage msg = new FacesMessage("Cita Registrada","Se guard� Cita del Alumno "+miciCita.getAlumno().getStrCodigoAlumno()+" para el dia "+miciCita.getDtfecharegistro());
              FacesContext.getCurrentInstance().addMessage(null, msg);
        }else{
          System.out.println("No se inserta la SR ... no se insertara nada mas ... ");
          FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Cita","Previamente no se pudo insertar la Solicitud de Retiro" ));
        }
       
       
      }
     
    } catch (Exception e) {
      FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Cita","Error: "+e.getMessage() ));
      e.printStackTrace();
    }
   
  }
 
  private boolean guardaSR(){
    boolean flagssss=false;
    SolicitudRetiro sr=new SolicitudRetiro();
    sr.setAlumno(alumnoElegido);
    sr.setIntFlagprocesado(0);
    sr.setDtFecNac(new java.sql.Date(new java.util.Date().getTime()));
    sr.setStrEstado("PENDIENTE");
    sr.setStrMotivo(""+motivo.getIntCodigoMotivo());
    sr.setStrObservacion(observacion);
    sr.setAsistenteDireccion(null);
   
    if(lasolicitud.getCertificadobin()!=null){
      System.out.println("certificadobin lleno ... ");
     
      sr.setCertificadobin(lasolicitud.getCertificadobin());
    }else{
      System.out.println("certificadobin vacio");
    }
     
   
    Apoderado tempoapo=new Apoderado();
    Persona tempopersona=new Persona();
    try {
      System.out.println("consultando apoderado del alumno ... ");
      tempopersona=personaService.consultaApoderadoxAlumno(alumnoElegido);
      if(tempopersona!=null){
        System.out.println("Apoderado encontrado: "+tempopersona.getStrCodigoPersona());
        tempoapo.setPersonas(tempopersona);
       
        System.out.println("Ahora se consultara la boleta: "+boleta.getStrCodigoBoleta());
        Boleta boletempo=new Boleta();
        Boleta miboleta=new Boleta();
        boletempo.setStrCodigoBoleta(boleta.getStrCodigoBoleta());
        Apoderado apotempo=new Apoderado();
        Persona persotempo=new Persona();
        misesion=FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
        int numero=((Usuario)misesion.get("b_usuario")).getPersonas().getIntDNI();
        System.out.println("numerooooo de DNI del apoderado: "+numero);
        persotempo.setIntDNI(numero);
        apotempo.setPersonas(persotempo);
        boletempo.setApoderados(apotempo);

        miboleta=boletaService.obtenerBoleta(boletempo);
        if(miboleta!=null){
          System.out.println("Boleta encontrada, se va a consultar si existe alguna solicitud pendiente ... ");
          SolicitudRetiro temposr=retiroService.buscarSolicitudXAlumnoXA�o(sr);
          if(temposr!=null){
            System.out.println("Ya existe una solicitud de retiro pendiente");
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Solicitud de Retiro","El Alumno "+ sr.getAlumno().getStrCodigoAlumno()+" ya tiene una solicitud de retiro registrada !" ));
          }else{
            System.out.println("registrando Solicitud de Retiro ... ");
            retiroService.registrarSolictud(sr);
            System.out.println("actualizando estado de Boleta ... ");
            boletaService.actualizaCierredeBoleta(miboleta);
            FacesMessage msg = new FacesMessage("Solicitud de Retiro Registrada","Se guard� Solicitud de Retiro del Alumno "+sr.getAlumno().getStrCodigoAlumno());
                FacesContext.getCurrentInstance().addMessage(null, msg);
                flagssss=true;
          }
         
        }else{
          System.out.println("No se encontro la boleta ... ");
          FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Solicitud de Retiro","Boleta de Pago No Encontrada" ));
        }
       
      }else{
        System.out.println("No existe apoderado para el alumno: "+alumnoElegido.getIntDni());
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Solicitud de Retiro","No existe apoderado para el alumno "+sr.getAlumno().getStrCodigoAlumno() ));
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error: No se insert� la Solicitud de Retiro","Error General: "+e.getMessage()));
      e.printStackTrace();
     
    }
   
    return flagssss;
  }
 

  private String obtieneCodDA(Date fechaCita2, String horaCita2) {
    // TODO Auto-generated method stub
    int diadelasemana=fechaCita2.getDay();
    System.out.println("diadelasemana : "+diadelasemana);
    int mihora=-1;
    if(horaCita2.startsWith("0")){
      mihora=Integer.parseInt(horaCita2.substring(1,2));
      System.out.println("horadeldia : "+mihora);
    }
    else if(horaCita2.startsWith("1")){
      mihora=Integer.parseInt(horaCita2.substring(0,2));
      System.out.println("horadeldia : "+mihora);
    }
   
    switch (diadelasemana) {
    case 1:
        if(mihora<13)
          return ""+1;
        else
          return ""+2;
    case 2:
      if(mihora<13)
        return ""+3;
      else
        return ""+4;
    case 3:
      if(mihora<13)
        return ""+5;
      else
        return ""+6;
    case 4:
      if(mihora<13)
        return ""+7;
      else
        return ""+8;
    case 5:
      if(mihora<13)
        return ""+9;
      else
        return ""+10;
    case 6:
      if(mihora<13)
        return ""+11;
      else
        return ""+12;
    default:
      return null;
    }

  }

  public int getIntCodigoAlumno() {
    return intCodigoAlumno;
  }

  public void setIntCodigoAlumno(int intCodigoAlumno) {
    this.intCodigoAlumno = intCodigoAlumno;
  }

  public String getIncludedPage() {
    return includedPage;
  }

  public void setIncludedPage(String includedPage) {
    this.includedPage = includedPage;
  }

  public Persona getAsistentaElegida() {
    return asistentaElegida;
  }

  public void setAsistentaElegida(Persona asistentaElegida) {
    this.asistentaElegida = asistentaElegida;
  }

  public ArrayList<Persona> getListaAsistentas() {
    try {
      System.out.println("cargando asistentas ... ");
      listaAsistentas = asistentaService.obtenerTodosEmpleadosXTipo(Constantes.EMPLEADO_ASISTENTASOCIAL);
      System.out.println(listaAsistentas.size()+" asistentas cargadas");
    } catch (Exception e) {
      e.printStackTrace();
    }
    return listaAsistentas;
  }

  public void setListaAsistentas(ArrayList<Persona> listaAsistentas) {
    this.listaAsistentas = listaAsistentas;
  }

  public Alumno getAlumnoElegido() {
    return alumnoElegido;
  }

  public void setAlumnoElegido(Alumno alumnoElegido) {
    this.alumnoElegido = alumnoElegido;
  }

  public Cita getNuevaCita() {
    return nuevaCita;
  }

  public void setNuevaCita(Cita nuevaCita) {
    this.nuevaCita = nuevaCita;
  }

  public String getHoraCita() {
    return horaCita;
  }

  public void setHoraCita(String horaCita) {
    this.horaCita = horaCita;
  }

  public ArrayList<String> getListaHorasDisponibles() {
    return listaHorasDisponibles;
  }

  public void setListaHorasDisponibles(ArrayList<String> listaHorasDisponibles) {
    this.listaHorasDisponibles = listaHorasDisponibles;
  }

  public Date getFechaCita() {
    return fechaCita;
  }

  public void setFechaCita(Date fechaCita) {
    this.fechaCita = fechaCita;
  }

  public String getObservacion() {
    return observacion;
  }

  public void setObservacion(String observacion) {
    this.observacion = observacion;
  }

  public Motivo getMotivo() {
    return motivo;
  }

  public void setMotivo(Motivo motivo) {
    this.motivo = motivo;
  }

  public SolicitudRetiro getMisolicitud() {
    return misolicitud;
  }

  public void setMisolicitud(SolicitudRetiro misolicitud) {
    this.misolicitud = misolicitud;
  }

  public Boleta getBoleta() {
    return boleta;
  }

  public void setBoleta(Boleta boleta) {
    this.boleta = boleta;
  }

  public StreamedContent getDocumento() {
    return documento;
  }

  public void setDocumento(StreamedContent documento) {
    this.documento = documento;
  }

  public SolicitudRetiro getLasolicitud() {
    return lasolicitud;
  }

  public void setLasolicitud(SolicitudRetiro lasolicitud) {
    this.lasolicitud = lasolicitud;
  }
 
 
}
TOP

Related Classes of jsf.bean.CitaBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.