package com.fp.persistence.pgeneral.gene; import java.io.Serializable; import java.lang.reflect.Field; import java.math.BigDecimal; import java.sql.Date; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.EmbeddedId; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.persistence.Query; import javax.persistence.Table; import javax.persistence.Transient; import org.hibernate.SQLQuery; import org.hibernate.Session; import com.fp.common.helper.Constant; import com.fp.dto.hb.HibernateBean; import com.fp.teller.exception.TellerException; /** Clase que implementa la entidad de Hibernate que hace referencia a la tabla TGENETELLERTRANSFERHEADER */ @Entity(name = "TgeneTellerTransferHeader") @Table(name = "TGENETELLERTRANSFERHEADER") public class TgeneTellerTransferHeader extends com.fp.dto.AbstractDataTransport implements Serializable, HibernateBean, Cloneable { /** * HashCode asociado con la Instancia */ @Transient private int hashValue = 0; /** * Version de la Clase */ private static final long serialVersionUID = 1L; /** * Clave primaria de la Entidad TgeneTellerTransferHeader */ @EmbeddedId private TgeneTellerTransferHeaderKey pk; @Column(name = "DATEFROM", nullable = true) /** * Numero de mensaje con el que se procersa el financiero. */ private Timestamp datefrom; @Column(name = "CURRENCYCODE", nullable = false) /** * Codigo de moneda */ private String currencycode; @Column(name = "OFFICECODE", nullable = false) /** * Codigo de oficina origen */ private Integer officecode; @Column(name = "BRANCHCODE", nullable = false) /** * Codigo de sucursal origen */ private Integer branchcode; @Column(name = "COMPANYCODE", nullable = false) /** * Codigo de compania al que pertenece la oficina */ private Integer companycode; @Column(name = "DESTINYUSERCODE", nullable = true) /** * Codigo de usuario destino */ private String destinyusercode; @Column(name = "DESTINYOFFICECODE", nullable = true) /** * Codigo de oficina destino */ private Integer destinyofficecode; @Column(name = "DESTINYBRANCHCODE", nullable = true) /** * Codigo de sucursal destino */ private Integer destinybranchcode; @Column(name = "STATUSCATALOG", nullable = true) /** * Codigo de catalogo 01 Natural, 02 Juridico */ private String statuscatalog; @Column(name = "STATUSCATALOGCODE", nullable = true) /** * Codigo de tabla de catalogo 01 Codigo de tabla de tipos de persona */ private String statuscatalogcode; @Column(name = "ISVAULT", nullable = true) /** * Y indica que la transferencia de saldos en de Boveda */ private String isvault; @Column(name = "TOTAL", nullable = true) /** * Monto total de la transaccion */ private BigDecimal total; @Column(name = "JOURNALID", nullable = true) /** * Numero de mensaje con el que se procersa el financiero. */ private String journalid; @Column(name = "OLDJOURNALID", nullable = true) /** * Numero de mensaje anterior se utiliza en los reversos. */ private String oldjournalid; /** Contructor por defecto */ public TgeneTellerTransferHeader() { } /** * Contructor de TgeneTellerTransferHeader * * @param pPk Clave Primaria del entity * @param pCurrencycode Codigo de moneda * @param pOfficecode Codigo de oficina origen * @param pBranchcode Codigo de sucursal origen * @param pCompanycode Codigo de compania al que pertenece la oficina */ public TgeneTellerTransferHeader(TgeneTellerTransferHeaderKey pPk, String pCurrencycode, Integer pOfficecode, Integer pBranchcode, Integer pCompanycode) { this(); pk = pPk; currencycode = pCurrencycode; officecode = pOfficecode; branchcode = pBranchcode; companycode = pCompanycode; } /** * Metodo que entrega datos de la tabla dada la clave primaria. * * @param pEntityManager referencia de la session a obtener datos del bean. * @param pKey Caleve primaria del bean. * @return TgeneTellerTransferHeader */ public static TgeneTellerTransferHeader find(EntityManager pEntityManager, TgeneTellerTransferHeaderKey pKey) throws Exception { TgeneTellerTransferHeader obj = pEntityManager.find(TgeneTellerTransferHeader.class, pKey); return obj; } /** * Entrega la Clave primaria de TgeneTellerTransferHeader * * @return El objeto que referencia a la Clave primaria de TgeneTellerTransferHeader */ public TgeneTellerTransferHeaderKey getPk() { return pk; } /** * Fija un nuevo valor a la Clave primaria de TgeneTellerTransferHeader * * @param pPk El objeto que referencia a la nueva Clave primaria de TgeneTellerTransferHeader */ public void setPk(TgeneTellerTransferHeaderKey pPk) { pk = pPk; } /** * Obtiene el valor de datefrom * * @return valor de datefrom */ public Timestamp getDatefrom() { return datefrom; } /** * Fija el valor de datefrom * * @param pDatefrom nuevo Valor de datefrom */ public void setDatefrom(Timestamp pDatefrom) { datefrom = pDatefrom; } /** * Obtiene el valor de currencycode * * @return valor de currencycode */ public String getCurrencycode() { return currencycode; } /** * Fija el valor de currencycode * * @param pCurrencycode nuevo Valor de currencycode */ public void setCurrencycode(String pCurrencycode) { currencycode = pCurrencycode; } /** * Obtiene el valor de officecode * * @return valor de officecode */ public Integer getOfficecode() { return officecode; } /** * Fija el valor de officecode * * @param pOfficecode nuevo Valor de officecode */ public void setOfficecode(Integer pOfficecode) { officecode = pOfficecode; } /** * Obtiene el valor de branchcode * * @return valor de branchcode */ public Integer getBranchcode() { return branchcode; } /** * Fija el valor de branchcode * * @param pBranchcode nuevo Valor de branchcode */ public void setBranchcode(Integer pBranchcode) { branchcode = pBranchcode; } /** * Obtiene el valor de companycode * * @return valor de companycode */ public Integer getCompanycode() { return companycode; } /** * Fija el valor de companycode * * @param pCompanycode nuevo Valor de companycode */ public void setCompanycode(Integer pCompanycode) { companycode = pCompanycode; } /** * Obtiene el valor de destinyusercode * * @return valor de destinyusercode */ public String getDestinyusercode() { return destinyusercode; } /** * Fija el valor de destinyusercode * * @param pDestinyusercode nuevo Valor de destinyusercode */ public void setDestinyusercode(String pDestinyusercode) { destinyusercode = pDestinyusercode; } /** * Obtiene el valor de destinyofficecode * * @return valor de destinyofficecode */ public Integer getDestinyofficecode() { return destinyofficecode; } /** * Fija el valor de destinyofficecode * * @param pDestinyofficecode nuevo Valor de destinyofficecode */ public void setDestinyofficecode(Integer pDestinyofficecode) { destinyofficecode = pDestinyofficecode; } /** * Obtiene el valor de destinybranchcode * * @return valor de destinybranchcode */ public Integer getDestinybranchcode() { return destinybranchcode; } /** * Fija el valor de destinybranchcode * * @param pDestinybranchcode nuevo Valor de destinybranchcode */ public void setDestinybranchcode(Integer pDestinybranchcode) { destinybranchcode = pDestinybranchcode; } /** * Obtiene el valor de statuscatalog * * @return valor de statuscatalog */ public String getStatuscatalog() { return statuscatalog; } /** * Fija el valor de statuscatalog * * @param pStatuscatalog nuevo Valor de statuscatalog */ public void setStatuscatalog(String pStatuscatalog) { statuscatalog = pStatuscatalog; } /** * Obtiene el valor de statuscatalogcode * * @return valor de statuscatalogcode */ public String getStatuscatalogcode() { return statuscatalogcode; } /** * Fija el valor de statuscatalogcode * * @param pStatuscatalogcode nuevo Valor de statuscatalogcode */ public void setStatuscatalogcode(String pStatuscatalogcode) { statuscatalogcode = pStatuscatalogcode; } /** * Obtiene el valor de isvault * * @return valor de isvault */ public String getIsvault() { return isvault; } /** * Fija el valor de isvault * * @param pIsvault nuevo Valor de isvault */ public void setIsvault(String pIsvault) { isvault = pIsvault; } /** * Obtiene el valor de total * * @return valor de total */ public BigDecimal getTotal() { return total; } /** * Fija el valor de total * * @param pTotal nuevo Valor de total */ public void setTotal(BigDecimal pTotal) { total = pTotal; } /** * Obtiene el valor de journalid * * @return valor de journalid */ public String getJournalid() { return journalid; } /** * Fija el valor de journalid * * @param pJournalid nuevo Valor de journalid */ public void setJournalid(String pJournalid) { journalid = pJournalid; } /** * Obtiene el valor de oldjournalid * * @return valor de oldjournalid */ public String getOldjournalid() { return oldjournalid; } /** * Fija el valor de oldjournalid * * @param pOldjournalid nuevo Valor de oldjournalid */ public void setOldjournalid(String pOldjournalid) { oldjournalid = pOldjournalid; } public boolean equals(Object rhs) { if (rhs == null) return false; if (!(rhs instanceof TgeneTellerTransferHeader)) return false; TgeneTellerTransferHeader that = (TgeneTellerTransferHeader) rhs; if (this.getPk() == null || that.getPk() == null) return false; return (this.getPk().equals(that.getPk())); } /** * Implementación del metodo hashCode de la la entidad TgeneTellerTransferHeader * * @return el hashCode la instancia */ public int hashCode() { if (this.hashValue == 0) { int result = 17; if (this.getPk() == null) { result = super.hashCode(); } else { result = this.getPk().hashCode(); } this.hashValue = result; } return this.hashValue; } /** Implementación toString */ public String toString() { Field[] fs = this.getClass().getDeclaredFields(); String data = ""; for (Field f : fs) { try { String name = f.getName(); if (f.getType().getName().compareTo("java.util.Set") == 0) continue; if (name.compareTo("hashValue") == 0 || name.compareTo("serialVersionUID") == 0) continue; data += name + "=" + f.get(this) + ";"; } catch (Exception e) { continue; } } if (data.compareTo("") == 0) { data = super.toString(); } return data; } /** Implementación de la creación de un bean en blanco TgeneTellerTransferHeader */ public Object createInstance() { TgeneTellerTransferHeader instance = new TgeneTellerTransferHeader(); instance.setPk(new TgeneTellerTransferHeaderKey()); return instance; } /** * Clona la entidad TgeneTellerTransferHeader * * @see com.fp.dto.hb.HibernateBean#cloneMe() */ public Object cloneMe() throws CloneNotSupportedException { TgeneTellerTransferHeader p = (TgeneTellerTransferHeader) this.clone(); p.setPk((TgeneTellerTransferHeaderKey) this.pk.cloneMe()); return p; } public Object getId() { return this.pk; } // metodos manuales. /** Sentencia que entrega la los datos de TgeneTellerTransferHeader */ private static final String HQL_TELLER_TRANSFER_HEADER_JID = " from TgeneTellerTransferHeader tgth" + " where tgth.pk.workingdate = :workingdate" + " and tgth.journalid = :journalid"; /** * Metodo que entrega los datos de TgeneTellerTransferHeader, dada la fecha de trabajo y el journalid. * @param pEntityManager Referecia a la session de la base de datos. * @param pWorkingdate Fecha de trabajo. * @param pJournalid Numero de journal. * @param isold Indica si obtiene el registro de journalid o de oldjournalid. * @return TgeneTellerTransferHeader * @throws Exception */ public static TgeneTellerTransferHeader find(EntityManager pEntityManager,Date pWorkingdate, String pJournalid) throws Exception { TgeneTellerTransferHeader tgeneTellerTransferHeader = null; Query qry = pEntityManager.createQuery(HQL_TELLER_TRANSFER_HEADER_JID); qry.setParameter("workingdate", pWorkingdate); qry.setParameter("journalid", pJournalid); try { tgeneTellerTransferHeader = (TgeneTellerTransferHeader)qry.getSingleResult(); } catch (NoResultException e) { return tgeneTellerTransferHeader; } return tgeneTellerTransferHeader; } /**sentencia que elimina TgeneTellerTransferHeader*/ private static final String DEL_TRANSF_HEAD = " delete from TGENETELLERTRANSFERHEADER t " + " where t.WORKINGDATE = :workingdate " + " and t.USERCODE = :usercode " + " and t.TRANSFERNUMBER = :transfernumber"; /** * Elimina un registro de la tabla para el usuario, fecha de trabajo y numero de transferencia. * @param pEntityManager Referencia la session de la base de datos. * @param pWorkingdate Fecha de trabajo. * @param pUser Codigo de usuario. * @param pTransfernumber Numero de transferencia. * @throws Exception */ public static void delete(EntityManager pEntityManager,Date pWorkingdate,String pUser,Integer pTransfernumber) throws Exception { //Elimina TgeneTellerTransferHeader Session s = (Session)pEntityManager.getDelegate(); SQLQuery sqldet = s.createSQLQuery(DEL_TRANSF_HEAD); sqldet.setDate("workingdate", pWorkingdate); sqldet.setString("usercode", pUser); sqldet.setInteger("transfernumber", pTransfernumber); sqldet.executeUpdate(); } /**Sentencia que entrega la los datos de TgeneTellerTransferHeader*/ private static final String JPQL_TELLER_TRANSFER_HEADER = " from TgeneTellerTransferHeader tgth" + " where tgth.pk.workingdate = :workingdate" + " and tgth.pk.usercode = :usercode" + " and tgth.pk.transfernumber = :transfernumber"; /** * Metodo que entrega los datos de TgeneTellerTransferHeader, dada la fecha de trabajo, usuario y numero de transferencia.´ * * @param pEntityManager Session de la base de datos. * @param workingdate Fecha de trabajo. * @param usercode Codigo de usuario. * @param transfernumber Numero de transferencia. * @return TgeneTellerTransferHeader * @throws Exception */ public static TgeneTellerTransferHeader find(EntityManager pEntityManager, Date workingdate, String usercode, Integer transfernumber) throws Exception{ TgeneTellerTransferHeader tgeneTellerTransferHeader = null; Query qry = pEntityManager.createQuery(TgeneTellerTransferHeader.JPQL_TELLER_TRANSFER_HEADER); qry.setParameter(Constant.VWORKINGDATE, workingdate); qry.setParameter("usercode", usercode); qry.setParameter("transfernumber", transfernumber); try { tgeneTellerTransferHeader = (TgeneTellerTransferHeader) qry.getSingleResult(); } catch (NoResultException e) { throw new TellerException("TELLER-0001", "TRANSFERENCIA NO DEFINIDA EN TGENETELLERTRANSFERHEADER TRANSFERNUMBER:{0} USERCODE:{1} WORKINGDATE:{2}", transfernumber, usercode, workingdate); } return tgeneTellerTransferHeader; } }