package com.fitbank.hb.persistence.prod;

import com.fitbank.common.hb.AbstractExpire;
import java.io.Serializable;
import java.math.BigDecimal;
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 TGARANTIABIENES*/
public class Tpropertyguarantee extends AbstractExpire  implements Serializable,TransportBean,Cloneable,com.fitbank.common.hb.AbstractId{
/** Nombre de la Tabla TGARANTIABIENES */
public static final String TABLE_NAME = "TGARANTIABIENES";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tpropertyguarantee
*/
private TpropertyguaranteeKey pk;
/**
* Fecha desde la que esta vigente la definicion de un tipo de bien por tipo de garantia
*/
private Timestamp fdesde;

/**
* Define si el bien de la garantia es perecible o no
*/
private String perecible;

/**
* Define si el bien de la garantia reqiere informacion de la direccion
*/
private String requieredireccion;

/**
* Dias de validez de una garantia
*/
private Integer diasvalidez;

/**
* Porcentaje aplicado al valor comercial de la garantia para utilizarlo
*/
private BigDecimal porcentajevalorcomercial;

/**
* Codigo del nivel de ponderacion de riesgo del bien de una garantia
*/
private Integer cnivelponderacion;

/**
* Define si el tipo de bien por tipo de garantia permite o no renovacion
*/
private String renovable;

/**
* Define si la garantia permite o no pignoracion
*/
private String pignoracion;

/**
* Dias de renovacion de una garantia
*/
private Integer diasrenovacion;

/**
* Codigo del tipo de seguro requerido por el tipo de bien por tipo de garantia
*/
private String ctiposeguro;

/**
* Codigo de clasificacion del tipo de bien por tipo de garantia
*/
private String cclasificaciongarantia;

/**
* Codigo de persona de la compania
*/
private Integer cpersona_compania;

/**
* Codigo del subsistema de la transaccion asociada al tipo de bien y tipo de garantia
*/
private String csubsistema_transaccion;

/**
* Codigo de la transaccion
*/
private String ctransaccion;

/**
* Version de la transaccion
*/
private String versiontransaccion;

/**
* Indica si el bien asociado a la garantia se utiliza en operaciones de personas naturales
*/
private String personanatural;

/**
* Indica si el bien asociado a la garantia se utiliza en operaciones de personas juridicas
*/
private String personajuridica;

/**
* Codigo contable asociado a la garantia y bien.
*/
private String codigocontable;

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

/**Contructor por defecto*/
public Tpropertyguarantee(){}
/**Contructor de Tpropertyguarantee
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente la definicion de un tipo de bien por tipo de garantia
*/
public Tpropertyguarantee(TpropertyguaranteeKey pPk,Timestamp pFdesde){
 pk=pPk;
 fdesde=pFdesde;
}
/**Entrega la Clave primaria de Tpropertyguarantee
@return El objeto que referencia a la Clave primaria de Tpropertyguarantee
*/
public TpropertyguaranteeKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tpropertyguarantee
@param pPk El objeto que referencia a la nueva Clave primaria de Tpropertyguarantee
*/
public void setPk(TpropertyguaranteeKey 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 PERECIBLE="PERECIBLE";
/**Obtiene el valor de perecible
@return valor de perecible*/
public String getPerecible(){
  return perecible;
}
/**Fija el valor de perecible
@param pPerecible nuevo Valor de perecible*/
public void setPerecible(String pPerecible){
  perecible=pPerecible;
}

public static final String REQUIEREDIRECCION="REQUIEREDIRECCION";
/**Obtiene el valor de requieredireccion
@return valor de requieredireccion*/
public String getRequieredireccion(){
  return requieredireccion;
}
/**Fija el valor de requieredireccion
@param pRequieredireccion nuevo Valor de requieredireccion*/
public void setRequieredireccion(String pRequieredireccion){
  requieredireccion=pRequieredireccion;
}

public static final String DIASVALIDEZ="DIASVALIDEZ";
/**Obtiene el valor de diasvalidez
@return valor de diasvalidez*/
public Integer getDiasvalidez(){
  return diasvalidez;
}
/**Fija el valor de diasvalidez
@param pDiasvalidez nuevo Valor de diasvalidez*/
public void setDiasvalidez(Integer pDiasvalidez){
  diasvalidez=pDiasvalidez;
}

public static final String PORCENTAJEVALORCOMERCIAL="PORCENTAJEVALORCOMERCIAL";
/**Obtiene el valor de porcentajevalorcomercial
@return valor de porcentajevalorcomercial*/
public BigDecimal getPorcentajevalorcomercial(){
  return porcentajevalorcomercial;
}
/**Fija el valor de porcentajevalorcomercial
@param pPorcentajevalorcomercial nuevo Valor de porcentajevalorcomercial*/
public void setPorcentajevalorcomercial(BigDecimal pPorcentajevalorcomercial){
  porcentajevalorcomercial=pPorcentajevalorcomercial;
}

public static final String CNIVELPONDERACION="CNIVELPONDERACION";
/**Obtiene el valor de cnivelponderacion
@return valor de cnivelponderacion*/
public Integer getCnivelponderacion(){
  return cnivelponderacion;
}
/**Fija el valor de cnivelponderacion
@param pCnivelponderacion nuevo Valor de cnivelponderacion*/
public void setCnivelponderacion(Integer pCnivelponderacion){
  cnivelponderacion=pCnivelponderacion;
}

public static final String RENOVABLE="RENOVABLE";
/**Obtiene el valor de renovable
@return valor de renovable*/
public String getRenovable(){
  return renovable;
}
/**Fija el valor de renovable
@param pRenovable nuevo Valor de renovable*/
public void setRenovable(String pRenovable){
  renovable=pRenovable;
}

public static final String PIGNORACION="PIGNORACION";
/**Obtiene el valor de pignoracion
@return valor de pignoracion*/
public String getPignoracion(){
  return pignoracion;
}
/**Fija el valor de pignoracion
@param pPignoracion nuevo Valor de pignoracion*/
public void setPignoracion(String pPignoracion){
  pignoracion=pPignoracion;
}

public static final String DIASRENOVACION="DIASRENOVACION";
/**Obtiene el valor de diasrenovacion
@return valor de diasrenovacion*/
public Integer getDiasrenovacion(){
  return diasrenovacion;
}
/**Fija el valor de diasrenovacion
@param pDiasrenovacion nuevo Valor de diasrenovacion*/
public void setDiasrenovacion(Integer pDiasrenovacion){
  diasrenovacion=pDiasrenovacion;
}

public static final String CTIPOSEGURO="CTIPOSEGURO";
/**Obtiene el valor de ctiposeguro
@return valor de ctiposeguro*/
public String getCtiposeguro(){
  return ctiposeguro;
}
/**Fija el valor de ctiposeguro
@param pCtiposeguro nuevo Valor de ctiposeguro*/
public void setCtiposeguro(String pCtiposeguro){
  ctiposeguro=pCtiposeguro;
}

public static final String CCLASIFICACIONGARANTIA="CCLASIFICACIONGARANTIA";
/**Obtiene el valor de cclasificaciongarantia
@return valor de cclasificaciongarantia*/
public String getCclasificaciongarantia(){
  return cclasificaciongarantia;
}
/**Fija el valor de cclasificaciongarantia
@param pCclasificaciongarantia nuevo Valor de cclasificaciongarantia*/
public void setCclasificaciongarantia(String pCclasificaciongarantia){
  cclasificaciongarantia=pCclasificaciongarantia;
}

public static final String CPERSONA_COMPANIA="CPERSONA_COMPANIA";
/**Obtiene el valor de cpersona_compania
@return valor de cpersona_compania*/
public Integer getCpersona_compania(){
  return cpersona_compania;
}
/**Fija el valor de cpersona_compania
@param pCpersona_compania nuevo Valor de cpersona_compania*/
public void setCpersona_compania(Integer pCpersona_compania){
  cpersona_compania=pCpersona_compania;
}

public static final String CSUBSISTEMA_TRANSACCION="CSUBSISTEMA_TRANSACCION";
/**Obtiene el valor de csubsistema_transaccion
@return valor de csubsistema_transaccion*/
public String getCsubsistema_transaccion(){
  return csubsistema_transaccion;
}
/**Fija el valor de csubsistema_transaccion
@param pCsubsistema_transaccion nuevo Valor de csubsistema_transaccion*/
public void setCsubsistema_transaccion(String pCsubsistema_transaccion){
  csubsistema_transaccion=pCsubsistema_transaccion;
}

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 PERSONANATURAL="PERSONANATURAL";
/**Obtiene el valor de personanatural
@return valor de personanatural*/
public String getPersonanatural(){
  return personanatural;
}
/**Fija el valor de personanatural
@param pPersonanatural nuevo Valor de personanatural*/
public void setPersonanatural(String pPersonanatural){
  personanatural=pPersonanatural;
}

public static final String PERSONAJURIDICA="PERSONAJURIDICA";
/**Obtiene el valor de personajuridica
@return valor de personajuridica*/
public String getPersonajuridica(){
  return personajuridica;
}
/**Fija el valor de personajuridica
@param pPersonajuridica nuevo Valor de personajuridica*/
public void setPersonajuridica(String pPersonajuridica){
  personajuridica=pPersonajuridica;
}

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