package com.fitbank.hb.persistence.acco;

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 TCUENTAGESTIONCOBRANZAS*/
public class Tcollectionmanagementaccount extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TCUENTAGESTIONCOBRANZAS */
public static final String TABLE_NAME = "TCUENTAGESTIONCOBRANZAS";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tcollectionmanagementaccount
*/
private TcollectionmanagementaccountKey pk;
/**
* Fecha desde la que esta vigente la gestion de cobranzas para la persona
*/
private Timestamp fdesde;

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

/**
* Fecha contable del registro de la operacion en vencido
*/
private Date fcontable;

/**
* Codigo de la sucursal de la cuenta de colocaciones
*/
private Integer csucursal;

/**
* Codigo del tipo de prestamo
*/
private String ctipoprestamo;

/**
* Plazo pactado para la operacion de credito
*/
private Integer plazo;

/**
* Tasa de interes pactada para la operacion de credito
*/
private BigDecimal tasainteres;

/**
* Monto original de la operacion de credito
*/
private BigDecimal montooriginal;

/**
* Fecha de vencimiento de la cuota
*/
private Date fvencimiento;

/**
* Fecha de desembolso de la operacion de credito
*/
private Date fdesembolso;

/**
* Fecha de apertura del prestamo
*/
private Date fapertura;

/**
* Calificacion de la operacion de credito dada por la institucion
*/
private String calificacionbanco;

/**
* Calificacion externa de la operacion de credito
*/
private String calificacionexterna;

/**
* Capital vencido de la operacion de credito
*/
private BigDecimal capitalvencido;

/**
* Dias en vencido de la cuota mas antigua
*/
private Integer diasvencido;

/**
* Total adeudado
*/
private BigDecimal capitalreducido;

/**
* Capital que no genera intereses de la operacion de credito
*/
private BigDecimal capitalnogenerainteres;

/**
* Numero de cuotas por vencer del prestamo
*/
private Integer cuotasporvencer;

/**
* Numero de cuotas vencidas del prestamo
*/
private Integer cuotasvencidas;

/**
* Capital vigente de la operacion de credito
*/
private BigDecimal capitalvigente;

/**
* Fecha del proximo pago de las cuotas
*/
private Date fproximopago;

/**
* Fecha del ultimo pago realizado
*/
private Date fultimopago;

/**
* Fecha en la que se compromete a realizar el pago
*/
private Date fcompromisopago;

/**
* Observaciones dadas en la asignacion de la gestion de cobranzas
*/
private String observaciones;

/**
* Codigo del gestor de cobranzas
*/
private String cgestorcobranzas;

/**
* Manejo de optimistic loking
*/
private Integer versioncontrol;

/**Contructor por defecto*/
public Tcollectionmanagementaccount(){}
/**Contructor de Tcollectionmanagementaccount
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente la gestion de cobranzas para la persona
@param pFcontable Fecha contable del registro de la operacion en vencido
@param pCgestorcobranzas Codigo del gestor de cobranzas
*/
public Tcollectionmanagementaccount(TcollectionmanagementaccountKey pPk,Timestamp pFdesde,Date pFcontable,String pCgestorcobranzas){
 pk=pPk;
 fdesde=pFdesde;
 fcontable=pFcontable;
 cgestorcobranzas=pCgestorcobranzas;
}
/**Entrega la Clave primaria de Tcollectionmanagementaccount
@return El objeto que referencia a la Clave primaria de Tcollectionmanagementaccount
*/
public TcollectionmanagementaccountKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tcollectionmanagementaccount
@param pPk El objeto que referencia a la nueva Clave primaria de Tcollectionmanagementaccount
*/
public void setPk(TcollectionmanagementaccountKey pPk){
  pk=pPk;
}
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 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 FCONTABLE="FCONTABLE";
/**Obtiene el valor de fcontable
@return valor de fcontable*/
public Date getFcontable(){
  return fcontable;
}
/**Fija el valor de fcontable
@param pFcontable nuevo Valor de fcontable*/
public void setFcontable(Date pFcontable){
  fcontable=pFcontable;
}

public static final String CSUCURSAL="CSUCURSAL";
/**Obtiene el valor de csucursal
@return valor de csucursal*/
public Integer getCsucursal(){
  return csucursal;
}
/**Fija el valor de csucursal
@param pCsucursal nuevo Valor de csucursal*/
public void setCsucursal(Integer pCsucursal){
  csucursal=pCsucursal;
}

