Package dao

Source Code of dao.SolicitudRetiroJPADAO

package dao;

import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

import utiles.Constantes;

import entidades.Alumno;
import entidades.AsistenteDireccionAcademica;
import entidades.Boleta;
import entidades.Certificadoa;
import entidades.Cita;
import entidades.SolicitudRetiro;

public class SolicitudRetiroJPADAO implements SolicitudRetiroDAO {

  private EntityManagerFactory emf;
  private EntityManager em;
 
  public void setEntityManagerFactory(EntityManagerFactory emf) {
    // TODO Auto-generated method stub
    this.emf = emf;
  }

  @Override
  public boolean NoExisteDeudas(Boleta boleta) throws Exception {
   
    boolean resultado = false;
    try {
      em = emf.createEntityManager();
      Boleta objBoleta = null;
      Query q = em.createQuery("select b from Boleta b where b.apoderados.personas.strCodigoPersona=?1 and " +
                           "b.strEstado='Cancelado'");
      q.setParameter(1, boleta.getApoderados().getPersonas().getStrCodigoPersona());
      objBoleta = (Boleta) q.getSingleResult();
      em.close();
      if(objBoleta!=null){
        resultado = true;
        return resultado;
      }else{
        resultado = false;
        return resultado;
      }
    } catch (Exception e) {
      resultado = false;
      return resultado;
    }

  }

  @SuppressWarnings("rawtypes")
  @Override
  public SolicitudRetiro buscarSolicitudXAlumnoXA�o(SolicitudRetiro sr)
      throws Exception {
    System.out.println("Codigo de alumno q llega: "+sr.getAlumno().getStrCodigoAlumno());
    SolicitudRetiro entidadSR=new SolicitudRetiro();
    em = emf.createEntityManager();
   
    Query q=em.createQuery("SELECT sr FROM SolicitudRetiro sr " +
        "WHERE sr.strEstado='PENDIENTE' AND sr.alumno.strCodigoAlumno=?1");
    q.setParameter(1, sr.getAlumno().getStrCodigoAlumno());
    //q.setParameter(2, fechamayor);
    //q.setParameter(3,fechamenor);
    List lista=q.getResultList();
     if(lista.size()>0){
       System.out.println("id sr: "+lista.get(lista.size()-1));
       entidadSR= (SolicitudRetiro)lista.get(lista.size()-1);
     }else
       entidadSR=null;

    em.close();
    return entidadSR;
 
  }

  @Override
  public void registrarSolictud(SolicitudRetiro sr) throws Exception {
    // TODO Auto-generated method stub

    em=emf.createEntityManager();
    em.getTransaction().begin();
    em.persist(sr);
    em.flush();

    em.getTransaction().commit();
    em.close();
  }

  @SuppressWarnings("rawtypes")
  public ArrayList<SolicitudRetiro> obtenerTodasSolicitudes()
      throws Exception {
    em = emf.createEntityManager();
    ArrayList<SolicitudRetiro> solicitudesRetiro = new ArrayList<SolicitudRetiro>();
    List lista = em.createQuery("SELECT sr FROM SolicitudRetiro sr ").getResultList();  
     if(lista.size()>0){
        for ( int i=0; i < lista.size(); i++ ) {
          SolicitudRetiro entidad = (SolicitudRetiro)lista.get(i);
          solicitudesRetiro.add(entidad);
        }
     }
    em.close();
    return solicitudesRetiro;
 
  }

  @SuppressWarnings("rawtypes")
  public ArrayList<SolicitudRetiro> obtenerSolicitudesPendientes()
      throws Exception {
    em = emf.createEntityManager();
    ArrayList<SolicitudRetiro> solicitudesRetiro = new ArrayList<SolicitudRetiro>();
     
    List lista = em.createQuery("SELECT sr FROM SolicitudRetiro sr " +
                        "WHERE sr.strEstado = 'Pendiente'").getResultList();
    
     if(lista.size()>0){
        for ( int i=0; i < lista.size(); i++ ) {
          SolicitudRetiro entidad = (SolicitudRetiro)lista.get(i);
          solicitudesRetiro.add(entidad);
        }
     }
    
     for (SolicitudRetiro x : solicitudesRetiro) {
       StreamedContent image;
      
       image = new DefaultStreamedContent(new ByteArrayInputStream(x.getCertificadobin()));
      
       x.setScImagen(image);
    }

    em.close();
    return solicitudesRetiro;
  }

  @SuppressWarnings("rawtypes")
  @Override
  public ArrayList<SolicitudRetiro> obtenerSRxADA(
      AsistenteDireccionAcademica ada) throws Exception {
    System.out.println("leyendo SRxADA");
    em = emf.createEntityManager();
    ArrayList<SolicitudRetiro> solicitudesRetiro = new ArrayList<SolicitudRetiro>();
    Query q=em.createQuery("SELECT sr FROM SolicitudRetiro sr WHERE sr.strEstado = 'PENDIENTE' OR sr.asistenteDireccion.personas.strCodigoPersona=?1");
    q.setParameter(1, ada.getPersonas().getStrCodigoPersona());
   
    List lista = q.getResultList();
    
     if(lista.size()>0){
        for ( int i=0; i < lista.size(); i++ ) {
          SolicitudRetiro entidad = (SolicitudRetiro)lista.get(i);
          solicitudesRetiro.add(entidad);
        }
     }

    em.close();
    return solicitudesRetiro;
  }

