package com.fitbank.hb.persistence.soli;

import java.sql.Timestamp;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fitbank.common.TransportBean;
import java.lang.reflect.Field;
import com.fitbank.common.hb.AbstractExpire;

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TSOLICITUDTASAEFECTIVA*/
public class TeffectivRateSolicitude extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TSOLICITUDTASAEFECTIVA */
public static final String TABLE_NAME = "TSOLICITUDTASAEFECTIVA";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad TeffectivRateSolicitude
*/
private TeffectivRateSolicitudeKey pk;
/**
* Manejo de optimistic locking.
*/
private Integer versioncontrol;

/**
* Fecha desde la que estan vigente el registro de tasa efectiva de la solicitud
*/
private Timestamp fdesde;

/**
* Es la tasa efectiva de interes, para informes legales. Se calcula incluyendo todos los componentes financieros del prestamo conocidos al momento del desembolso
*/
private BigDecimal tasaefectivaanual;

/**
* Es la tasa interna de retorno de interes, para informes legales, se utiliza para informes legales. Se calcula incluyendo todos los componentes financieros del prestamo conocidos al momento del desembolso
*/
private BigDecimal tasainternaretorno;

/**
* Valor de la tasa expresada en porcentaje anual, correspondiente al costo de financiamiento anual que incluye los flujos de los importes por los seguros obligatorios de desgravamen, afectado por los periodos de capitalizacion
*/
private BigDecimal tasaefectivaanualseg;

/**
* Es la tasa interna de retorno de interes, se utiliza para informes legales. Se calcula al momento del desembolso incluyendo los flujos de los importes por los seguros obligatorios de desgravamen.
*/
private BigDecimal tasainternaretornoseg;

/**Contructor por defecto*/
public TeffectivRateSolicitude(){}
/**Contructor de TeffectivRateSolicitude
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que estan vigente el registro de tasa efectiva de la solicitud
@param pTasaefectivaanual Es la tasa efectiva de interes, para informes legales. Se calcula incluyendo todos los componentes financieros del prestamo conocidos al momento del desembolso
@param pTasainternaretorno Es la tasa interna de retorno de interes, para informes legales, se utiliza para informes legales. Se calcula incluyendo todos los componentes financieros del prestamo conocidos al momento del desembolso
*/
public TeffectivRateSolicitude(TeffectivRateSolicitudeKey pPk,Timestamp pFdesde,BigDecimal pTasaefectivaanual,BigDecimal pTasainternaretorno){
 pk=pPk;
 fdesde=pFdesde;
 tasaefectivaanual=pTasaefectivaanual;
 tasainternaretorno=pTasainternaretorno;
}
/**Entrega la Clave primaria de TeffectivRateSolicitude
@return El objeto que referencia a la Clave primaria de TeffectivRateSolicitude
*/
public TeffectivRateSolicitudeKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de TeffectivRateSolicitude
@param pPk El objeto que referencia a la nueva Clave primaria de TeffectivRateSolicitude
*/
public void setPk(TeffectivRateSolicitudeKey pPk){
  pk=pPk;
}
public static final String VERSIONCONTROL="VERSIONCONTROL";
/**Obtiene el valor de versioncontrol
@return valor de versioncontrol*/
public Integer getVersioncontrol(){
  return versioncontrol;
}
/**Fija el valor de versioncontrol
@param pVersioncontrol nuevo Valor de versioncontrol*/
public void setVersioncontrol(Integer pVersioncontrol){
  versioncontrol=pVersioncontrol;
}

public static final String FDESDE="FDESDE";
/**Obtiene el valor de fdesde
@return valor de fdesde*/
public Timestamp getFdesde(){
  return fdesde;
}
/**Fija el valor de fdesde
@param pFdesde nuevo Valor de fdesde*/
public void setFdesde(Timestamp pFdesde){
  fdesde=pFdesde;
}

public static final String TASAEFECTIVAANUAL="TASAEFECTIVAANUAL";
/**Obtiene el valor de tasaefectivaanual
@return valor de tasaefectivaanual*/
public BigDecimal getTasaefectivaanual(){
  return tasaefectivaanual;
}
/**Fija el valor de tasaefectivaanual
@param pTasaefectivaanual nuevo Valor de tasaefectivaanual*/
public void setTasaefectivaanual(BigDecimal pTasaefectivaanual){
  tasaefectivaanual=pTasaefectivaanual;
}

public static final String TASAINTERNARETORNO="TASAINTERNARETORNO";
/**Obtiene el valor de tasainternaretorno
@return valor de tasainternaretorno*/
public BigDecimal getTasainternaretorno(){
  return tasainternaretorno;
}
/**Fija el valor de tasainternaretorno
@param pTasainternaretorno nuevo Valor de tasainternaretorno*/
public void setTasainternaretorno(BigDecimal pTasainternaretorno){
  tasainternaretorno=pTasainternaretorno;
}

public static final String TASAEFECTIVAANUALSEG="TASAEFECTIVAANUALSEG";
/**Obtiene el valor de tasaefectivaanualseg
@return valor de tasaefectivaanualseg*/
public BigDecimal getTasaefectivaanualseg(){
  return tasaefectivaanualseg;
}
/**Fija el valor de tasaefectivaanualseg
@param pTasaefectivaanualseg nuevo Valor de tasaefectivaanualseg*/
public void setTasaefectivaanualseg(BigDecimal pTasaefectivaanualseg){
  tasaefectivaanualseg=pTasaefectivaanualseg;
}

public static final String TASAINTERNARETORNOSEG="TASAINTERNARETORNOSEG";
/**Obtiene el valor de tasainternaretornoseg
@return valor de tasainternaretornoseg*/
public BigDecimal getTasainternaretornoseg(){
  return tasainternaretornoseg;
}
/**Fija el valor de tasainternaretornoseg
@param pTasainternaretornoseg nuevo Valor de tasainternaretornoseg*/
public void setTasainternaretornoseg(BigDecimal pTasainternaretornoseg){
  tasainternaretornoseg=pTasainternaretornoseg;
}

/**Implementacion de la comparacion de la entidad TeffectivRateSolicitude
@param rhs Elemento de Comparacion
@return el resultado de la comparacion
*/
public boolean equals(Object rhs){
    if (rhs == null){return false;}
    if (! (rhs instanceof TeffectivRateSolicitude)){return false;}
    TeffectivRateSolicitude that = (TeffectivRateSolicitude) 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 TeffectivRateSolicitude
@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(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 blancoTeffectivRateSolicitude
*/
public Object createInstance() throws Exception{
 TeffectivRateSolicitude instance=new TeffectivRateSolicitude();	
 instance.setPk(new TeffectivRateSolicitudeKey());
 return instance;
}
public Object cloneMe() throws Exception{
  TeffectivRateSolicitude p=(TeffectivRateSolicitude)this.clone();
  p.setPk((TeffectivRateSolicitudeKey)this.pk.cloneMe());
  return p;
}
public Object getId() {
  return this.pk;
}
}
