Package dao

Source Code of dao.PersonaJPADAO

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 entidades.Alumno;
import entidades.Apoderado;
import entidades.AsistentaSocial;
import entidades.AsistenteCoordinacionAcademica;
import entidades.AsistenteDireccionAcademica;
import entidades.Distrito;
import entidades.Perfil;
import entidades.Persona;
import entidades.SecretariaAcademica;

public class PersonaJPADAO implements PersonaDAO {

  private EntityManagerFactory emf;
  private EntityManager em;
 
  public void setEntityManagerFactory(EntityManagerFactory emf) {
    this.emf=emf;
  }
 
  //Este metodo lista a todos los Empleados de la tabla Persona(NO APODERADOS)
  @SuppressWarnings("rawtypes")
  public ArrayList<Persona> obtenerTodosEmpleados()throws Exception {
   
      em = emf.createEntityManager();
   
    ArrayList<Persona> empleados = new ArrayList<Persona>();
     
     List lista = em.createQuery("SELECT p FROM Persona p " +
                             "inner join p.tbUsuarios u " +
                             "where u.perfiles.strCodigoPerfil <> 'pf01' " +
                             "order by p.strApellidoPaterno").getResultList();
    
     if(lista.size()>0){
        for ( int i=0; i < lista.size(); i++ ) {
          Persona entidad = (Persona)lista.get(i);
          empleados.add(entidad);
        }
     }
    
    
     for (Persona x : empleados) {  
      x.setPerfil(obtienePerfilPersona(x.getStrCodigoPersona()));
     
      StreamedContent image;
     
       if(x.getFotobin()!=null){
         image = new DefaultStreamedContent(new ByteArrayInputStream(x.getFotobin()));
        
         x.setScImagen(image);
       }
     }
   

    em.close();
   
    return empleados;
   
  }
 
  public Perfil obtienePerfilPersona(String codigoPersona){
    Query q =  em.createQuery("SELECT p FROM Perfil p " +
                  "inner join p.tbUsuarios u " +
                  "where u.personas.strCodigoPersona = ?1");
    q.setParameter(1, codigoPersona);
   
    try {
      Perfil entidadPerfil =(Perfil)q.getSingleResult();
      if(entidadPerfil!=null)
        return entidadPerfil;
      else
        return null;
    } catch (Exception e) {
      return null;
    }
  }
 
  @Override
  public Persona consultarPersona(Persona p) throws Exception {
    em=emf.createEntityManager();
    Query q =  em.createQuery("SELECT p FROM Persona p WHERE p.intDNI=?1");
    q.setParameter(1, p.getIntDNI());
   
    try {
      Persona entidadPersona =(Persona)q.getSingleResult();
      em.close();
      if(entidadPersona!=null)
        return entidadPersona;
      else
        return null;
    } catch (Exception e) {
      return null;
    }
   
  }

  @Override
  public void registrarPersona(Persona nueva) throws Exception {
    em=emf.createEntityManager();
   
    System.out.println("xxxxxx  " + nueva.getIntDNI());
   
    nueva.setStrCodigoPersona("PE-" + nueva.getIntDNI());

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

    //2.ejecuta las operaciones
    em.persist(nueva);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }

  //Este metodo guarda al apoderado en su tabla Apoderado
  @Override
  public void guardaApoderado(Apoderado apo) throws Exception {
    // TODO Auto-generated method stub
    em=emf.createEntityManager();

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

    //2.ejecuta las operaciones
    em.persist(apo);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }
 
  //Este metodo guarda a la asistentadocial en su tabla AsistentaSocial
  @Override
  public void guardaAsistentaSocial(AsistentaSocial asistenta) throws Exception {
    // TODO Auto-generated method stub
    em=emf.createEntityManager();
   
    System.out.println("Codigo Asistenta Social " + asistenta.getPersonas().getStrCodigoPersona());
   
    asistenta.setStrConsultorio("A-101");

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

    //2.ejecuta las operaciones
    em.persist(asistenta);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }
 
  //Este metodo guarda a la SecretariaAcademica en su tabla Secretaria
  @Override
  public void guardaSecretaria(SecretariaAcademica secretaria) throws Exception {
    // TODO Auto-generated method stub
    em=emf.createEntityManager();
   
    System.out.println("Codigo Secretaria " + secretaria.getPersonas().getStrCodigoPersona());

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

    //2.ejecuta las operaciones
    em.persist(secretaria);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }
 
  //Este metodo guarda a la Asitente de Coordinacion Academica en su tabla
  @Override
  public void guardaACA(AsistenteCoordinacionAcademica aca) throws Exception {
    // TODO Auto-generated method stub
    em=emf.createEntityManager();
   
    System.out.println("Codigo ACA " + aca.getPersonas().getStrCodigoPersona());

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

    //2.ejecuta las operaciones
    em.persist(aca);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }
 
