package com.fitbank.hb.persistence.payroll;

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

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TNOMINAGENERAVACACIONES*/
public class Tpayrollvacationgenerate extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TNOMINAGENERAVACACIONES */
public static final String TABLE_NAME = "TNOMINAGENERAVACACIONES";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tpayrollvacationgenerate
*/
private TpayrollvacationgenerateKey pk;
/**
* Manejo de optimistic locking.
*/
private Integer versioncontrol;

/**
* Fecha desde la que esta vigente el registro.
*/
private Timestamp fdesde;

/**
* Fecha ultimo ingreso del empleado
*/
private Timestamp fingreso;

/**
* Fecha del rol a generar
*/
private Date fgenerarol;

/**
* Fecha a partir de la cual puede tomar las vacaciones
*/
private Date fapartir;

/**
* Numero de dias para vacaciones normales
*/
private Integer diasvacaciones;

/**
* Numero de dias para vacaciones dias adicionales
*/
private Integer diasadicionales;

/**
* Numero de dias permiso con cargo a vacaciones
*/
private Integer diaspermiso;

/**
* Numero de dias por tomar para este periodo
*/
private Integer diasperiodo;

/**Contructor por defecto*/
public Tpayrollvacationgenerate(){}
/**Contructor de Tpayrollvacationgenerate
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente el registro.
@param pFingreso Fecha ultimo ingreso del empleado
@param pFgenerarol Fecha del rol a generar
*/
public Tpayrollvacationgenerate(TpayrollvacationgenerateKey pPk,Timestamp pFdesde,Timestamp pFingreso,Date pFgenerarol){
 pk=pPk;
 fdesde=pFdesde;
 fingreso=pFingreso;
 fgenerarol=pFgenerarol;
}
/**Entrega la Clave primaria de Tpayrollvacationgenerate
@return El objeto que referencia a la Clave primaria de Tpayrollvacationgenerate
*/
public TpayrollvacationgenerateKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tpayrollvacationgenerate
@param pPk El objeto que referencia a la nueva Clave primaria de Tpayrollvacationgenerate
*/
public void setPk(TpayrollvacationgenerateKey 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 FINGRESO="FINGRESO";
/**Obtiene el valor de fingreso
@return valor de fingreso*/
public Timestamp getFingreso(){
  return fingreso;
}
/**Fija el valor de fingreso
@param pFingreso nuevo Valor de fingreso*/
public void setFingreso(Timestamp pFingreso){
  fingreso=pFingreso;
}

public static final String FGENERAROL="FGENERAROL";
/**Obtiene el valor de fgenerarol
@return valor de fgenerarol*/
public Date getFgenerarol(){
  return fgenerarol;
}
/**Fija el valor de fgenerarol
@param pFgenerarol nuevo Valor de fgenerarol*/
public void setFgenerarol(Date pFgenerarol){
  fgenerarol=pFgenerarol;
}

public static final String FAPARTIR="FAPARTIR";
/**Obtiene el valor de fapartir
@return valor de fapartir*/
public Date getFapartir(){
  return fapartir;
}
/**Fija el valor de fapartir
@param pFapartir nuevo Valor de fapartir*/
public void setFapartir(Date pFapartir){
  fapartir=pFapartir;
}

public static final String DIASVACACIONES="DIASVACACIONES";
/**Obtiene el valor de diasvacaciones
@return valor de diasvacaciones*/
public Integer getDiasvacaciones(){
  return diasvacaciones;
}
/**Fija el valor de diasvacaciones
@param pDiasvacaciones nuevo Valor de diasvacaciones*/
public void setDiasvacaciones(Integer pDiasvacaciones){
  diasvacaciones=pDiasvacaciones;
}

public static final String DIASADICIONALES="DIASADICIONALES";
/**Obtiene el valor de diasadicionales
@return valor de diasadicionales*/
public Integer getDiasadicionales(){
  return diasadicionales;
}
/**Fija el valor de diasadicionales
@param pDiasadicionales nuevo Valor de diasadicionales*/
public void setDiasadicionales(Integer pDiasadicionales){
  diasadicionales=pDiasadicionales;
}

public static final String DIASPERMISO="DIASPERMISO";
/**Obtiene el valor de diaspermiso
@return valor de diaspermiso*/
public Integer getDiaspermiso(){
  return diaspermiso;
}
/**Fija el valor de diaspermiso
@param pDiaspermiso nuevo Valor de diaspermiso*/
public void setDiaspermiso(Integer pDiaspermiso){
  diaspermiso=pDiaspermiso;
}

public static final String DIASPERIODO="DIASPERIODO";
/**Obtiene el valor de diasperiodo
@return valor de diasperiodo*/
public Integer getDiasperiodo(){
  return diasperiodo;
}
/**Fija el valor de diasperiodo
@param pDiasperiodo nuevo Valor de diasperiodo*/
public void setDiasperiodo(Integer pDiasperiodo){
  diasperiodo=pDiasperiodo;
}

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