package com.fp.persistence.pgeneral.product.rate; import javax.persistence.EmbeddedId; import javax.persistence.Entity; import javax.persistence.Column; import javax.persistence.EntityManager; import java.io.Serializable; import java.math.BigDecimal; import javax.persistence.Table; import com.fp.dto.hb.HibernateBean; import javax.persistence.Version; import java.lang.reflect.Field; import javax.persistence.Transient; import java.util.List; import javax.persistence.Query; /**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TGENESEGMENTRATE*/ @Entity(name = "TgeneSegmentRate") @Table(name = "TGENESEGMENTRATE") public class TgeneSegmentRate 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 TgeneSegmentRate */ @EmbeddedId private TgeneSegmentRateKey pk; @Column(name = "BASERATECATALOG", nullable = false) /** * Codigo de catalogo 01 Natural, 02 Juridico */ private String baseratecatalog; @Column(name = "BASERATECATALOGCODE", nullable = true) /** * Codigo de tabla de catalogo 01 Codigo de tabla de tipos de persona */ private String baseratecatalogcode; @Version @Column(name = "RECORDVERSION", nullable = true) /** * Manejo de optimistic locking */ private Integer recordversion; @Column(name = "MAXTERM", nullable = false) /** * Plazo maximo */ private Integer maxterm; @Column(name = "MAXAMOUNT", nullable = true) /** * Monto Maximo */ private BigDecimal maxamount; @Column(name = "MARGIN", nullable = true) /** * Margen a aplicar dado el operador */ private BigDecimal margin; @Column(name = "OPERATOR", nullable = true) /** * Operador a aplicar sobre la tasa base, +, - , % */ private String operator; @Column(name = "READJUSTMENTOPERATOR", nullable = true) /** * Operador que se utilizara el momento del reajuste */ private String readjustmentoperator; @Column(name = "READJUSTMENTMARGIN", nullable = true) /** * Margen a aplicar en el reajuste */ private BigDecimal readjustmentmargin; @Column(name = "MINRATE", nullable = true) /** * Minimo permitido en la negociacion del prestamo */ private BigDecimal minrate; @Column(name = "MAXRATE", nullable = true) /** * Maximo permitido en la negociacion del prestamo */ private BigDecimal maxrate; /**Contructor por defecto*/ public TgeneSegmentRate() { } /**Contructor de TgeneSegmentRate @param pPk Clave Primaria del entity @param pBaseratecatalog Codigo de catalogo 01 Natural, 02 Juridico @param pMaxterm Plazo maximo */ public TgeneSegmentRate(TgeneSegmentRateKey pPk, String pBaseratecatalog, Integer pMaxterm) { this(); pk = pPk; baseratecatalog = pBaseratecatalog; maxterm = pMaxterm; } /** * 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 TgeneSegmentRate */ public static TgeneSegmentRate find(EntityManager pEntityManager, TgeneSegmentRateKey pKey) throws Exception { TgeneSegmentRate obj = pEntityManager.find(TgeneSegmentRate.class, pKey); return obj; } /** * Mètodos manuales * INTERESTBALANCETYPE * interestbalancetype * INTERESTBALANCEGROUP * interestbalancegroup * CREDITSEGMENTCATALOG * creditsegmentcatalog */ private static final String JPQL_SOL_TGENESEGMENTRATE = " from TgeneSegmentRate tgenesr " + "where " + "tgenesr.pk.interestbalancetype = :interestbalancetype and " + "tgenesr.pk.interestbalancegroup = :interestbalancegroup and " + "tgenesr.pk.currencycode = :currencycode and " + "tgenesr.pk.companycode = :companycode and " + "tgenesr.pk.creditsegmentcatalog = :creditsegmentcatalog and " + "tgenesr.pk.minterm <= :term and tgenesr.maxterm >= :term and " + "tgenesr.pk.minamount <= :amount and tgenesr.maxamount >= :amount"; /** * Metodo que entrega datos para consultar el segmento monto plazo y tipo de saldo. * @param pEntityManager referencia de la session a obtener datos del bean. * @param pKey Caleve primaria del bean. * @return TgeneSegmentRate */ @SuppressWarnings("unchecked") public static List findBySegment(EntityManager pEntityManager, String pInterestbalancetype, String pInterestbalancegroup, String pCreditsegmentcatalog, Integer pCompany, String pCurrencycode,Integer pTerm,BigDecimal pAmount) throws Exception { List lObjects = null; Query qry = pEntityManager.createQuery(TgeneSegmentRate.JPQL_SOL_TGENESEGMENTRATE); qry.setParameter("interestbalancetype", pInterestbalancetype); qry.setParameter("interestbalancegroup", pInterestbalancegroup); qry.setParameter("creditsegmentcatalog", pCreditsegmentcatalog); qry.setParameter("companycode", pCompany); qry.setParameter("currencycode", pCurrencycode); qry.setParameter("term", pTerm); qry.setParameter("amount", pAmount); lObjects = qry.getResultList(); return lObjects; } /**Entrega la Clave primaria de TgeneSegmentRate @return El objeto que referencia a la Clave primaria de TgeneSegmentRate */ public TgeneSegmentRateKey getPk() { return pk; } /**Fija un nuevo valor a la Clave primaria de TgeneSegmentRate @param pPk El objeto que referencia a la nueva Clave primaria de TgeneSegmentRate */ public void setPk(TgeneSegmentRateKey pPk) { pk = pPk; } /**Obtiene el valor de baseratecatalog @return valor de baseratecatalog*/ public String getBaseratecatalog() { return baseratecatalog; } /**Fija el valor de baseratecatalog @param pBaseratecatalog nuevo Valor de baseratecatalog*/ public void setBaseratecatalog(String pBaseratecatalog) { baseratecatalog = pBaseratecatalog; } /**Obtiene el valor de baseratecatalogcode @return valor de baseratecatalogcode*/ public String getBaseratecatalogcode() { return baseratecatalogcode; } /**Fija el valor de baseratecatalogcode @param pBaseratecatalogcode nuevo Valor de baseratecatalogcode*/ public void setBaseratecatalogcode(String pBaseratecatalogcode) { baseratecatalogcode = pBaseratecatalogcode; } /**Obtiene el valor de recordversion @return valor de recordversion*/ public Integer getRecordversion() { return recordversion; } /**Fija el valor de recordversion @param pRecordversion nuevo Valor de recordversion*/ public void setRecordversion(Integer pRecordversion) { recordversion = pRecordversion; } /**Obtiene el valor de maxterm @return valor de maxterm*/ public Integer getMaxterm() { return maxterm; } /**Fija el valor de maxterm @param pMaxterm nuevo Valor de maxterm*/ public void setMaxterm(Integer pMaxterm) { maxterm = pMaxterm; } /**Obtiene el valor de maxamount @return valor de maxamount*/ public BigDecimal getMaxamount() { return maxamount; } /**Fija el valor de maxamount @param pMaxamount nuevo Valor de maxamount*/ public void setMaxamount(BigDecimal pMaxamount) { maxamount = pMaxamount; } /**Obtiene el valor de margin @return valor de margin*/ public BigDecimal getMargin() { return margin; } /**Fija el valor de margin @param pMargin nuevo Valor de margin*/ public void setMargin(BigDecimal pMargin) { margin = pMargin; } /**Obtiene el valor de operator @return valor de operator*/ public String getOperator() { return operator; } /**Fija el valor de operator @param pOperator nuevo Valor de operator*/ public void setOperator(String pOperator) { operator = pOperator; } /**Obtiene el valor de readjustmentoperator @return valor de readjustmentoperator*/ public String getReadjustmentoperator() { return readjustmentoperator; } /**Fija el valor de readjustmentoperator @param pReadjustmentoperator nuevo Valor de readjustmentoperator*/ public void setReadjustmentoperator(String pReadjustmentoperator) { readjustmentoperator = pReadjustmentoperator; } /**Obtiene el valor de readjustmentmargin @return valor de readjustmentmargin*/ public BigDecimal getReadjustmentmargin() { return readjustmentmargin; } /**Fija el valor de readjustmentmargin @param pReadjustmentmargin nuevo Valor de readjustmentmargin*/ public void setReadjustmentmargin(BigDecimal pReadjustmentmargin) { readjustmentmargin = pReadjustmentmargin; } /**Obtiene el valor de minrate @return valor de minrate*/ public BigDecimal getMinrate() { return minrate; } /**Fija el valor de minrate @param pMinrate nuevo Valor de minrate*/ public void setMinrate(BigDecimal pMinrate) { minrate = pMinrate; } /**Obtiene el valor de maxrate @return valor de maxrate*/ public BigDecimal getMaxrate() { return maxrate; } /**Fija el valor de maxrate @param pMaxrate nuevo Valor de maxrate*/ public void setMaxrate(BigDecimal pMaxrate) { maxrate = pMaxrate; } public boolean equals(Object rhs) { if (rhs == null) { return false; } if (!(rhs instanceof TgeneSegmentRate)) { return false; } TgeneSegmentRate that = (TgeneSegmentRate) rhs; if (this.getPk() == null || that.getPk() == null) { return false; } return (this.getPk().equals(that.getPk())); } /**Implementacion del metodo hashCode de la la entidad TgeneSegmentRate @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; } /**Implementacion 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; } /**Implementacion de la creacion de un bean en blanco TgeneSegmentRate */ public Object createInstance() { TgeneSegmentRate instance = new TgeneSegmentRate(); instance.setPk(new TgeneSegmentRateKey()); return instance; } /**Clona la entidad TgeneSegmentRate @see com.fp.dto.hb.HibernateBean#cloneMe() */ public Object cloneMe() throws CloneNotSupportedException { TgeneSegmentRate p = (TgeneSegmentRate) this.clone(); p.setPk((TgeneSegmentRateKey) this.pk.cloneMe()); return p; } }