package com.fitbank.hb.persistence.lote;

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

import java.lang.reflect.Field;
import java.sql.Date;

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

/**
* Fecha desde de vigencia del registro
*/
private Timestamp fdesde;

/**
* Estado del proceso del documento PEN=Pendiente, PRO=Procesado, REC=Rechazado,OBS=Observado
*/
private String estadoproceso;

/**
* Indica si el documento es un cheque o una boleta
*/
private String tipodocumento;

/**
* Identifica si el cheque es diferido o no
*/
private String diferido;

/**
* En cheques de Gerencia se requiere identificar si esta sujeto a encaje
*/
private String sujetoaencaje;

/**
* Fecha contable del deposito.
*/
private Date fcontabledeposito;

/**
* Codigo de la compania a la que pertenece la cuenta, puede ser externa o compania licenciada
*/
private Integer cpersona_compania;

/**
* Numero de cuenta
*/
private String ccuenta;

/**
* Codigo de oficina
*/
private Integer coficina;

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

/**
* Valor del cheque retenido en la cuenta
*/
private BigDecimal valorcheque;

/**
* Codigo de la institucion tomado de la tabla de personas juridicas de bancos
*/
private String codigoinstitucion;

/**
* Fecha del lote correspondiente a camara
*/
private Date fechalote_camara;

/**
* Numero de lote correspondiente a camara
*/
private Long numerolote_camara;

/**
* Secuencial del numero de lote correspondiente a camara
*/
private Long secuencialote_camara;

/**
* Codigo del tipo de cuenta en los que se reciben los cheques depositados de camara
*/
private Integer ctipocuentacamara;

/**
* Numero de mensaje con el que se realiza la transaccion
*/
private String numeromensaje;

/**
* Marca si la cuenta corresponde al mismo titular o no
*/
private String indicadordeposito;

/**
* Codigo del estatus del cheque
*/
private String cestatuscheque;

/**
* Codigo del motivo o causa del estatus del cheque
*/
private Integer cmotivoestatuscheque;

