package com.fitbank.hb.persistence.atm;

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

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TATMINFO*/
public class Tatminfo implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TATMINFO */
public static final String TABLE_NAME = "TATMINFO";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tatminfo
*/
private TatminfoKey pk;
/**
* Texto a poner el campo TERMINALLOCATION del bit 43 de la mensajeria ISO-8583
*/
private String ubicacioniso;

/**
* Ubicacion fisica del terminal
*/
private String ubicacion;

/**
* Fecha en la cual se ha actualizado la informacion y que proviene del ATM mediante el comando GENERAL LIST
*/
private Date factualizacion;

/**
* Fecha contable que reporta el ATM a la fecha de actualizacion de esta informacion
*/
private Date fcontable;

/**
* Fecha contable anterior reportada por el ATM
*/
private Date fcontableanterior;

/**
* Denominacion de billetes para el cassete 1 del ATM
*/
private Integer cassete1;

/**
* Denominacion de billetes para el cassete 2 del ATM
*/
private Integer cassete2;

/**
* Denominacion de billetes para el cassete 3 del ATM
*/
private Integer cassete3;

/**
* Denominacion de billetes para el cassete 4 del ATM
*/
private Integer cassete4;

/**
* Numero serial de la siguiente transaccion del ATM
*/
private Integer serialatm;

/**
* Tipo de terminal segun esta definido en TIF
*/
private String tipoterminaltif;

/**
* Tipo de terminal segun esta definido en TLG
*/
private String tipoterminaltlg;

/**
* Lista de opciones de software y hardware del ATM. Se interpretan segun la mensajeria PACE
*/
private String opciones;

/**
* Codigo de moneda
*/
private String cmoneda;

/**
* Codigo de modelo del ATM
*/
private String cmodeloatm;

/**
* Codigo del usuario para el ATM
*/
private String cusuario;

/**
* Indicador de si el ATM se encuentra operativo o No
*/
private String operativo;

/**
* Numero maximo de billetes que el atm puede dispensar
*/
private Integer numeromaximodispensar;

/**Contructor por defecto*/
public Tatminfo(){}
/**Contructor de Tatminfo
@param pPk Clave Primaria del entity
@param pUbicacioniso Texto a poner el campo TERMINALLOCATION del bit 43 de la mensajeria ISO-8583
@param pUbicacion Ubicacion fisica del terminal
@param pFactualizacion Fecha en la cual se ha actualizado la informacion y que proviene del ATM mediante el comando GENERAL LIST
@param pFcontable Fecha contable que reporta el ATM a la fecha de actualizacion de esta informacion
*/
public Tatminfo(TatminfoKey pPk,String pUbicacioniso,String pUbicacion,Date pFactualizacion,Date pFcontable){
 pk=pPk;
 ubicacioniso=pUbicacioniso;
 ubicacion=pUbicacion;
 factualizacion=pFactualizacion;
 fcontable=pFcontable;
}
/**Entrega la Clave primaria de Tatminfo
@return El objeto que referencia a la Clave primaria de Tatminfo
*/
public TatminfoKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tatminfo
@param pPk El objeto que referencia a la nueva Clave primaria de Tatminfo
*/
public void setPk(TatminfoKey pPk){
  pk=pPk;
}
public static final String UBICACIONISO="UBICACIONISO";
/**Obtiene el valor de ubicacioniso
@return valor de ubicacioniso*/
public String getUbicacioniso(){
  return ubicacioniso;
}
/**Fija el valor de ubicacioniso
@param pUbicacioniso nuevo Valor de ubicacioniso*/
public void setUbicacioniso(String pUbicacioniso){
  ubicacioniso=pUbicacioniso;
}

public static final String UBICACION="UBICACION";
/**Obtiene el valor de ubicacion
@return valor de ubicacion*/
public String getUbicacion(){
  return ubicacion;
}
/**Fija el valor de ubicacion
@param pUbicacion nuevo Valor de ubicacion*/
public void setUbicacion(String pUbicacion){
  ubicacion=pUbicacion;
}

public static final String FACTUALIZACION="FACTUALIZACION";
/**Obtiene el valor de factualizacion
@return valor de factualizacion*/
public Date getFactualizacion(){
  return factualizacion;
}
/**Fija el valor de factualizacion
@param pFactualizacion nuevo Valor de factualizacion*/
public void setFactualizacion(Date pFactualizacion){
  factualizacion=pFactualizacion;
}

public static final String FCONTABLE="FCONTABLE";
/**Obtiene el valor de fcontable
@return valor de fcontable*/
public Date getFcontable(){
  return fcontable;
}
/**Fija el valor de fcontable
@param pFcontable nuevo Valor de fcontable*/
public void setFcontable(Date pFcontable){
  fcontable=pFcontable;
}

