package com.fitbank.hb.persistence.gene;

import com.fitbank.common.hb.AbstractExpire;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.sql.Timestamp;
import java.math.BigDecimal;
import com.fitbank.common.TransportBean;

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TCOBRANZASNOTIFICACIONRANGOS*/
public class Tcollectionnotificationranges extends AbstractExpire  implements Serializable,TransportBean,Cloneable,com.fitbank.common.hb.AbstractId {
/** Nombre de la Tabla TCOBRANZASNOTIFICACIONRANGOS */
public static final String TABLE_NAME = "TCOBRANZASNOTIFICACIONRANGOS";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tcollectionnotificationranges
*/
private TcollectionnotificationrangesKey pk;
/**
* Fecha desde la que se encuentra vigente el registro.
*/
private Timestamp fdesde;

/**
* Si el préstamo tiene este número mínimo de cuotas vencidas, se envía la notificación parametrizada en la TNOTIFICACIONDESTINATARIOS.
*/
private Integer numerocuotasvencidasdesde;

/**
* Si el préstamo tiene este número máximo de cuotas vencidas, se envía la notificación parametrizada en la TNOTIFICACIONDESTINATARIOS.
*/
private Integer numerocuotasvencidashasta;

/**
* Si el préstamo tiene al menos este número de días de retraso, se envía la notificación parametrizada en la TNOTIFICACIONDESTINATARIOS.
*/
private Integer numerodiasretrasodesde;

/**
* Si el préstamo tiene hasta este número de días de retraso, se envía la notificación parametrizada en la TNOTIFICACIONDESTINATARIOS.
*/
private Integer numerodiasretrasohasta;

/**
* Si el préstamo acumula al menos este monto vencido, se envía la notificación parametrizada en la TNOTIFICACIONDESTINATARIOS.
*/
private BigDecimal montovencidodesde;

/**
* Si el préstamo acumula hasta este monto vencido, se envía la notificación parametrizada en la TNOTIFICACIONDESTINATARIOS.
*/
private BigDecimal montovencidohasta;

/**
* Indica si se le debe notificar al oficial de cuenta cuando al ejecutar el batch no se pudo enviar la notificación al usuario (por ejemplo cuando éste no tiene correo).
*/
private String notificaroficialcuenta;

/**
* Rol que corresponde a los usuarios a los que se les debe notificar cuando un préstamo cumpla los parámetros. Usado cuando se quiere escalar una notificación, o cuando el préstamo es importante y se requiere notificación a directivos.
*/
private Integer crol_notificacion;

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

/**Contructor por defecto*/
public Tcollectionnotificationranges(){}
/**Contructor de Tcollectionnotificationranges
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que se encuentra vigente el registro.
@param pNotificaroficialcuenta Indica si se le debe notificar al oficial de cuenta cuando al ejecutar el batch no se pudo enviar la notificación al usuario (por ejemplo cuando éste no tiene correo).
@param pVersioncontrol Manejo de optimistic locking.
*/
public Tcollectionnotificationranges(TcollectionnotificationrangesKey pPk,Timestamp pFdesde,String pNotificaroficialcuenta,Integer pVersioncontrol){
 pk=pPk;
 fdesde=pFdesde;
 notificaroficialcuenta=pNotificaroficialcuenta;
 versioncontrol=pVersioncontrol;
}
/**Entrega la Clave primaria de Tcollectionnotificationranges
@return El objeto que referencia a la Clave primaria de Tcollectionnotificationranges
*/
public TcollectionnotificationrangesKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tcollectionnotificationranges
@param pPk El objeto que referencia a la nueva Clave primaria de Tcollectionnotificationranges
*/
public void setPk(TcollectionnotificationrangesKey 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 NUMEROCUOTASVENCIDASDESDE="NUMEROCUOTASVENCIDASDESDE";
/**Obtiene el valor de numerocuotasvencidasdesde
@return valor de numerocuotasvencidasdesde*/
public Integer getNumerocuotasvencidasdesde(){
  return numerocuotasvencidasdesde;
}
/**Fija el valor de numerocuotasvencidasdesde
@param pNumerocuotasvencidasdesde nuevo Valor de numerocuotasvencidasdesde*/
public void setNumerocuotasvencidasdesde(Integer pNumerocuotasvencidasdesde){
  numerocuotasvencidasdesde=pNumerocuotasvencidasdesde;
}

public static final String NUMEROCUOTASVENCIDASHASTA="NUMEROCUOTASVENCIDASHASTA";
/**Obtiene el valor de numerocuotasvencidashasta
@return valor de numerocuotasvencidashasta*/
public Integer getNumerocuotasvencidashasta(){
  return numerocuotasvencidashasta;
}
/**Fija el valor de numerocuotasvencidashasta
@param pNumerocuotasvencidashasta nuevo Valor de numerocuotasvencidashasta*/
public void setNumerocuotasvencidashasta(Integer pNumerocuotasvencidashasta){
  numerocuotasvencidashasta=pNumerocuotasvencidashasta;
}

public static final String NUMERODIASRETRASODESDE="NUMERODIASRETRASODESDE";
/**Obtiene el valor de numerodiasretrasodesde
@return valor de numerodiasretrasodesde*/
public Integer getNumerodiasretrasodesde(){
  return numerodiasretrasodesde;
}
/**Fija el valor de numerodiasretrasodesde
@param pNumerodiasretrasodesde nuevo Valor de numerodiasretrasodesde*/
public void setNumerodiasretrasodesde(Integer pNumerodiasretrasodesde){
  numerodiasretrasodesde=pNumerodiasretrasodesde;
}

public static final String NUMERODIASRETRASOHASTA="NUMERODIASRETRASOHASTA";
/**Obtiene el valor de numerodiasretrasohasta
@return valor de numerodiasretrasohasta*/
public Integer getNumerodiasretrasohasta(){
  return numerodiasretrasohasta;
}
/**Fija el valor de numerodiasretrasohasta
@param pNumerodiasretrasohasta nuevo Valor de numerodiasretrasohasta*/
public void setNumerodiasretrasohasta(Integer pNumerodiasretrasohasta){
  numerodiasretrasohasta=pNumerodiasretrasohasta;
}

public static final String MONTOVENCIDODESDE="MONTOVENCIDODESDE";
/**Obtiene el valor de montovencidodesde
@return valor de montovencidodesde*/
public BigDecimal getMontovencidodesde(){
  return montovencidodesde;
}
/**Fija el valor de montovencidodesde
@param pMontovencidodesde nuevo Valor de montovencidodesde*/
public void setMontovencidodesde(BigDecimal pMontovencidodesde){
  montovencidodesde=pMontovencidodesde;
}

public static final String MONTOVENCIDOHASTA="MONTOVENCIDOHASTA";
/**Obtiene el valor de montovencidohasta
@return valor de montovencidohasta*/
public BigDecimal getMontovencidohasta(){
  return montovencidohasta;
}
/**Fija el valor de montovencidohasta
@param pMontovencidohasta nuevo Valor de montovencidohasta*/
public void setMontovencidohasta(BigDecimal pMontovencidohasta){
  montovencidohasta=pMontovencidohasta;
}

public static final String NOTIFICAROFICIALCUENTA="NOTIFICAROFICIALCUENTA";
/**Obtiene el valor de notificaroficialcuenta
@return valor de notificaroficialcuenta*/
public String getNotificaroficialcuenta(){
  return notificaroficialcuenta;
}
/**Fija el valor de notificaroficialcuenta
@param pNotificaroficialcuenta nuevo Valor de notificaroficialcuenta*/
public void setNotificaroficialcuenta(String pNotificaroficialcuenta){
  notificaroficialcuenta=pNotificaroficialcuenta;
}

public static final String CROL_NOTIFICACION="CROL_NOTIFICACION";
/**Obtiene el valor de crol_notificacion
@return valor de crol_notificacion*/
public Integer getCrol_notificacion(){
  return crol_notificacion;
}
/**Fija el valor de crol_notificacion
@param pCrol_notificacion nuevo Valor de crol_notificacion*/
public void setCrol_notificacion(Integer pCrol_notificacion){
  crol_notificacion=pCrol_notificacion;
}

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