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 TDEFINICIONSEGMENTOSCREDITO*/
public class Tsegmentcreditdefinition extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TDEFINICIONSEGMENTOSCREDITO */
public static final String TABLE_NAME = "TDEFINICIONSEGMENTOSCREDITO";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tsegmentcreditdefinition
*/
private TsegmentcreditdefinitionKey pk;
/**
* Manejo de optimistic locking.
*/
private Integer versioncontrol;

/**
* Fecha desde la que esta vigente la definicion del segmento de credito
*/
private Timestamp fdesde;

/**
* Numero minimo de trabajadores que disponga la empresa a tiempo completo (empleados directos o subcontratados) que determinan si es pequena o mediana empresa
*/
private Integer numeroempleadosminimo;

/**
* Numero maximo de trabajadores que dispone la empresa a tiempo completo (empleados directos o subcontratados) que determinan si es pequena o mediana empresa
*/
private Integer numeroempleadosmaximo;

/**
* Monto minimo de ventas anuales considerados en este segmento de credito
*/
private BigDecimal montoventasminimo;

/**
* Ver Nivel de Ventas anuales minimas del Sector Comercial Corporativo
*/
private String nivelventasminimo;

/**
* Monto maximo de ventas anuales considerados en el segmento de credito
*/
private BigDecimal montoventasmaximo;

/**
* Ver Nivel de Ventas anuales maximas del Sector Comercial Corporativo
*/
private String nivelventasmaximo;

/**
* Ingresos anuales minimo de una persona natural considerados dentro del segmento
*/
private BigDecimal ingresosanuales;

/**
* Monto maximo de credito directo considerado en este segmento
*/
private BigDecimal montocreditomaximo;

/**
* Saldo minimo adeudado en creditos del mismo tipo de credito 
*/
private BigDecimal saldominimodeudor;

/**
* Saldo maximo adeudado en creditos del mismo tipo de credito 
*/
private BigDecimal saldomaximodeudor;

/**
* Indica si el credito se otorga con garantia real o no
*/
private String garantiareal;