public static final String CTIPOPRESTAMO="CTIPOPRESTAMO";
/**Obtiene el valor de ctipoprestamo
@return valor de ctipoprestamo*/
public String getCtipoprestamo(){
  return ctipoprestamo;
}
/**Fija el valor de ctipoprestamo
@param pCtipoprestamo nuevo Valor de ctipoprestamo*/
public void setCtipoprestamo(String pCtipoprestamo){
  ctipoprestamo=pCtipoprestamo;
}

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 TASAINTERES="TASAINTERES";
/**Obtiene el valor de tasainteres
@return valor de tasainteres*/
public BigDecimal getTasainteres(){
  return tasainteres;
}
/**Fija el valor de tasainteres
@param pTasainteres nuevo Valor de tasainteres*/
public void setTasainteres(BigDecimal pTasainteres){
  tasainteres=pTasainteres;
}

public static final String MONTOORIGINAL="MONTOORIGINAL";
/**Obtiene el valor de montooriginal
@return valor de montooriginal*/
public BigDecimal getMontooriginal(){
  return montooriginal;
}
/**Fija el valor de montooriginal
@param pMontooriginal nuevo Valor de montooriginal*/
public void setMontooriginal(BigDecimal pMontooriginal){
  montooriginal=pMontooriginal;
}

public static final String FVENCIMIENTO="FVENCIMIENTO";
/**Obtiene el valor de fvencimiento
@return valor de fvencimiento*/
public Date getFvencimiento(){
  return fvencimiento;
}
/**Fija el valor de fvencimiento
@param pFvencimiento nuevo Valor de fvencimiento*/
public void setFvencimiento(Date pFvencimiento){
  fvencimiento=pFvencimiento;
}

public static final String FDESEMBOLSO="FDESEMBOLSO";
/**Obtiene el valor de fdesembolso
@return valor de fdesembolso*/
public Date getFdesembolso(){
  return fdesembolso;
}
/**Fija el valor de fdesembolso
@param pFdesembolso nuevo Valor de fdesembolso*/
public void setFdesembolso(Date pFdesembolso){
  fdesembolso=pFdesembolso;
}

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 CALIFICACIONBANCO="CALIFICACIONBANCO";
/**Obtiene el valor de calificacionbanco
@return valor de calificacionbanco*/
public String getCalificacionbanco(){
  return calificacionbanco;
}
/**Fija el valor de calificacionbanco
@param pCalificacionbanco nuevo Valor de calificacionbanco*/
public void setCalificacionbanco(String pCalificacionbanco){
  calificacionbanco=pCalificacionbanco;
}

public static final String CALIFICACIONEXTERNA="CALIFICACIONEXTERNA";
/**Obtiene el valor de calificacionexterna
@return valor de calificacionexterna*/
public String getCalificacionexterna(){
  return calificacionexterna;
}
/**Fija el valor de calificacionexterna
@param pCalificacionexterna nuevo Valor de calificacionexterna*/
public void setCalificacionexterna(String pCalificacionexterna){
  calificacionexterna=pCalificacionexterna;
}

public static final String CAPITALVENCIDO="CAPITALVENCIDO";
/**Obtiene el valor de capitalvencido
@return valor de capitalvencido*/
public BigDecimal getCapitalvencido(){
  return capitalvencido;
}
/**Fija el valor de capitalvencido
@param pCapitalvencido nuevo Valor de capitalvencido*/
public void setCapitalvencido(BigDecimal pCapitalvencido){
  capitalvencido=pCapitalvencido;
}

public static final String DIASVENCIDO="DIASVENCIDO";
/**Obtiene el valor de diasvencido
@return valor de diasvencido*/
public Integer getDiasvencido(){
  return diasvencido;
}
/**Fija el valor de diasvencido
@param pDiasvencido nuevo Valor de diasvencido*/
public void setDiasvencido(Integer pDiasvencido){
  diasvencido=pDiasvencido;
}

public static final String CAPITALREDUCIDO="CAPITALREDUCIDO";
/**Obtiene el valor de capitalreducido
@return valor de capitalreducido*/
public BigDecimal getCapitalreducido(){
  return capitalreducido;
}
/**Fija el valor de capitalreducido
@param pCapitalreducido nuevo Valor de capitalreducido*/
public void setCapitalreducido(BigDecimal pCapitalreducido){
  capitalreducido=pCapitalreducido;
}

