package com.fitbank.hb.persistence.accounting;

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

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

/**
* Fecha desde la que esta vigente la informacion del comprobante contable
*/
private Timestamp fdesde;

/**
* Campo informativo que almacena el numero de cheque o deposito
*/
private String numerodocumento;

/**
* Campo informativo donde guarda el nombre del beneficiario.
*/
private String nombrebeneficiario;

/**
* Campo informativo que almacena el numero de las cuentas de bancos
*/
private String numerocuentabancos;

/**
* Campo informativo que almacena los nombres  de las cuentas de bancos
*/
private String nombrecuentabancos;

/**
* Campo informativo que almacena la cuenta destino ganancias.
*/
private String cuentaganancias;

/**
* Campo informativo que almacena la cuenta destino perdidas.
*/
private String cuentaperdidas;

/**
* Informacion adicional del comprobante contable manual
*/
private String informacionadicional;

/**
* Detalle del anexo del comprobante contable manual
*/
private String detalle;

/**Contructor por defecto*/
public Taccountantannexvoucher(){}
/**Contructor de Taccountantannexvoucher
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente la informacion del comprobante contable
*/
public Taccountantannexvoucher(TaccountantannexvoucherKey pPk,Timestamp pFdesde){
 pk=pPk;
 fdesde=pFdesde;
}
/**Entrega la Clave primaria de Taccountantannexvoucher
@return El objeto que referencia a la Clave primaria de Taccountantannexvoucher
*/
public TaccountantannexvoucherKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Taccountantannexvoucher
@param pPk El objeto que referencia a la nueva Clave primaria de Taccountantannexvoucher
*/
public void setPk(TaccountantannexvoucherKey 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 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 NOMBREBENEFICIARIO="NOMBREBENEFICIARIO";
/**Obtiene el valor de nombrebeneficiario
@return valor de nombrebeneficiario*/
public String getNombrebeneficiario(){
  return nombrebeneficiario;
}
/**Fija el valor de nombrebeneficiario
@param pNombrebeneficiario nuevo Valor de nombrebeneficiario*/
public void setNombrebeneficiario(String pNombrebeneficiario){
  nombrebeneficiario=pNombrebeneficiario;
}

public static final String NUMEROCUENTABANCOS="NUMEROCUENTABANCOS";
/**Obtiene el valor de numerocuentabancos
@return valor de numerocuentabancos*/
public String getNumerocuentabancos(){
  return numerocuentabancos;
}
/**Fija el valor de numerocuentabancos
@param pNumerocuentabancos nuevo Valor de numerocuentabancos*/
public void setNumerocuentabancos(String pNumerocuentabancos){
  numerocuentabancos=pNumerocuentabancos;
}

public static final String NOMBRECUENTABANCOS="NOMBRECUENTABANCOS";
/**Obtiene el valor de nombrecuentabancos
@return valor de nombrecuentabancos*/
public String getNombrecuentabancos(){
  return nombrecuentabancos;
}
/**Fija el valor de nombrecuentabancos
@param pNombrecuentabancos nuevo Valor de nombrecuentabancos*/
public void setNombrecuentabancos(String pNombrecuentabancos){
  nombrecuentabancos=pNombrecuentabancos;
}

public static final String CUENTAGANANCIAS="CUENTAGANANCIAS";
/**Obtiene el valor de cuentaganancias
@return valor de cuentaganancias*/
public String getCuentaganancias(){
  return cuentaganancias;
}
/**Fija el valor de cuentaganancias
@param pCuentaganancias nuevo Valor de cuentaganancias*/
public void setCuentaganancias(String pCuentaganancias){
  cuentaganancias=pCuentaganancias;
}

public static final String CUENTAPERDIDAS="CUENTAPERDIDAS";
/**Obtiene el valor de cuentaperdidas
@return valor de cuentaperdidas*/
public String getCuentaperdidas(){
  return cuentaperdidas;
}
/**Fija el valor de cuentaperdidas
@param pCuentaperdidas nuevo Valor de cuentaperdidas*/
public void setCuentaperdidas(String pCuentaperdidas){
  cuentaperdidas=pCuentaperdidas;
}

public static final String INFORMACIONADICIONAL="INFORMACIONADICIONAL";
/**Obtiene el valor de informacionadicional
@return valor de informacionadicional*/
public String getInformacionadicional(){
  return informacionadicional;
}
/**Fija el valor de informacionadicional
@param pInformacionadicional nuevo Valor de informacionadicional*/
public void setInformacionadicional(String pInformacionadicional){
  informacionadicional=pInformacionadicional;
}

public static final String DETALLE="DETALLE";
/**Obtiene el valor de detalle
@return valor de detalle*/
public String getDetalle(){
  return detalle;
}
/**Fija el valor de detalle
@param pDetalle nuevo Valor de detalle*/
public void setDetalle(String pDetalle){
  detalle=pDetalle;
}

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