package com.fitbank.hb.persistence.acco;

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

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

/**
* Fecha desde la que estan vigente el registro de tasa efectiva de la cuenta
*/
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;

/**Contructor por defecto*/
public TeffectivRateAccount(){}
/**Contructor de TeffectivRateAccount
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que estan vigente el registro de tasa efectiva de la cuenta
@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 TeffectivRateAccount(TeffectivRateAccountKey pPk,Timestamp pFdesde,BigDecimal pTasaefectivaanual,BigDecimal pTasainternaretorno){
 pk=pPk;
 fdesde=pFdesde;
 tasaefectivaanual=pTasaefectivaanual;
 tasainternaretorno=pTasainternaretorno;
}
/**Entrega la Clave primaria de TeffectivRateAccount
@return El objeto que referencia a la Clave primaria de TeffectivRateAccount
*/
public TeffectivRateAccountKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de TeffectivRateAccount
@param pPk El objeto que referencia a la nueva Clave primaria de TeffectivRateAccount
*/
public void setPk(TeffectivRateAccountKey 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;
}

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