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;
import java.sql.Date;

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

/**
* Fecha desde la que esta vigente la simulacion de credito
*/
private Timestamp fdesde;

/**
* Codigo del usuario que realiza la simulacion de credito
*/
private String cusuario;

/**
* Fecha en la que se realiza la simulacion de credito
*/
private Date fsimulacion;

/**
* Codigo de persona de la compania
*/
private Integer cpersona_compania;

/**
* Codigo de la persona de la simulacion de credito
*/
private Integer cpersona;

/**
* Codigo del subsistema para el cual se realiza la simulacion de credito
*/
private String csubsistema;

/**
* Codigo del grupo de producto para el cual se realiza la simulacion de credito
*/
private String cgrupoproducto;

/**
* Codigo del producto para el cual se realiza la simulacion de credito
*/
private String cproducto;

/**
* Codigo del tipo de banca para el cual se realiza la simulacion de credito
*/
private String ctipobanca;

/**
* Codigo de la moneda en el cual se realiza la simulacion de credito
*/
private String cmoneda;

/**
* Monto del credito de la simulacion
*/
private BigDecimal monto;

/**
* Plazo del credito de la simulacion
*/
private Integer plazo;

/**
* Tasa del credito de la simulacion
*/
private BigDecimal tasa;

/**
* Codigo de la base de calculo
*/
private String cbasecalculo;

/**
* Codigo del tipo de cuota de la simulacion de credito
*/
private String ctipocuota;

/**
* Fecha de apertura tentativa para el credito
*/
private Date fapertura;

/**
* Fecha de inicio de pagos de la simulacion de credito
*/
private Date finiciopagos;

/**
* Dia fijo de las cuotas de la simulacion de credito
*/
private Integer diafijo;

/**
* Codigo de frecuencia de la simulacion de credito
*/
private Integer cfrecuencia;

/**
* Numero de secuencia de la solicitud.
*/
private Long csolicitud;

/**
* Numero consecutivo de la solicitud
*/
private Integer secuencia;

/**
* Numero de cuotas
*/
private Integer numerocuotas;

/**
* Tasa de comision del credito de la simulacion
*/
private BigDecimal tasacomision;

/**
* Registra el monto de la cuota balloom a cobrarse al vencimiento
*/
private BigDecimal numerocuotasballoom;

/**
* Marca si la cuenta de colocaciones tiene cuota balloom
*/
private String esballoom;

/**
* Monto de acciones tentativa para la simulacion del credito
*/
private BigDecimal valoracciones;

/**
* Valor estimado de los gastos de liquidacion para el credito
*/
private BigDecimal gastosliquidacion;

/**
* Monto del interes reestructurado para la simulacion del credito
*/
private BigDecimal interesreestructurado;

/**
* Plazo de financiamiento del interes reestructurado para la simulacion del credito
*/
private Integer plazointeresreestructurado;

/**
* Codigo del segmento de credito
*/
private Integer csegmentocredito;

/**
* Tasa Activa Efectiva Referencial para el segmento
*/
private BigDecimal tasareferencial;

