package com.fp.armas.portal.dao.registro; import java.util.List; import javax.persistence.Query; import com.fp.armas.portal.dao.general.GenericDaoImpl; import com.fp.armas.portal.model.Tcustpersonphone; import com.fp.armas.portal.util.FechaUtil; import com.fp.armas.portal.util.PortalMessages; import com.fp.armas.portal.util.RegistroException; /** * Objeto de acceso a datos de la tabla {@link Tcustpersonphone} * @author dcruz * */ public class TelefonoPersonaDao extends GenericDaoImpl { public TelefonoPersonaDao() { super(Tcustpersonphone.class); } /** * Retorna el primer teléfono encontrado del tipo enviado * @param personcode * @param tipotelefono * @return */ @SuppressWarnings("unchecked") public Tcustpersonphone obtenerTelefonoTipo(Integer personcode, String tipotelefono) { Tcustpersonphone telefono = null; Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonphone o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.phonetypecatalog=:valortelefono AND o.phonetypecatalogcode=:tipocodigotelefono"); query.setParameter("personcode", (long)personcode); query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); query.setParameter("valortelefono", tipotelefono); query.setParameter("tipocodigotelefono", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono")); List listphones = query.getResultList(); if(listphones != null && !listphones.isEmpty()){ telefono = listphones.iterator().next(); } return telefono; } /** * Retorna el primer teléfono encontrado del tipo enviado * @param personcode * @param tipotelefono * @return */ @SuppressWarnings("unchecked") public List obtenerTelefonosPorTipo(Long personcode, String tipotelefono) { Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonphone o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.phonetypecatalog=:valortelefono AND o.phonetypecatalogcode=:tipocodigotelefono"); query.setParameter("personcode", (long)personcode); query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); query.setParameter("valortelefono", tipotelefono); query.setParameter("tipocodigotelefono", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono")); List listphones = query.getResultList(); if(listphones != null && !listphones.isEmpty()){ return listphones; } return null; } /** * Busca y retorna la primera dirección encontrada * @param personcode * @param tipodireccion * @return * @throws RegistroException */ public Long maxSecuencia(long personcode) throws RegistroException{ Query query = this.getEntityManager().createQuery("SELECT max(o.id.phonesequence) FROM Tcustpersonphone o WHERE o.id.personcode=:personcode"); query.setParameter("personcode", (long)personcode); //query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); return (Long)query.getSingleResult(); } }