package com.fitbank.hb.persistence.gene;

import java.sql.Timestamp;
import java.io.Serializable;
import java.math.BigDecimal;
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 TLIMITERESPONSABILIDAD*/
public class Tliabilitylimit extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TLIMITERESPONSABILIDAD */
public static final String TABLE_NAME = "TLIMITERESPONSABILIDAD";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tliabilitylimit
*/
private TliabilitylimitKey pk;
/**
* Fecha desde la que está vigente el límite de responsabilidad aceptante-girador.
*/
private Timestamp fdesde;

/**
* Monto de límite de responsabilidad aceptante ¿ girador.
*/
private BigDecimal montoresponsabilidad;

/**
* Monto de límite de responsabilidad  aceptante - girador disponible asignado para el crédito.
*/
private BigDecimal montodisponible;

/**
* Monto de límite de responsabilidad  aceptante - girador disponible pendiente (en proceso de aprobación o aprobado).
*/
private BigDecimal montopendiente;

/**
* Monto de límite de responsabilidad aceptante - girador usado.
*/
private BigDecimal montousado;

/**
* Código de la moneda del importe de límite de responsabilidad.
*/
private String cmoneda;

/**
* Código del usuario que actualiza el límite de responsabilidad del aceptante.
*/
private String cusuario;

/**
* Observaciones de la asignación de los límites de responsabilidad.
*/
private String observaciones;

/**
* Subsistema que actualiza el límite de responsabilidad.
*/
private String csubsistema;

/**
* Transacción que actualiza el límite de responsabilidad.
*/
private String ctransaccion;

/**
* Versión de la transacción que actualiza el límite de responsabilidad.
*/
private String versiontransaccion;

/**
* Manejo de optimistic locking.
*/
private Integer versioncontrol;

/**
* Flag que indica si se debe evaluar al aceptante, ya que por negocio el cedente asume sus deudas.
*/
private String riesgogirador;

/**
* Estado del documento. ING = Ingresado, APR = Aprobado, RCH = Rechazado, OBS = Observado.
*/
private String estado;

/**
* Motivo del documento.
*/
private String motivo;

