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

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TCUENTACODIGOCONTABLE*/
public class Taccountantcode implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TCUENTACODIGOCONTABLE */
public static final String TABLE_NAME = "TCUENTACODIGOCONTABLE";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Taccountantcode
*/
private TaccountantcodeKey pk;
/**
* Fecha hasta la que esta registrado el codigo contable para la cuenta
*/
private Date ffinal;

/**
* Fecha real de registro para reaplicar si es necesario el proceso contable.
*/
private Timestamp frealregistro;

/**
* Indica si a partir de esa fecha los saldos del codigo contable se cierran
*/
private String cierresaldo;

/**
* Indica si el registro fue procesado por el servidor contable o no
*/
private String procesado;

/**
* Codigo de resultado del comando del proceso contable.
*/
private String cresultado;

/**
* Texto informativo del resultado del proceso
*/
private String textoerror;

/**Contructor por defecto*/
public Taccountantcode(){}
/**Contructor de Taccountantcode
@param pPk Clave Primaria del entity
*/
public Taccountantcode(TaccountantcodeKey pPk){
 pk=pPk;
}
/**Entrega la Clave primaria de Taccountantcode
@return El objeto que referencia a la Clave primaria de Taccountantcode
*/
public TaccountantcodeKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Taccountantcode
@param pPk El objeto que referencia a la nueva Clave primaria de Taccountantcode
*/
public void setPk(TaccountantcodeKey pPk){
  pk=pPk;
}
public static final String FFINAL="FFINAL";
/**Obtiene el valor de ffinal
@return valor de ffinal*/
public Date getFfinal(){
  return ffinal;
}
/**Fija el valor de ffinal
@param pFfinal nuevo Valor de ffinal*/
public void setFfinal(Date pFfinal){
  ffinal=pFfinal;
}

public static final String FREALREGISTRO="FREALREGISTRO";
/**Obtiene el valor de frealregistro
@return valor de frealregistro*/
public Timestamp getFrealregistro(){
  return frealregistro;
}
/**Fija el valor de frealregistro
@param pFrealregistro nuevo Valor de frealregistro*/
public void setFrealregistro(Timestamp pFrealregistro){
  frealregistro=pFrealregistro;
}

public static final String CIERRESALDO="CIERRESALDO";
/**Obtiene el valor de cierresaldo
@return valor de cierresaldo*/
public String getCierresaldo(){
  return cierresaldo;
}
/**Fija el valor de cierresaldo
@param pCierresaldo nuevo Valor de cierresaldo*/
public void setCierresaldo(String pCierresaldo){
  cierresaldo=pCierresaldo;
}

public static final String PROCESADO="PROCESADO";
/**Obtiene el valor de procesado
@return valor de procesado*/
public String getProcesado(){
  return procesado;
}
/**Fija el valor de procesado
@param pProcesado nuevo Valor de procesado*/
public void setProcesado(String pProcesado){
  procesado=pProcesado;
}

public static final String CRESULTADO="CRESULTADO";
/**Obtiene el valor de cresultado
@return valor de cresultado*/
public String getCresultado(){
  return cresultado;
}
/**Fija el valor de cresultado
@param pCresultado nuevo Valor de cresultado*/
public void setCresultado(String pCresultado){
  cresultado=pCresultado;
}

public static final String TEXTOERROR="TEXTOERROR";
/**Obtiene el valor de textoerror
@return valor de textoerror*/
public String getTextoerror(){
  return textoerror;
}
/**Fija el valor de textoerror
@param pTextoerror nuevo Valor de textoerror*/
public void setTextoerror(String pTextoerror){
  textoerror=pTextoerror;
}

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