  //Este metodo guarda a la Asitente de Direccion Academica en su tabla
  @Override
  public void guardaADA(AsistenteDireccionAcademica ada) throws Exception {
    // TODO Auto-generated method stub
    em=emf.createEntityManager();
   
    System.out.println("Codigo ADA " + ada.getPersonas().getStrCodigoPersona());

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

    //2.ejecuta las operaciones
    em.persist(ada);
    em.flush();
   
    //3.ejecuta commit a la transacci�n
    em.getTransaction().commit();
    em.close();
  }

  @Override
  public void actulizarPersona(Persona persona) throws Exception {
    System.out.println(persona.getStrCodigoPersona());
   
    em = emf.createEntityManager();

    em.getTransaction().begin();
   
    System.out.println("1");
    Persona entidadPersona = em.find(Persona.class, persona.getStrCodigoPersona());
    System.out.println("2");
   
    entidadPersona.setStrNombre(persona.getStrNombre());
    entidadPersona.setStrApellidoPaterno(persona.getStrApellidoPaterno());
    entidadPersona.setStrApellidoMaterno(persona.getStrApellidoMaterno());
    entidadPersona.setIntDNI(persona.getIntDNI());
    entidadPersona.setFotobin(persona.getFotobin());
   
    Distrito entidadDistrito = new Distrito();
    entidadDistrito.setIntIdDistrito(persona.getDistritos().getIntIdDistrito());
    entidadPersona.setDistritos(entidadDistrito);
   
    entidadPersona.setStrDireccion(persona.getStrDireccion());
    entidadPersona.setStrMail(persona.getStrMail());
    entidadPersona.setStrTelefono(persona.getStrTelefono());
    entidadPersona.setStrCelular(persona.getStrCelular());
    entidadPersona.setStrSexo(persona.getStrSexo());
   
    em.merge(entidadPersona);
    em.flush();
       
    em.getTransaction().commit();
    em.close();
   
  }

  @Override
  public Persona consultaApoderado(Persona p) throws Exception {
    em=emf.createEntityManager();
    Query q =  em.createQuery("SELECT p FROM Persona p " +
                             "inner join p.tbUsuarios u " +
                             "where u.perfiles.strCodigoPerfil='pf01' and p.intDNI=?1 " +
                             "order by p.strApellidoPaterno");
    q.setParameter(1, p.getIntDNI());
   
    try {
      Persona entidadPersona =(Persona)q.getSingleResult();
      em.close();
      if(entidadPersona!=null){
        System.out.println("la bd devolvio una persona: "+entidadPersona.getStrCodigoPersona());
        return entidadPersona;
      }
      else{
        System.out.println("la bd devolvio nulo");
        return null;
      }
    } catch (Exception e) {
      return null;
    }
  }

  @Override
  public Persona consultaApoderadoxAlumno(Alumno a) throws Exception {
    em=emf.createEntityManager();
    Query q =  em.createQuery("SELECT p FROM Persona p " +
                             "inner join p.tbUsuarios u " +
                             "where u.perfiles.strCodigoPerfil='pf01' and p.strCodigoPersona=?1 " +
                             "order by p.strApellidoPaterno");
    q.setParameter(1, a.getApoderados().getPersonas().getStrCodigoPersona());
   
    try {
      Persona entidadPersona =(Persona)q.getSingleResult();
      em.close();
      if(entidadPersona!=null){
        System.out.println("la bd devolvio una persona: "+entidadPersona.getStrCodigoPersona());
        return entidadPersona;
      }
      else{
        System.out.println("la bd devolvio nulo");
        return null;
      }
    } catch (Exception e) {
      return null;
    }
  }

  @Override
  public ArrayList<Persona> obtenerTodosEmpleadosXTipo(String tipo)
      throws Exception {
    System.out.println("buscando con perfil "+tipo);
    ArrayList<Persona>listaempleados=new ArrayList<Persona>();
    em=emf.createEntityManager();
    Query q =  em.createQuery("SELECT p FROM Persona p " +
                             "inner join p.tbUsuarios u " +
                             "where u.perfiles.strCodigoPerfil=?1 " +
                             "order by p.strApellidoPaterno");
    q.setParameter(1,tipo);
   
    try {
      //@SuppressWarnings("unchecked")
      @SuppressWarnings("rawtypes")
      List lista = q.getResultList();
      em.close();
      if(lista!=null && lista.size()>0){
        if(lista.size()>0){
          for ( int i=0; i < lista.size(); i++ ) {
            Persona entidad = (Persona)lista.get(i);
            listaempleados.add(entidad);
          }
        }
       
        System.out.println("la bd devolvio una lista de "+listaempleados.size()+" empleados con perfil "+tipo);
        return listaempleados;
      }
      else{
        System.out.println("la bd devolvio una lista de empleados nula o vacia");
        return null;
      }
    } catch (NullPointerException e) {
      System.out.println("hay algun objeto nulo");
      e.printStackTrace();
      return null;
    }catch (Exception e) {
      e.printStackTrace();
      return null;
    }
 
  }


}
TOP

Related Classes of dao.PersonaJPADAO

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.