/**Contructor por defecto*/
public Tliabilitylimit(){}
/**Contructor de Tliabilitylimit
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que está vigente el límite de responsabilidad aceptante-girador.
@param pMontoresponsabilidad Monto de límite de responsabilidad aceptante ¿ girador.
@param pMontodisponible Monto de límite de responsabilidad  aceptante - girador disponible asignado para el crédito.
@param pMontopendiente Monto de límite de responsabilidad  aceptante - girador disponible pendiente (en proceso de aprobación o aprobado).
@param pMontousado Monto de límite de responsabilidad aceptante - girador usado.
@param pCmoneda Código de la moneda del importe de límite de responsabilidad.
@param pCusuario Código del usuario que actualiza el límite de responsabilidad del aceptante.
@param pCsubsistema Subsistema que actualiza el límite de responsabilidad.
@param pCtransaccion Transacción que actualiza el límite de responsabilidad.
@param pVersiontransaccion Versión de la transacción que actualiza el límite de responsabilidad.
@param pVersioncontrol Manejo de optimistic locking.
*/
public Tliabilitylimit(TliabilitylimitKey pPk,Timestamp pFdesde,BigDecimal pMontoresponsabilidad,BigDecimal pMontodisponible,BigDecimal pMontopendiente,BigDecimal pMontousado,String pCmoneda,String pCusuario,String pCsubsistema,String pCtransaccion,String pVersiontransaccion,Integer pVersioncontrol){
 pk=pPk;
 fdesde=pFdesde;
 montoresponsabilidad=pMontoresponsabilidad;
 montodisponible=pMontodisponible;
 montopendiente=pMontopendiente;
 montousado=pMontousado;
 cmoneda=pCmoneda;
 cusuario=pCusuario;
 csubsistema=pCsubsistema;
 ctransaccion=pCtransaccion;
 versiontransaccion=pVersiontransaccion;
 versioncontrol=pVersioncontrol;
}
/**Entrega la Clave primaria de Tliabilitylimit
@return El objeto que referencia a la Clave primaria de Tliabilitylimit
*/
public TliabilitylimitKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tliabilitylimit
@param pPk El objeto que referencia a la nueva Clave primaria de Tliabilitylimit
*/
public void setPk(TliabilitylimitKey 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 MONTORESPONSABILIDAD="MONTORESPONSABILIDAD";
/**Obtiene el valor de montoresponsabilidad
@return valor de montoresponsabilidad*/
public BigDecimal getMontoresponsabilidad(){
  return montoresponsabilidad;
}
/**Fija el valor de montoresponsabilidad
@param pMontoresponsabilidad nuevo Valor de montoresponsabilidad*/
public void setMontoresponsabilidad(BigDecimal pMontoresponsabilidad){
  montoresponsabilidad=pMontoresponsabilidad;
}

public static final String MONTODISPONIBLE="MONTODISPONIBLE";
/**Obtiene el valor de montodisponible
@return valor de montodisponible*/
public BigDecimal getMontodisponible(){
  return montodisponible;
}
/**Fija el valor de montodisponible
@param pMontodisponible nuevo Valor de montodisponible*/
public void setMontodisponible(BigDecimal pMontodisponible){
  montodisponible=pMontodisponible;
}

public static final String MONTOPENDIENTE="MONTOPENDIENTE";
/**Obtiene el valor de montopendiente
@return valor de montopendiente*/
public BigDecimal getMontopendiente(){
  return montopendiente;
}
/**Fija el valor de montopendiente
@param pMontopendiente nuevo Valor de montopendiente*/
public void setMontopendiente(BigDecimal pMontopendiente){
  montopendiente=pMontopendiente;
}

public static final String MONTOUSADO="MONTOUSADO";
/**Obtiene el valor de montousado
@return valor de montousado*/
public BigDecimal getMontousado(){
  return montousado;
}
/**Fija el valor de montousado
@param pMontousado nuevo Valor de montousado*/
public void setMontousado(BigDecimal pMontousado){
  montousado=pMontousado;
}

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 CUSUARIO="CUSUARIO";
/**Obtiene el valor de cusuario
@return valor de cusuario*/
public String getCusuario(){
  return cusuario;
}
/**Fija el valor de cusuario
@param pCusuario nuevo Valor de cusuario*/
public void setCusuario(String pCusuario){
  cusuario=pCusuario;
}

public static final String OBSERVACIONES="OBSERVACIONES";
/**Obtiene el valor de observaciones
@return valor de observaciones*/
public String getObservaciones(){
  return observaciones;
}
/**Fija el valor de observaciones
@param pObservaciones nuevo Valor de observaciones*/
public void setObservaciones(String pObservaciones){
  observaciones=pObservaciones;
}

public static final String CSUBSISTEMA="CSUBSISTEMA";
/**Obtiene el valor de csubsistema
@return valor de csubsistema*/
public String getCsubsistema(){
  return csubsistema;
}
/**Fija el valor de csubsistema
@param pCsubsistema nuevo Valor de csubsistema*/
public void setCsubsistema(String pCsubsistema){
  csubsistema=pCsubsistema;
}

public static final String CTRANSACCION="CTRANSACCION";
/**Obtiene el valor de ctransaccion
@return valor de ctransaccion*/
public String getCtransaccion(){
  return ctransaccion;
}
/**Fija el valor de ctransaccion
@param pCtransaccion nuevo Valor de ctransaccion*/
public void setCtransaccion(String pCtransaccion){
  ctransaccion=pCtransaccion;
}

public static final String VERSIONTRANSACCION="VERSIONTRANSACCION";
/**Obtiene el valor de versiontransaccion
@return valor de versiontransaccion*/
public String getVersiontransaccion(){
  return versiontransaccion;
}
/**Fija el valor de versiontransaccion
@param pVersiontransaccion nuevo Valor de versiontransaccion*/
public void setVersiontransaccion(String pVersiontransaccion){
  versiontransaccion=pVersiontransaccion;
}

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 RIESGOGIRADOR="RIESGOGIRADOR";
/**Obtiene el valor de riesgogirador
@return valor de riesgogirador*/
public String getRiesgogirador(){
  return riesgogirador;
}
/**Fija el valor de riesgogirador
@param pRiesgogirador nuevo Valor de riesgogirador*/
public void setRiesgogirador(String pRiesgogirador){
  riesgogirador=pRiesgogirador;
}

public static final String ESTADO="ESTADO";
/**Obtiene el valor de estado
@return valor de estado*/
public String getEstado(){
  return estado;
}
/**Fija el valor de estado
@param pEstado nuevo Valor de estado*/
public void setEstado(String pEstado){
  estado=pEstado;
}

public static final String MOTIVO="MOTIVO";
/**Obtiene el valor de motivo
@return valor de motivo*/
public String getMotivo(){
  return motivo;
}
/**Fija el valor de motivo
@param pMotivo nuevo Valor de motivo*/
public void setMotivo(String pMotivo){
  motivo=pMotivo;
}

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