/**
* 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, para informes legales, 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 Tloadsimulation(){}
/**Contructor de Tloadsimulation
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente la simulacion de credito
@param pCusuario Codigo del usuario que realiza la simulacion de credito
@param pFsimulacion Fecha en la que se realiza la simulacion de credito
@param pCpersona_compania Codigo de persona de la compania
@param pCsubsistema Codigo del subsistema para el cual se realiza la simulacion de credito
@param pCgrupoproducto Codigo del grupo de producto para el cual se realiza la simulacion de credito
@param pCproducto Codigo del producto para el cual se realiza la simulacion de credito
@param pCtipobanca Codigo del tipo de banca para el cual se realiza la simulacion de credito
@param pCmoneda Codigo de la moneda en el cual se realiza la simulacion de credito
@param pMonto Monto del credito de la simulacion
@param pTasa Tasa del credito de la simulacion
@param pCfrecuencia Codigo de frecuencia de la simulacion de credito
*/
public Tloadsimulation(TloadsimulationKey pPk,Timestamp pFdesde,String pCusuario,Date pFsimulacion,Integer pCpersona_compania,String pCsubsistema,String pCgrupoproducto,String pCproducto,String pCtipobanca,String pCmoneda,BigDecimal pMonto,BigDecimal pTasa,Integer pCfrecuencia){
 pk=pPk;
 fdesde=pFdesde;
 cusuario=pCusuario;
 fsimulacion=pFsimulacion;
 cpersona_compania=pCpersona_compania;
 csubsistema=pCsubsistema;
 cgrupoproducto=pCgrupoproducto;
 cproducto=pCproducto;
 ctipobanca=pCtipobanca;
 cmoneda=pCmoneda;
 monto=pMonto;
 tasa=pTasa;
 cfrecuencia=pCfrecuencia;
}
/**Entrega la Clave primaria de Tloadsimulation
@return El objeto que referencia a la Clave primaria de Tloadsimulation
*/
public TloadsimulationKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tloadsimulation
@param pPk El objeto que referencia a la nueva Clave primaria de Tloadsimulation
*/
public void setPk(TloadsimulationKey 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 CUSUARIO="CUSUARIO";
/**Obtiene el valor de cusuario
@return valor de cusuario*/
public String getCusuario(){
  return cusuario;
}
/**Fija el valor de cusuario
@param pCusuario nuevo Valor de cusuario*/
public void setCusuario(String pCusuario){
  cusuario=pCusuario;
}

public static final String FSIMULACION="FSIMULACION";
/**Obtiene el valor de fsimulacion
@return valor de fsimulacion*/
public Date getFsimulacion(){
  return fsimulacion;
}
/**Fija el valor de fsimulacion
@param pFsimulacion nuevo Valor de fsimulacion*/
public void setFsimulacion(Date pFsimulacion){
  fsimulacion=pFsimulacion;
}

public static final String CPERSONA_COMPANIA="CPERSONA_COMPANIA";
/**Obtiene el valor de cpersona_compania
@return valor de cpersona_compania*/
public Integer getCpersona_compania(){
  return cpersona_compania;
}
/**Fija el valor de cpersona_compania
@param pCpersona_compania nuevo Valor de cpersona_compania*/
public void setCpersona_compania(Integer pCpersona_compania){
  cpersona_compania=pCpersona_compania;
}

public static final String CPERSONA="CPERSONA";
/**Obtiene el valor de cpersona
@return valor de cpersona*/
public Integer getCpersona(){
  return cpersona;
}
/**Fija el valor de cpersona
@param pCpersona nuevo Valor de cpersona*/
public void setCpersona(Integer pCpersona){
  cpersona=pCpersona;
}

public static final String CSUBSISTEMA="CSUBSISTEMA";
/**Obtiene el valor de csubsistema
@return valor de csubsistema*/
public String getCsubsistema(){
  return csubsistema;
}
/**Fija el valor de csubsistema
@param pCsubsistema nuevo Valor de csubsistema*/
public void setCsubsistema(String pCsubsistema){
  csubsistema=pCsubsistema;
}

public static final String CGRUPOPRODUCTO="CGRUPOPRODUCTO";
/**Obtiene el valor de cgrupoproducto
@return valor de cgrupoproducto*/
public String getCgrupoproducto(){
  return cgrupoproducto;
}
/**Fija el valor de cgrupoproducto
@param pCgrupoproducto nuevo Valor de cgrupoproducto*/
public void setCgrupoproducto(String pCgrupoproducto){
  cgrupoproducto=pCgrupoproducto;
}

public static final String CPRODUCTO="CPRODUCTO";
/**Obtiene el valor de cproducto
@return valor de cproducto*/
public String getCproducto(){
  return cproducto;
}
/**Fija el valor de cproducto
@param pCproducto nuevo Valor de cproducto*/
public void setCproducto(String pCproducto){
  cproducto=pCproducto;
}

public static final String CTIPOBANCA="CTIPOBANCA";
/**Obtiene el valor de ctipobanca
@return valor de ctipobanca*/
public String getCtipobanca(){
  return ctipobanca;
}
/**Fija el valor de ctipobanca
@param pCtipobanca nuevo Valor de ctipobanca*/
public void setCtipobanca(String pCtipobanca){
  ctipobanca=pCtipobanca;
}

public static final String CMONEDA="CMONEDA";
/**Obtiene el valor de cmoneda
@return valor de cmoneda*/
public String getCmoneda(){
  return cmoneda;
}
/**Fija el valor de cmoneda
@param pCmoneda nuevo Valor de cmoneda*/
public void setCmoneda(String pCmoneda){
  cmoneda=pCmoneda;
}

public static final String MONTO="MONTO";
/**Obtiene el valor de monto
@return valor de monto*/
public BigDecimal getMonto(){
  return monto;
}
/**Fija el valor de monto
@param pMonto nuevo Valor de monto*/
public void setMonto(BigDecimal pMonto){
  monto=pMonto;
}

public static final String PLAZO="PLAZO";
/**Obtiene el valor de plazo
@return valor de plazo*/
public Integer getPlazo(){
  return plazo;
}
/**Fija el valor de plazo
@param pPlazo nuevo Valor de plazo*/
public void setPlazo(Integer pPlazo){
  plazo=pPlazo;
}

public static final String TASA="TASA";
/**Obtiene el valor de tasa
@return valor de tasa*/
public BigDecimal getTasa(){
  return tasa;
}
/**Fija el valor de tasa
@param pTasa nuevo Valor de tasa*/
public void setTasa(BigDecimal pTasa){
  tasa=pTasa;
}

public static final String CBASECALCULO="CBASECALCULO";
/**Obtiene el valor de cbasecalculo
@return valor de cbasecalculo*/
public String getCbasecalculo(){
  return cbasecalculo;
}
/**Fija el valor de cbasecalculo
@param pCbasecalculo nuevo Valor de cbasecalculo*/
public void setCbasecalculo(String pCbasecalculo){
  cbasecalculo=pCbasecalculo;
}

public static final String CTIPOCUOTA="CTIPOCUOTA";
/**Obtiene el valor de ctipocuota
@return valor de ctipocuota*/
public String getCtipocuota(){
  return ctipocuota;
}
/**Fija el valor de ctipocuota
@param pCtipocuota nuevo Valor de ctipocuota*/
public void setCtipocuota(String pCtipocuota){
  ctipocuota=pCtipocuota;
}

public static final String FAPERTURA="FAPERTURA";
/**Obtiene el valor de fapertura
@return valor de fapertura*/
public Date getFapertura(){
  return fapertura;
}
/**Fija el valor de fapertura
@param pFapertura nuevo Valor de fapertura*/
public void setFapertura(Date pFapertura){
  fapertura=pFapertura;
}

public static final String FINICIOPAGOS="FINICIOPAGOS";
/**Obtiene el valor de finiciopagos
@return valor de finiciopagos*/
public Date getFiniciopagos(){
  return finiciopagos;
}
/**Fija el valor de finiciopagos
@param pFiniciopagos nuevo Valor de finiciopagos*/
public void setFiniciopagos(Date pFiniciopagos){
  finiciopagos=pFiniciopagos;
}

public static final String DIAFIJO="DIAFIJO";
/**Obtiene el valor de diafijo
@return valor de diafijo*/
public Integer getDiafijo(){
  return diafijo;
}
/**Fija el valor de diafijo
@param pDiafijo nuevo Valor de diafijo*/
public void setDiafijo(Integer pDiafijo){
  diafijo=pDiafijo;
}

public static final String CFRECUENCIA="CFRECUENCIA";
/**Obtiene el valor de cfrecuencia
@return valor de cfrecuencia*/
public Integer getCfrecuencia(){
  return cfrecuencia;
}
/**Fija el valor de cfrecuencia
@param pCfrecuencia nuevo Valor de cfrecuencia*/
public void setCfrecuencia(Integer pCfrecuencia){
  cfrecuencia=pCfrecuencia;
}

public static final String CSOLICITUD="CSOLICITUD";
/**Obtiene el valor de csolicitud
@return valor de csolicitud*/
public Long getCsolicitud(){
  return csolicitud;
}
/**Fija el valor de csolicitud
@param pCsolicitud nuevo Valor de csolicitud*/
public void setCsolicitud(Long pCsolicitud){
  csolicitud=pCsolicitud;
}

public static final String SECUENCIA="SECUENCIA";
/**Obtiene el valor de secuencia
@return valor de secuencia*/
public Integer getSecuencia(){
  return secuencia;
}
/**Fija el valor de secuencia
@param pSecuencia nuevo Valor de secuencia*/
public void setSecuencia(Integer pSecuencia){
  secuencia=pSecuencia;
}

public static final String NUMEROCUOTAS="NUMEROCUOTAS";
/**Obtiene el valor de numerocuotas
@return valor de numerocuotas*/
public Integer getNumerocuotas(){
  return numerocuotas;
}
/**Fija el valor de numerocuotas
@param pNumerocuotas nuevo Valor de numerocuotas*/
public void setNumerocuotas(Integer pNumerocuotas){
  numerocuotas=pNumerocuotas;
}

public static final String TASACOMISION="TASACOMISION";
/**Obtiene el valor de tasacomision
@return valor de tasacomision*/
public BigDecimal getTasacomision(){
  return tasacomision;
}
/**Fija el valor de tasacomision
@param pTasacomision nuevo Valor de tasacomision*/
public void setTasacomision(BigDecimal pTasacomision){
  tasacomision=pTasacomision;
}

public static final String NUMEROCUOTASBALLOOM="NUMEROCUOTASBALLOOM";
/**Obtiene el valor de numerocuotasballoom
@return valor de numerocuotasballoom*/
public BigDecimal getNumerocuotasballoom(){
  return numerocuotasballoom;
}
/**Fija el valor de numerocuotasballoom
@param pNumerocuotasballoom nuevo Valor de numerocuotasballoom*/
public void setNumerocuotasballoom(BigDecimal pNumerocuotasballoom){
  numerocuotasballoom=pNumerocuotasballoom;
}

public static final String ESBALLOOM="ESBALLOOM";
/**Obtiene el valor de esballoom
@return valor de esballoom*/
public String getEsballoom(){
  return esballoom;
}
/**Fija el valor de esballoom
@param pEsballoom nuevo Valor de esballoom*/
public void setEsballoom(String pEsballoom){
  esballoom=pEsballoom;
}

public static final String VALORACCIONES="VALORACCIONES";
/**Obtiene el valor de valoracciones
@return valor de valoracciones*/
public BigDecimal getValoracciones(){
  return valoracciones;
}
/**Fija el valor de valoracciones
@param pValoracciones nuevo Valor de valoracciones*/
public void setValoracciones(BigDecimal pValoracciones){
  valoracciones=pValoracciones;
}

public static final String GASTOSLIQUIDACION="GASTOSLIQUIDACION";
/**Obtiene el valor de gastosliquidacion
@return valor de gastosliquidacion*/
public BigDecimal getGastosliquidacion(){
  return gastosliquidacion;
}
/**Fija el valor de gastosliquidacion
@param pGastosliquidacion nuevo Valor de gastosliquidacion*/
public void setGastosliquidacion(BigDecimal pGastosliquidacion){
  gastosliquidacion=pGastosliquidacion;
}

public static final String INTERESREESTRUCTURADO="INTERESREESTRUCTURADO";
/**Obtiene el valor de interesreestructurado
@return valor de interesreestructurado*/
public BigDecimal getInteresreestructurado(){
  return interesreestructurado;
}
/**Fija el valor de interesreestructurado
@param pInteresreestructurado nuevo Valor de interesreestructurado*/
public void setInteresreestructurado(BigDecimal pInteresreestructurado){
  interesreestructurado=pInteresreestructurado;
}

public static final String PLAZOINTERESREESTRUCTURADO="PLAZOINTERESREESTRUCTURADO";
/**Obtiene el valor de plazointeresreestructurado
@return valor de plazointeresreestructurado*/
public Integer getPlazointeresreestructurado(){
  return plazointeresreestructurado;
}
/**Fija el valor de plazointeresreestructurado
@param pPlazointeresreestructurado nuevo Valor de plazointeresreestructurado*/
public void setPlazointeresreestructurado(Integer pPlazointeresreestructurado){
  plazointeresreestructurado=pPlazointeresreestructurado;
}

public static final String CSEGMENTOCREDITO="CSEGMENTOCREDITO";
/**Obtiene el valor de csegmentocredito
@return valor de csegmentocredito*/
public Integer getCsegmentocredito(){
  return csegmentocredito;
}
/**Fija el valor de csegmentocredito
@param pCsegmentocredito nuevo Valor de csegmentocredito*/
public void setCsegmentocredito(Integer pCsegmentocredito){
  csegmentocredito=pCsegmentocredito;
}

public static final String TASAREFERENCIAL="TASAREFERENCIAL";
/**Obtiene el valor de tasareferencial
@return valor de tasareferencial*/
public BigDecimal getTasareferencial(){
  return tasareferencial;
}
/**Fija el valor de tasareferencial
@param pTasareferencial nuevo Valor de tasareferencial*/
public void setTasareferencial(BigDecimal pTasareferencial){
  tasareferencial=pTasareferencial;
}

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