public static final String FCONTABLEANTERIOR="FCONTABLEANTERIOR";
/**Obtiene el valor de fcontableanterior
@return valor de fcontableanterior*/
public Date getFcontableanterior(){
  return fcontableanterior;
}
/**Fija el valor de fcontableanterior
@param pFcontableanterior nuevo Valor de fcontableanterior*/
public void setFcontableanterior(Date pFcontableanterior){
  fcontableanterior=pFcontableanterior;
}

public static final String CASSETE1="CASSETE1";
/**Obtiene el valor de cassete1
@return valor de cassete1*/
public Integer getCassete1(){
  return cassete1;
}
/**Fija el valor de cassete1
@param pCassete1 nuevo Valor de cassete1*/
public void setCassete1(Integer pCassete1){
  cassete1=pCassete1;
}

public static final String CASSETE2="CASSETE2";
/**Obtiene el valor de cassete2
@return valor de cassete2*/
public Integer getCassete2(){
  return cassete2;
}
/**Fija el valor de cassete2
@param pCassete2 nuevo Valor de cassete2*/
public void setCassete2(Integer pCassete2){
  cassete2=pCassete2;
}

public static final String CASSETE3="CASSETE3";
/**Obtiene el valor de cassete3
@return valor de cassete3*/
public Integer getCassete3(){
  return cassete3;
}
/**Fija el valor de cassete3
@param pCassete3 nuevo Valor de cassete3*/
public void setCassete3(Integer pCassete3){
  cassete3=pCassete3;
}

public static final String CASSETE4="CASSETE4";
/**Obtiene el valor de cassete4
@return valor de cassete4*/
public Integer getCassete4(){
  return cassete4;
}
/**Fija el valor de cassete4
@param pCassete4 nuevo Valor de cassete4*/
public void setCassete4(Integer pCassete4){
  cassete4=pCassete4;
}

public static final String SERIALATM="SERIALATM";
/**Obtiene el valor de serialatm
@return valor de serialatm*/
public Integer getSerialatm(){
  return serialatm;
}
/**Fija el valor de serialatm
@param pSerialatm nuevo Valor de serialatm*/
public void setSerialatm(Integer pSerialatm){
  serialatm=pSerialatm;
}

public static final String TIPOTERMINALTIF="TIPOTERMINALTIF";
/**Obtiene el valor de tipoterminaltif
@return valor de tipoterminaltif*/
public String getTipoterminaltif(){
  return tipoterminaltif;
}
/**Fija el valor de tipoterminaltif
@param pTipoterminaltif nuevo Valor de tipoterminaltif*/
public void setTipoterminaltif(String pTipoterminaltif){
  tipoterminaltif=pTipoterminaltif;
}

public static final String TIPOTERMINALTLG="TIPOTERMINALTLG";
/**Obtiene el valor de tipoterminaltlg
@return valor de tipoterminaltlg*/
public String getTipoterminaltlg(){
  return tipoterminaltlg;
}
/**Fija el valor de tipoterminaltlg
@param pTipoterminaltlg nuevo Valor de tipoterminaltlg*/
public void setTipoterminaltlg(String pTipoterminaltlg){
  tipoterminaltlg=pTipoterminaltlg;
}

public static final String OPCIONES="OPCIONES";
/**Obtiene el valor de opciones
@return valor de opciones*/
public String getOpciones(){
  return opciones;
}
/**Fija el valor de opciones
@param pOpciones nuevo Valor de opciones*/
public void setOpciones(String pOpciones){
  opciones=pOpciones;
}

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 CMODELOATM="CMODELOATM";
/**Obtiene el valor de cmodeloatm
@return valor de cmodeloatm*/
public String getCmodeloatm(){
  return cmodeloatm;
}
/**Fija el valor de cmodeloatm
@param pCmodeloatm nuevo Valor de cmodeloatm*/
public void setCmodeloatm(String pCmodeloatm){
  cmodeloatm=pCmodeloatm;
}

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 OPERATIVO="OPERATIVO";
/**Obtiene el valor de operativo
@return valor de operativo*/
public String getOperativo(){
  return operativo;
}
/**Fija el valor de operativo
@param pOperativo nuevo Valor de operativo*/
public void setOperativo(String pOperativo){
  operativo=pOperativo;
}

public static final String NUMEROMAXIMODISPENSAR="NUMEROMAXIMODISPENSAR";
/**Obtiene el valor de numeromaximodispensar
@return valor de numeromaximodispensar*/
public Integer getNumeromaximodispensar(){
  return numeromaximodispensar;
}
/**Fija el valor de numeromaximodispensar
@param pNumeromaximodispensar nuevo Valor de numeromaximodispensar*/
public void setNumeromaximodispensar(Integer pNumeromaximodispensar){
  numeromaximodispensar=pNumeromaximodispensar;
}

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