public static final String CAPITALNOGENERAINTERES="CAPITALNOGENERAINTERES";
/**Obtiene el valor de capitalnogenerainteres
@return valor de capitalnogenerainteres*/
public BigDecimal getCapitalnogenerainteres(){
  return capitalnogenerainteres;
}
/**Fija el valor de capitalnogenerainteres
@param pCapitalnogenerainteres nuevo Valor de capitalnogenerainteres*/
public void setCapitalnogenerainteres(BigDecimal pCapitalnogenerainteres){
  capitalnogenerainteres=pCapitalnogenerainteres;
}

public static final String CUOTASPORVENCER="CUOTASPORVENCER";
/**Obtiene el valor de cuotasporvencer
@return valor de cuotasporvencer*/
public Integer getCuotasporvencer(){
  return cuotasporvencer;
}
/**Fija el valor de cuotasporvencer
@param pCuotasporvencer nuevo Valor de cuotasporvencer*/
public void setCuotasporvencer(Integer pCuotasporvencer){
  cuotasporvencer=pCuotasporvencer;
}

public static final String CUOTASVENCIDAS="CUOTASVENCIDAS";
/**Obtiene el valor de cuotasvencidas
@return valor de cuotasvencidas*/
public Integer getCuotasvencidas(){
  return cuotasvencidas;
}
/**Fija el valor de cuotasvencidas
@param pCuotasvencidas nuevo Valor de cuotasvencidas*/
public void setCuotasvencidas(Integer pCuotasvencidas){
  cuotasvencidas=pCuotasvencidas;
}

public static final String CAPITALVIGENTE="CAPITALVIGENTE";
/**Obtiene el valor de capitalvigente
@return valor de capitalvigente*/
public BigDecimal getCapitalvigente(){
  return capitalvigente;
}
/**Fija el valor de capitalvigente
@param pCapitalvigente nuevo Valor de capitalvigente*/
public void setCapitalvigente(BigDecimal pCapitalvigente){
  capitalvigente=pCapitalvigente;
}

public static final String FPROXIMOPAGO="FPROXIMOPAGO";
/**Obtiene el valor de fproximopago
@return valor de fproximopago*/
public Date getFproximopago(){
  return fproximopago;
}
/**Fija el valor de fproximopago
@param pFproximopago nuevo Valor de fproximopago*/
public void setFproximopago(Date pFproximopago){
  fproximopago=pFproximopago;
}

public static final String FULTIMOPAGO="FULTIMOPAGO";
/**Obtiene el valor de fultimopago
@return valor de fultimopago*/
public Date getFultimopago(){
  return fultimopago;
}
/**Fija el valor de fultimopago
@param pFultimopago nuevo Valor de fultimopago*/
public void setFultimopago(Date pFultimopago){
  fultimopago=pFultimopago;
}

public static final String FCOMPROMISOPAGO="FCOMPROMISOPAGO";
/**Obtiene el valor de fcompromisopago
@return valor de fcompromisopago*/
public Date getFcompromisopago(){
  return fcompromisopago;
}
/**Fija el valor de fcompromisopago
@param pFcompromisopago nuevo Valor de fcompromisopago*/
public void setFcompromisopago(Date pFcompromisopago){
  fcompromisopago=pFcompromisopago;
}

public static final String OBSERVACIONES="OBSERVACIONES";
/**Obtiene el valor de observaciones
@return valor de observaciones*/
public String getObservaciones(){
  return observaciones;
}
/**Fija el valor de observaciones
@param pObservaciones nuevo Valor de observaciones*/
public void setObservaciones(String pObservaciones){
  observaciones=pObservaciones;
}

public static final String CGESTORCOBRANZAS="CGESTORCOBRANZAS";
/**Obtiene el valor de cgestorcobranzas
@return valor de cgestorcobranzas*/
public String getCgestorcobranzas(){
  return cgestorcobranzas;
}
/**Fija el valor de cgestorcobranzas
@param pCgestorcobranzas nuevo Valor de cgestorcobranzas*/
public void setCgestorcobranzas(String pCgestorcobranzas){
  cgestorcobranzas=pCgestorcobranzas;
}

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;
}

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