  @SuppressWarnings("rawtypes")
  @Override
  public Cita cargaDatosCitaxEvaluar(SolicitudRetiro selectedSolicitud)
      throws Exception {
    System.out.println("cargando Cita Evaluada");
    em = emf.createEntityManager();
    //ArrayList<Cita> solicitudesRetiro = new ArrayList<Cita>();
    Query q=em.createQuery("SELECT c FROM Cita c WHERE c.strestado = 'ATENDIDO' AND c.alumno.strCodigoAlumno=?1");
    q.setParameter(1, selectedSolicitud.getAlumno().getStrCodigoAlumno());
   
    List lista = q.getResultList();
     Cita entidad=new Cita();
     if(lista.size()>0){
        //for ( int i=0; i < lista.size(); i++ ) {
           entidad = (Cita)lista.get(0);
        //  solicitudesRetiro.add(entidad);
        //}
     }

    em.close();
    return entidad;
  }

  @Override
  public void apruebaSR(SolicitudRetiro selectedSolicitud) throws Exception {
    em=emf.createEntityManager();

    //1.inicia la transacci�n
    em.getTransaction().begin();

    //2. ejecuta las operaciones
    //2.1 busca Empleado por llave primaria
    SolicitudRetiro entidadSR = em.find(SolicitudRetiro.class, selectedSolicitud.getIntIdCodigoSolicitudRetiro());
    entidadSR.setStrEstado(Constantes.ESTADOSR_APROBADO);
    entidadSR.setAsistenteDireccion(selectedSolicitud.getAsistenteDireccion());
   
    //2.3 actualiza Empleado
    em.merge(entidadSR);
    em.flush();
       
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
 
  }

  @Override
  public void desapruebaSR(SolicitudRetiro selectedSolicitud)
      throws Exception {
    // TODO Auto-generated method stub

    em=emf.createEntityManager();

    //1.inicia la transacci�n
    em.getTransaction().begin();

    //2. ejecuta las operaciones
    //2.1 busca Empleado por llave primaria
    SolicitudRetiro entidadSR = em.find(SolicitudRetiro.class, selectedSolicitud.getIntIdCodigoSolicitudRetiro());
    entidadSR.setStrEstado(Constantes.ESTADOSR_RECHAZADO);
    entidadSR.setAsistenteDireccion(selectedSolicitud.getAsistenteDireccion());
    //2.3 actualiza Empleado
    em.merge(entidadSR);
    em.flush();
       
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
 
 
  }

  @SuppressWarnings("rawtypes")
  @Override
  public ArrayList<Certificadoa> obtenerCertificadosXAlumno(String elfiltro)
      throws Exception {

    System.out.println("leyendo elfiltro: "+elfiltro);
    em = emf.createEntityManager();
    //ArrayList<SolicitudRetiro> solicitudesRetiro = new ArrayList<SolicitudRetiro>();
    Query q=em.createQuery("SELECT c FROM Cita c WHERE c.alumno.strCodigoAlumno=?1 AND c.strestado='ATENDIDO'");
    q.setParameter(1, elfiltro);
   
    List lista = q.getResultList();
    List listatemp = null;
    ArrayList<Certificadoa> lista2 = new ArrayList<Certificadoa>();
     if(lista.size()>0){
     
       System.out.println("lista de citas relacionadas tiene "+lista.size()+" items");
        for ( int i=0; i < lista.size(); i++ ) {
          Query query=em.createQuery("SELECT ca FROM Certificadoa ca WHERE ca.intCodcita=?1");
          query.setParameter(1, ((Cita)(lista.get(i))).getIntcodcita());
         
          listatemp=query.getResultList();
          if(listatemp.size()>0){
            System.out.println("agregando "+listatemp.size()+" items de la listatemp");
            for(int j=0;j<listatemp.size();j++){
              lista2.add((Certificadoa) listatemp.get(j));
            }
            System.out.println("tama�o de lista2: "+lista2.size());
            //lista2.addAll(listatemp);
          }
          else{
            lista2.clear();
            System.out.println("listatemp vacia - iteracion: "+i);
          }
          lista.clear();
          listatemp.clear();
        }
     }else{
       lista2.clear();
       System.out.println("lista de citas relacionadas, vacia");
     }

    em.close();
   
    if(lista2.size()>0)
      return lista2;
    else
      return null;
 
  }

  @Override
  public SolicitudRetiro verificarExistenciaSR(Alumno tmpAlumno)
      throws Exception {
   
    System.out.println("Codigo de alumno q llega: "+ tmpAlumno.getStrCodigoAlumno());

    SolicitudRetiro tmpSR = null;
   
    try {
      em = emf.createEntityManager();
     
      em.getTransaction().begin();
     
      Query  q = em.createQuery("SELECT sr FROM SolicitudRetiro sr " +
      "WHERE (sr.strEstado='APROBADO' OR sr.strEstado='PENDIENTE') AND sr.alumno.strCodigoAlumno=?1");
      q.setParameter(1, tmpAlumno.getStrCodigoAlumno());
     
      tmpSR = (SolicitudRetiro) q.getSingleResult();
     
      if(tmpSR!=null){
        return tmpSR;
      }else{
        return null;
      }     
    } catch (Exception e) {
      em.close();
      return null;
    }finally{
      em.close();
    }
   
  }

}
TOP

Related Classes of dao.SolicitudRetiroJPADAO

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.