/**Contructor por defecto*/
public Tlotechecksreceived(){}
/**Contructor de Tlotechecksreceived
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde de vigencia del registro
@param pFcontabledeposito Fecha contable del deposito.
@param pCpersona_compania Codigo de la compania a la que pertenece la cuenta, puede ser externa o compania licenciada
@param pCcuenta Numero de cuenta
@param pCoficina Codigo de oficina
@param pCsucursal Codigo de la sucursal
@param pValorcheque Valor del cheque retenido en la cuenta
*/
public Tlotechecksreceived(TlotechecksreceivedKey pPk,Timestamp pFdesde,Date pFcontabledeposito,Integer pCpersona_compania,String pCcuenta,Integer pCoficina,Integer pCsucursal,BigDecimal pValorcheque){
 pk=pPk;
 fdesde=pFdesde;
 fcontabledeposito=pFcontabledeposito;
 cpersona_compania=pCpersona_compania;
 ccuenta=pCcuenta;
 coficina=pCoficina;
 csucursal=pCsucursal;
 valorcheque=pValorcheque;
}
/**Entrega la Clave primaria de Tlotechecksreceived
@return El objeto que referencia a la Clave primaria de Tlotechecksreceived
*/
public TlotechecksreceivedKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tlotechecksreceived
@param pPk El objeto que referencia a la nueva Clave primaria de Tlotechecksreceived
*/
public void setPk(TlotechecksreceivedKey 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 ESTADOPROCESO="ESTADOPROCESO";
/**Obtiene el valor de estadoproceso
@return valor de estadoproceso*/
public String getEstadoproceso(){
  return estadoproceso;
}
/**Fija el valor de estadoproceso
@param pEstadoproceso nuevo Valor de estadoproceso*/
public void setEstadoproceso(String pEstadoproceso){
  estadoproceso=pEstadoproceso;
}

public static final String TIPODOCUMENTO="TIPODOCUMENTO";
/**Obtiene el valor de tipodocumento
@return valor de tipodocumento*/
public String getTipodocumento(){
  return tipodocumento;
}
/**Fija el valor de tipodocumento
@param pTipodocumento nuevo Valor de tipodocumento*/
public void setTipodocumento(String pTipodocumento){
  tipodocumento=pTipodocumento;
}

public static final String DIFERIDO="DIFERIDO";
/**Obtiene el valor de diferido
@return valor de diferido*/
public String getDiferido(){
  return diferido;
}
/**Fija el valor de diferido
@param pDiferido nuevo Valor de diferido*/
public void setDiferido(String pDiferido){
  diferido=pDiferido;
}

public static final String SUJETOAENCAJE="SUJETOAENCAJE";
/**Obtiene el valor de sujetoaencaje
@return valor de sujetoaencaje*/
public String getSujetoaencaje(){
  return sujetoaencaje;
}
/**Fija el valor de sujetoaencaje
@param pSujetoaencaje nuevo Valor de sujetoaencaje*/
public void setSujetoaencaje(String pSujetoaencaje){
  sujetoaencaje=pSujetoaencaje;
}

public static final String FCONTABLEDEPOSITO="FCONTABLEDEPOSITO";
/**Obtiene el valor de fcontabledeposito
@return valor de fcontabledeposito*/
public Date getFcontabledeposito(){
  return fcontabledeposito;
}
/**Fija el valor de fcontabledeposito
@param pFcontabledeposito nuevo Valor de fcontabledeposito*/
public void setFcontabledeposito(Date pFcontabledeposito){
  fcontabledeposito=pFcontabledeposito;
}

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 CCUENTA="CCUENTA";
/**Obtiene el valor de ccuenta
@return valor de ccuenta*/
public String getCcuenta(){
  return ccuenta;
}
/**Fija el valor de ccuenta
@param pCcuenta nuevo Valor de ccuenta*/
public void setCcuenta(String pCcuenta){
  ccuenta=pCcuenta;
}

public static final String COFICINA="COFICINA";
/**Obtiene el valor de coficina
@return valor de coficina*/
public Integer getCoficina(){
  return coficina;
}
/**Fija el valor de coficina
@param pCoficina nuevo Valor de coficina*/
public void setCoficina(Integer pCoficina){
  coficina=pCoficina;
}

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 VALORCHEQUE="VALORCHEQUE";
/**Obtiene el valor de valorcheque
@return valor de valorcheque*/
public BigDecimal getValorcheque(){
  return valorcheque;
}
/**Fija el valor de valorcheque
@param pValorcheque nuevo Valor de valorcheque*/
public void setValorcheque(BigDecimal pValorcheque){
  valorcheque=pValorcheque;
}

public static final String CODIGOINSTITUCION="CODIGOINSTITUCION";
/**Obtiene el valor de codigoinstitucion
@return valor de codigoinstitucion*/
public String getCodigoinstitucion(){
  return codigoinstitucion;
}
/**Fija el valor de codigoinstitucion
@param pCodigoinstitucion nuevo Valor de codigoinstitucion*/
public void setCodigoinstitucion(String pCodigoinstitucion){
  codigoinstitucion=pCodigoinstitucion;
}

public static final String FECHALOTE_CAMARA="FECHALOTE_CAMARA";
/**Obtiene el valor de fechalote_camara
@return valor de fechalote_camara*/
public Date getFechalote_camara(){
  return fechalote_camara;
}
/**Fija el valor de fechalote_camara
@param pFechalote_camara nuevo Valor de fechalote_camara*/
public void setFechalote_camara(Date pFechalote_camara){
  fechalote_camara=pFechalote_camara;
}

public static final String NUMEROLOTE_CAMARA="NUMEROLOTE_CAMARA";
/**Obtiene el valor de numerolote_camara
@return valor de numerolote_camara*/
public Long getNumerolote_camara(){
  return numerolote_camara;
}
/**Fija el valor de numerolote_camara
@param pNumerolote_camara nuevo Valor de numerolote_camara*/
public void setNumerolote_camara(Long pNumerolote_camara){
  numerolote_camara=pNumerolote_camara;
}

public static final String SECUENCIALOTE_CAMARA="SECUENCIALOTE_CAMARA";
/**Obtiene el valor de secuencialote_camara
@return valor de secuencialote_camara*/
public Long getSecuencialote_camara(){
  return secuencialote_camara;
}
/**Fija el valor de secuencialote_camara
@param pSecuencialote_camara nuevo Valor de secuencialote_camara*/
public void setSecuencialote_camara(Long pSecuencialote_camara){
  secuencialote_camara=pSecuencialote_camara;
}

public static final String CTIPOCUENTACAMARA="CTIPOCUENTACAMARA";
/**Obtiene el valor de ctipocuentacamara
@return valor de ctipocuentacamara*/
public Integer getCtipocuentacamara(){
  return ctipocuentacamara;
}
/**Fija el valor de ctipocuentacamara
@param pCtipocuentacamara nuevo Valor de ctipocuentacamara*/
public void setCtipocuentacamara(Integer pCtipocuentacamara){
  ctipocuentacamara=pCtipocuentacamara;
}

public static final String NUMEROMENSAJE="NUMEROMENSAJE";
/**Obtiene el valor de numeromensaje
@return valor de numeromensaje*/
public String getNumeromensaje(){
  return numeromensaje;
}
/**Fija el valor de numeromensaje
@param pNumeromensaje nuevo Valor de numeromensaje*/
public void setNumeromensaje(String pNumeromensaje){
  numeromensaje=pNumeromensaje;
}

public static final String INDICADORDEPOSITO="INDICADORDEPOSITO";
/**Obtiene el valor de indicadordeposito
@return valor de indicadordeposito*/
public String getIndicadordeposito(){
  return indicadordeposito;
}
/**Fija el valor de indicadordeposito
@param pIndicadordeposito nuevo Valor de indicadordeposito*/
public void setIndicadordeposito(String pIndicadordeposito){
  indicadordeposito=pIndicadordeposito;
}

public static final String CESTATUSCHEQUE="CESTATUSCHEQUE";
/**Obtiene el valor de cestatuscheque
@return valor de cestatuscheque*/
public String getCestatuscheque(){
  return cestatuscheque;
}
/**Fija el valor de cestatuscheque
@param pCestatuscheque nuevo Valor de cestatuscheque*/
public void setCestatuscheque(String pCestatuscheque){
  cestatuscheque=pCestatuscheque;
}

public static final String CMOTIVOESTATUSCHEQUE="CMOTIVOESTATUSCHEQUE";
/**Obtiene el valor de cmotivoestatuscheque
@return valor de cmotivoestatuscheque*/
public Integer getCmotivoestatuscheque(){
  return cmotivoestatuscheque;
}
/**Fija el valor de cmotivoestatuscheque
@param pCmotivoestatuscheque nuevo Valor de cmotivoestatuscheque*/
public void setCmotivoestatuscheque(Integer pCmotivoestatuscheque){
  cmotivoestatuscheque=pCmotivoestatuscheque;
}

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

public Object getId() {
    return this.pk;
}
}
