package com.fitbank.hb.persistence.acco;

import com.fitbank.common.hb.AbstractExpire;
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 TCUENTAPAGOS*/
public class Taccountpayment extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TCUENTAPAGOS */
public static final String TABLE_NAME = "TCUENTAPAGOS";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Taccountpayment
*/
private TaccountpaymentKey pk;
/**
* Fecha desde la que estan vigentes los datos de pagos recibido de una cuenta
*/
private Timestamp fdesde;

/**
* Numero de subcuenta
*/
private Integer subcuenta;

/**
* Codigo de la forma de pago a recibir
*/
private String cformapago;

/**
* Codigo de moneda del pago recibido
*/
private String cmoneda;

/**
* Monto del pago recibido
*/
private BigDecimal monto;

/**
* Porcentaje del valor total que se distribuye
*/
private BigDecimal porcentaje;

/**
* Codigo de concepto de debito o credito
*/
private String cconcepto;

/**
* Codigo de persona del Banco del cheque girado
*/
private Integer cpersona_banco;

/**
* Numero de cuenta girada
*/
private String cuentagirada;

/**
* Codigo de ruta y transito del cheque
*/
private String rutatransito;

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

/**
* Numero de mensaje con el que se procesa el pago realizado una cuenta
*/
private String numeromensaje;

/**
* Codigo del subsistema de la operacion contable
*/
private String csubsistema_operacion;

/**
* Codigo contable.
*/
private String codigocontable;

/**
* Numero de cuenta auxiliar de la operacion contable
*/
private String ccuenta_auxiliar;

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

/**Contructor por defecto*/
public Taccountpayment(){}
/**Contructor de Taccountpayment
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que estan vigentes los datos de pagos recibido de una cuenta
@param pCformapago Codigo de la forma de pago a recibir
@param pCmoneda Codigo de moneda del pago recibido
@param pMonto Monto del pago recibido
*/
public Taccountpayment(TaccountpaymentKey pPk,Timestamp pFdesde,String pCformapago,String pCmoneda,BigDecimal pMonto){
 pk=pPk;
 fdesde=pFdesde;
 cformapago=pCformapago;
 cmoneda=pCmoneda;
 monto=pMonto;
}
/**Entrega la Clave primaria de Taccountpayment
@return El objeto que referencia a la Clave primaria de Taccountpayment
*/
public TaccountpaymentKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Taccountpayment
@param pPk El objeto que referencia a la nueva Clave primaria de Taccountpayment
*/
public void setPk(TaccountpaymentKey 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 SUBCUENTA="SUBCUENTA";
/**Obtiene el valor de subcuenta
@return valor de subcuenta*/
public Integer getSubcuenta(){
  return subcuenta;
}
/**Fija el valor de subcuenta
@param pSubcuenta nuevo Valor de subcuenta*/
public void setSubcuenta(Integer pSubcuenta){
  subcuenta=pSubcuenta;
}

public static final String CFORMAPAGO="CFORMAPAGO";
/**Obtiene el valor de cformapago
@return valor de cformapago*/
public String getCformapago(){
  return cformapago;
}
/**Fija el valor de cformapago
@param pCformapago nuevo Valor de cformapago*/
public void setCformapago(String pCformapago){
  cformapago=pCformapago;
}

public static final String CMONEDA="CMONEDA";
/**Obtiene el valor de cmoneda
@return valor de cmoneda*/
public String getCmoneda(){
  return cmoneda;
}
/**Fija el valor de cmoneda
@param pCmoneda nuevo Valor de cmoneda*/
public void setCmoneda(String pCmoneda){
  cmoneda=pCmoneda;
}

public static final String MONTO="MONTO";
/**Obtiene el valor de monto
@return valor de monto*/
public BigDecimal getMonto(){
  return monto;
}
/**Fija el valor de monto
@param pMonto nuevo Valor de monto*/
public void setMonto(BigDecimal pMonto){
  monto=pMonto;
}

public static final String PORCENTAJE="PORCENTAJE";
/**Obtiene el valor de porcentaje
@return valor de porcentaje*/
public BigDecimal getPorcentaje(){
  return porcentaje;
}
/**Fija el valor de porcentaje
@param pPorcentaje nuevo Valor de porcentaje*/
public void setPorcentaje(BigDecimal pPorcentaje){
  porcentaje=pPorcentaje;
}

public static final String CCONCEPTO="CCONCEPTO";
/**Obtiene el valor de cconcepto
@return valor de cconcepto*/
public String getCconcepto(){
  return cconcepto;
}
/**Fija el valor de cconcepto
@param pCconcepto nuevo Valor de cconcepto*/
public void setCconcepto(String pCconcepto){
  cconcepto=pCconcepto;
}

public static final String CPERSONA_BANCO="CPERSONA_BANCO";
/**Obtiene el valor de cpersona_banco
@return valor de cpersona_banco*/
public Integer getCpersona_banco(){
  return cpersona_banco;
}
/**Fija el valor de cpersona_banco
@param pCpersona_banco nuevo Valor de cpersona_banco*/
public void setCpersona_banco(Integer pCpersona_banco){
  cpersona_banco=pCpersona_banco;
}

public static final String CUENTAGIRADA="CUENTAGIRADA";
/**Obtiene el valor de cuentagirada
@return valor de cuentagirada*/
public String getCuentagirada(){
  return cuentagirada;
}
/**Fija el valor de cuentagirada
@param pCuentagirada nuevo Valor de cuentagirada*/
public void setCuentagirada(String pCuentagirada){
  cuentagirada=pCuentagirada;
}

public static final String RUTATRANSITO="RUTATRANSITO";
/**Obtiene el valor de rutatransito
@return valor de rutatransito*/
public String getRutatransito(){
  return rutatransito;
}
/**Fija el valor de rutatransito
@param pRutatransito nuevo Valor de rutatransito*/
public void setRutatransito(String pRutatransito){
  rutatransito=pRutatransito;
}

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 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 CSUBSISTEMA_OPERACION="CSUBSISTEMA_OPERACION";
/**Obtiene el valor de csubsistema_operacion
@return valor de csubsistema_operacion*/
public String getCsubsistema_operacion(){
  return csubsistema_operacion;
}
/**Fija el valor de csubsistema_operacion
@param pCsubsistema_operacion nuevo Valor de csubsistema_operacion*/
public void setCsubsistema_operacion(String pCsubsistema_operacion){
  csubsistema_operacion=pCsubsistema_operacion;
}

public static final String CODIGOCONTABLE="CODIGOCONTABLE";
/**Obtiene el valor de codigocontable
@return valor de codigocontable*/
public String getCodigocontable(){
  return codigocontable;
}
/**Fija el valor de codigocontable
@param pCodigocontable nuevo Valor de codigocontable*/
public void setCodigocontable(String pCodigocontable){
  codigocontable=pCodigocontable;
}

public static final String CCUENTA_AUXILIAR="CCUENTA_AUXILIAR";
/**Obtiene el valor de ccuenta_auxiliar
@return valor de ccuenta_auxiliar*/
public String getCcuenta_auxiliar(){
  return ccuenta_auxiliar;
}
/**Fija el valor de ccuenta_auxiliar
@param pCcuenta_auxiliar nuevo Valor de ccuenta_auxiliar*/
public void setCcuenta_auxiliar(String pCcuenta_auxiliar){
  ccuenta_auxiliar=pCcuenta_auxiliar;
}

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