package com.fitbank.hb.persistence.acco;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
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 TESTADOCUENTA*/
public class Taccountstatement implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TESTADOCUENTA */
public static final String TABLE_NAME = "TESTADOCUENTA";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Taccountstatement
*/
private TaccountstatementKey pk;
/**
* Numero de cuenta 
*/
private String ccuenta;

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

/**
* Fecha contable del estado de cuenta
*/
private Date fcontable;

/**
* Decripcion de la transaccion
*/
private String descripciontransaccion;

/**
* Numero de documento de la transaccion
*/
private String numerodocumento;

/**
* Valor del movimiento de debito
*/
private BigDecimal valordebitocuenta;

/**
* Valor del movimiento de credito
*/
private BigDecimal valorcreditocuenta;

/**
* Saldo de la cuenta
*/
private BigDecimal saldo;

/**
* Fecha real del movimiento
*/
private Timestamp freal;

/**
* Saldo de la cuenta a la fecha
*/
private BigDecimal saldofecha;

/**
* Saldo disponile de la cuenta
*/
private BigDecimal saldodisponible;

/**
* Saldo pignorado de la cuenta
*/
private BigDecimal saldopignorado;

/**
* Saldo bloqueado de la cuenta
*/
private BigDecimal saldobloqueado;

/**
* Saldo diferido ode la cuenta
*/
private BigDecimal saldodiferido;

/**
* Saldo promedio mensual de la cuenta
*/
private BigDecimal saldopromediomensual;

/**Contructor por defecto*/
public Taccountstatement(){}
/**Contructor de Taccountstatement
@param pPk Clave Primaria del entity
*/
public Taccountstatement(TaccountstatementKey pPk){
 pk=pPk;
}
/**Entrega la Clave primaria de Taccountstatement
@return El objeto que referencia a la Clave primaria de Taccountstatement
*/
public TaccountstatementKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Taccountstatement
@param pPk El objeto que referencia a la nueva Clave primaria de Taccountstatement
*/
public void setPk(TaccountstatementKey pPk){
  pk=pPk;
}
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 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 DESCRIPCIONTRANSACCION="DESCRIPCIONTRANSACCION";
/**Obtiene el valor de descripciontransaccion
@return valor de descripciontransaccion*/
public String getDescripciontransaccion(){
  return descripciontransaccion;
}
/**Fija el valor de descripciontransaccion
@param pDescripciontransaccion nuevo Valor de descripciontransaccion*/
public void setDescripciontransaccion(String pDescripciontransaccion){
  descripciontransaccion=pDescripciontransaccion;
}

public static final String NUMERODOCUMENTO="NUMERODOCUMENTO";
/**Obtiene el valor de numerodocumento
@return valor de numerodocumento*/
public String getNumerodocumento(){
  return numerodocumento;
}
/**Fija el valor de numerodocumento
@param pNumerodocumento nuevo Valor de numerodocumento*/
public void setNumerodocumento(String pNumerodocumento){
  numerodocumento=pNumerodocumento;
}

public static final String VALORDEBITOCUENTA="VALORDEBITOCUENTA";
/**Obtiene el valor de valordebitocuenta
@return valor de valordebitocuenta*/
public BigDecimal getValordebitocuenta(){
  return valordebitocuenta;
}
/**Fija el valor de valordebitocuenta
@param pValordebitocuenta nuevo Valor de valordebitocuenta*/
public void setValordebitocuenta(BigDecimal pValordebitocuenta){
  valordebitocuenta=pValordebitocuenta;
}

public static final String VALORCREDITOCUENTA="VALORCREDITOCUENTA";
/**Obtiene el valor de valorcreditocuenta
@return valor de valorcreditocuenta*/
public BigDecimal getValorcreditocuenta(){
  return valorcreditocuenta;
}
/**Fija el valor de valorcreditocuenta
@param pValorcreditocuenta nuevo Valor de valorcreditocuenta*/
public void setValorcreditocuenta(BigDecimal pValorcreditocuenta){
  valorcreditocuenta=pValorcreditocuenta;
}

public static final String SALDO="SALDO";
/**Obtiene el valor de saldo
@return valor de saldo*/
public BigDecimal getSaldo(){
  return saldo;
}
/**Fija el valor de saldo
@param pSaldo nuevo Valor de saldo*/
public void setSaldo(BigDecimal pSaldo){
  saldo=pSaldo;
}

public static final String FREAL="FREAL";
/**Obtiene el valor de freal
@return valor de freal*/
public Timestamp getFreal(){
  return freal;
}
/**Fija el valor de freal
@param pFreal nuevo Valor de freal*/
public void setFreal(Timestamp pFreal){
  freal=pFreal;
}

public static final String SALDOFECHA="SALDOFECHA";
/**Obtiene el valor de saldofecha
@return valor de saldofecha*/
public BigDecimal getSaldofecha(){
  return saldofecha;
}
/**Fija el valor de saldofecha
@param pSaldofecha nuevo Valor de saldofecha*/
public void setSaldofecha(BigDecimal pSaldofecha){
  saldofecha=pSaldofecha;
}

public static final String SALDODISPONIBLE="SALDODISPONIBLE";
/**Obtiene el valor de saldodisponible
@return valor de saldodisponible*/
public BigDecimal getSaldodisponible(){
  return saldodisponible;
}
/**Fija el valor de saldodisponible
@param pSaldodisponible nuevo Valor de saldodisponible*/
public void setSaldodisponible(BigDecimal pSaldodisponible){
  saldodisponible=pSaldodisponible;
}

public static final String SALDOPIGNORADO="SALDOPIGNORADO";
/**Obtiene el valor de saldopignorado
@return valor de saldopignorado*/
public BigDecimal getSaldopignorado(){
  return saldopignorado;
}
/**Fija el valor de saldopignorado
@param pSaldopignorado nuevo Valor de saldopignorado*/
public void setSaldopignorado(BigDecimal pSaldopignorado){
  saldopignorado=pSaldopignorado;
}

public static final String SALDOBLOQUEADO="SALDOBLOQUEADO";
/**Obtiene el valor de saldobloqueado
@return valor de saldobloqueado*/
public BigDecimal getSaldobloqueado(){
  return saldobloqueado;
}
/**Fija el valor de saldobloqueado
@param pSaldobloqueado nuevo Valor de saldobloqueado*/
public void setSaldobloqueado(BigDecimal pSaldobloqueado){
  saldobloqueado=pSaldobloqueado;
}

public static final String SALDODIFERIDO="SALDODIFERIDO";
/**Obtiene el valor de saldodiferido
@return valor de saldodiferido*/
public BigDecimal getSaldodiferido(){
  return saldodiferido;
}
/**Fija el valor de saldodiferido
@param pSaldodiferido nuevo Valor de saldodiferido*/
public void setSaldodiferido(BigDecimal pSaldodiferido){
  saldodiferido=pSaldodiferido;
}

public static final String SALDOPROMEDIOMENSUAL="SALDOPROMEDIOMENSUAL";
/**Obtiene el valor de saldopromediomensual
@return valor de saldopromediomensual*/
public BigDecimal getSaldopromediomensual(){
  return saldopromediomensual;
}
/**Fija el valor de saldopromediomensual
@param pSaldopromediomensual nuevo Valor de saldopromediomensual*/
public void setSaldopromediomensual(BigDecimal pSaldopromediomensual){
  saldopromediomensual=pSaldopromediomensual;
}

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