/**Contructor por defecto*/
public Tsegmentcreditdefinition(){}
/**Contructor de Tsegmentcreditdefinition
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente la definicion del segmento de credito
*/
public Tsegmentcreditdefinition(TsegmentcreditdefinitionKey pPk,Timestamp pFdesde){
 pk=pPk;
 fdesde=pFdesde;
}
/**Entrega la Clave primaria de Tsegmentcreditdefinition
@return El objeto que referencia a la Clave primaria de Tsegmentcreditdefinition
*/
public TsegmentcreditdefinitionKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tsegmentcreditdefinition
@param pPk El objeto que referencia a la nueva Clave primaria de Tsegmentcreditdefinition
*/
public void setPk(TsegmentcreditdefinitionKey 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 NUMEROEMPLEADOSMINIMO="NUMEROEMPLEADOSMINIMO";
/**Obtiene el valor de numeroempleadosminimo
@return valor de numeroempleadosminimo*/
public Integer getNumeroempleadosminimo(){
  return numeroempleadosminimo;
}
/**Fija el valor de numeroempleadosminimo
@param pNumeroempleadosminimo nuevo Valor de numeroempleadosminimo*/
public void setNumeroempleadosminimo(Integer pNumeroempleadosminimo){
  numeroempleadosminimo=pNumeroempleadosminimo;
}

public static final String NUMEROEMPLEADOSMAXIMO="NUMEROEMPLEADOSMAXIMO";
/**Obtiene el valor de numeroempleadosmaximo
@return valor de numeroempleadosmaximo*/
public Integer getNumeroempleadosmaximo(){
  return numeroempleadosmaximo;
}
/**Fija el valor de numeroempleadosmaximo
@param pNumeroempleadosmaximo nuevo Valor de numeroempleadosmaximo*/
public void setNumeroempleadosmaximo(Integer pNumeroempleadosmaximo){
  numeroempleadosmaximo=pNumeroempleadosmaximo;
}

public static final String MONTOVENTASMINIMO="MONTOVENTASMINIMO";
/**Obtiene el valor de montoventasminimo
@return valor de montoventasminimo*/
public BigDecimal getMontoventasminimo(){
  return montoventasminimo;
}
/**Fija el valor de montoventasminimo
@param pMontoventasminimo nuevo Valor de montoventasminimo*/
public void setMontoventasminimo(BigDecimal pMontoventasminimo){
  montoventasminimo=pMontoventasminimo;
}

public static final String NIVELVENTASMINIMO="NIVELVENTASMINIMO";
/**Obtiene el valor de nivelventasminimo
@return valor de nivelventasminimo*/
public String getNivelventasminimo(){
  return nivelventasminimo;
}
/**Fija el valor de nivelventasminimo
@param pNivelventasminimo nuevo Valor de nivelventasminimo*/
public void setNivelventasminimo(String pNivelventasminimo){
  nivelventasminimo=pNivelventasminimo;
}

public static final String MONTOVENTASMAXIMO="MONTOVENTASMAXIMO";
/**Obtiene el valor de montoventasmaximo
@return valor de montoventasmaximo*/
public BigDecimal getMontoventasmaximo(){
  return montoventasmaximo;
}
/**Fija el valor de montoventasmaximo
@param pMontoventasmaximo nuevo Valor de montoventasmaximo*/
public void setMontoventasmaximo(BigDecimal pMontoventasmaximo){
  montoventasmaximo=pMontoventasmaximo;
}

public static final String NIVELVENTASMAXIMO="NIVELVENTASMAXIMO";
/**Obtiene el valor de nivelventasmaximo
@return valor de nivelventasmaximo*/
public String getNivelventasmaximo(){
  return nivelventasmaximo;
}
/**Fija el valor de nivelventasmaximo
@param pNivelventasmaximo nuevo Valor de nivelventasmaximo*/
public void setNivelventasmaximo(String pNivelventasmaximo){
  nivelventasmaximo=pNivelventasmaximo;
}

public static final String INGRESOSANUALES="INGRESOSANUALES";
/**Obtiene el valor de ingresosanuales
@return valor de ingresosanuales*/
public BigDecimal getIngresosanuales(){
  return ingresosanuales;
}
/**Fija el valor de ingresosanuales
@param pIngresosanuales nuevo Valor de ingresosanuales*/
public void setIngresosanuales(BigDecimal pIngresosanuales){
  ingresosanuales=pIngresosanuales;
}

public static final String MONTOCREDITOMAXIMO="MONTOCREDITOMAXIMO";
/**Obtiene el valor de montocreditomaximo
@return valor de montocreditomaximo*/
public BigDecimal getMontocreditomaximo(){
  return montocreditomaximo;
}
/**Fija el valor de montocreditomaximo
@param pMontocreditomaximo nuevo Valor de montocreditomaximo*/
public void setMontocreditomaximo(BigDecimal pMontocreditomaximo){
  montocreditomaximo=pMontocreditomaximo;
}

public static final String SALDOMINIMODEUDOR="SALDOMINIMODEUDOR";
/**Obtiene el valor de saldominimodeudor
@return valor de saldominimodeudor*/
public BigDecimal getSaldominimodeudor(){
  return saldominimodeudor;
}
/**Fija el valor de saldominimodeudor
@param pSaldominimodeudor nuevo Valor de saldominimodeudor*/
public void setSaldominimodeudor(BigDecimal pSaldominimodeudor){
  saldominimodeudor=pSaldominimodeudor;
}

public static final String SALDOMAXIMODEUDOR="SALDOMAXIMODEUDOR";
/**Obtiene el valor de saldomaximodeudor
@return valor de saldomaximodeudor*/
public BigDecimal getSaldomaximodeudor(){
  return saldomaximodeudor;
}
/**Fija el valor de saldomaximodeudor
@param pSaldomaximodeudor nuevo Valor de saldomaximodeudor*/
public void setSaldomaximodeudor(BigDecimal pSaldomaximodeudor){
  saldomaximodeudor=pSaldomaximodeudor;
}

public static final String GARANTIAREAL="GARANTIAREAL";
/**Obtiene el valor de garantiareal
@return valor de garantiareal*/
public String getGarantiareal(){
  return garantiareal;
}
/**Fija el valor de garantiareal
@param pGarantiareal nuevo Valor de garantiareal*/
public void setGarantiareal(String pGarantiareal){
  garantiareal=pGarantiareal;
}

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