package com.fitbank.hb.persistence.card;

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 TTARJETADEBITOCUPOS*/
public class Tquotadebitcard extends AbstractExpire  implements Serializable,TransportBean,Cloneable{
/**
* HashCode asociado con la Instancia
*/
private volatile int hashValue = 0;
/**
* Version de la Clase
*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Tquotadebitcard
*/
private TquotadebitcardKey pk;
/**
* Manejo de optimistic loking
*/
private Integer versioncontrol;

/**
* Fecha desde la que esta vigente la definicion de los cupos por red de una tarjeta de debito
*/
private Timestamp fdesde;

/**
* Codigo de moneda de los cupos definidos para una tarjeta de debito
*/
private String cmoneda;

/**
* Cupo de retiro definido para el producto de tarjeta de debito por moneda
*/
private BigDecimal cuporetiro;

/**
* Codigo de la frecuencia de utilizacion del cupo definido por red de cajeros para retiros en una tarjeta de debito
*/
private Integer cfrecuencia_cuporetiro;

/**
* Cupo de compras definido para una tarjeta de debito por red de cajeros
*/
private BigDecimal cupocompras;

/**
* Codigo de la frecuencia de utilizacion del cupo definido por red de cajeros para compras en una tarjeta de debito
*/
private Integer cfrecuencia_cupocompras;

/**
* Cupo de retiro/compras que aplica si la transaccin proviene de un pais de riesgo tipo 1
*/
private BigDecimal cupopaisestipo1;

/**
* Cupo de retiro/compras que aplica si la transaccion proviene de un pais de riesgo tipo 2
*/
private BigDecimal cupopaisestipo2;

/**
* Cupo de retiro internacional definido para el producto de tarjeta de debito por moneda
*/
private BigDecimal cuporetirointernacional;

/**
* Cupo de compras internacionales definido para una tarjeta de debito por red de cajeros
*/
private BigDecimal cupocomprasinternacional;

/**
* Codigo de la frecuencia de utilizacion del cupo definido por red de cajeros para compras internacionales en una tarjeta de debito
*/
private Integer cfrecuencia_cupocomprasinter;

/**
* Codigo de la frecuencia de utilizacion del cupo definido por red de cajeros para retiros internacionales en una tarjeta de debito
*/
private Integer cfrecuencia_cuporetirointer;

/**Contructor por defecto*/
public Tquotadebitcard(){}
/**Contructor de Tquotadebitcard
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que esta vigente la definicion de los cupos por red de una tarjeta de debito
@param pCmoneda Codigo de moneda de los cupos definidos para una tarjeta de debito
*/
public Tquotadebitcard(TquotadebitcardKey pPk,Timestamp pFdesde,String pCmoneda){
 pk=pPk;
 fdesde=pFdesde;
 cmoneda=pCmoneda;
}
/**Entrega la Clave primaria de Tquotadebitcard
@return El objeto que referencia a la Clave primaria de Tquotadebitcard
*/
public TquotadebitcardKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tquotadebitcard
@param pPk El objeto que referencia a la nueva Clave primaria de Tquotadebitcard
*/
public void setPk(TquotadebitcardKey pPk){
  pk=pPk;
}
/**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;
}

/**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;
}

/**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;
}

/**Obtiene el valor de cuporetiro
@return valor de cuporetiro*/
public BigDecimal getCuporetiro(){
  return cuporetiro;
}
/**Fija el valor de cuporetiro
@param pCuporetiro nuevo Valor de cuporetiro*/
public void setCuporetiro(BigDecimal pCuporetiro){
  cuporetiro=pCuporetiro;
}

/**Obtiene el valor de cfrecuencia_cuporetiro
@return valor de cfrecuencia_cuporetiro*/
public Integer getCfrecuencia_cuporetiro(){
  return cfrecuencia_cuporetiro;
}
/**Fija el valor de cfrecuencia_cuporetiro
@param pCfrecuencia_cuporetiro nuevo Valor de cfrecuencia_cuporetiro*/
public void setCfrecuencia_cuporetiro(Integer pCfrecuencia_cuporetiro){
  cfrecuencia_cuporetiro=pCfrecuencia_cuporetiro;
}

/**Obtiene el valor de cupocompras
@return valor de cupocompras*/
public BigDecimal getCupocompras(){
  return cupocompras;
}
/**Fija el valor de cupocompras
@param pCupocompras nuevo Valor de cupocompras*/
public void setCupocompras(BigDecimal pCupocompras){
  cupocompras=pCupocompras;
}

/**Obtiene el valor de cfrecuencia_cupocompras
@return valor de cfrecuencia_cupocompras*/
public Integer getCfrecuencia_cupocompras(){
  return cfrecuencia_cupocompras;
}
/**Fija el valor de cfrecuencia_cupocompras
@param pCfrecuencia_cupocompras nuevo Valor de cfrecuencia_cupocompras*/
public void setCfrecuencia_cupocompras(Integer pCfrecuencia_cupocompras){
  cfrecuencia_cupocompras=pCfrecuencia_cupocompras;
}

/**Obtiene el valor de cupopaisestipo1
@return valor de cupopaisestipo1*/
public BigDecimal getCupopaisestipo1(){
  return cupopaisestipo1;
}
/**Fija el valor de cupopaisestipo1
@param pCupopaisestipo1 nuevo Valor de cupopaisestipo1*/
public void setCupopaisestipo1(BigDecimal pCupopaisestipo1){
  cupopaisestipo1=pCupopaisestipo1;
}

/**Obtiene el valor de cupopaisestipo2
@return valor de cupopaisestipo2*/
public BigDecimal getCupopaisestipo2(){
  return cupopaisestipo2;
}
/**Fija el valor de cupopaisestipo2
@param pCupopaisestipo2 nuevo Valor de cupopaisestipo2*/
public void setCupopaisestipo2(BigDecimal pCupopaisestipo2){
  cupopaisestipo2=pCupopaisestipo2;
}

/**Obtiene el valor de cuporetirointernacional
@return valor de cuporetirointernacional*/
public BigDecimal getCuporetirointernacional(){
  return cuporetirointernacional;
}
/**Fija el valor de cuporetirointernacional
@param pCuporetirointernacional nuevo Valor de cuporetirointernacional*/
public void setCuporetirointernacional(BigDecimal pCuporetirointernacional){
  cuporetirointernacional=pCuporetirointernacional;
}

/**Obtiene el valor de cupocomprasinternacional
@return valor de cupocomprasinternacional*/
public BigDecimal getCupocomprasinternacional(){
  return cupocomprasinternacional;
}
/**Fija el valor de cupocomprasinternacional
@param pCupocomprasinternacional nuevo Valor de cupocomprasinternacional*/
public void setCupocomprasinternacional(BigDecimal pCupocomprasinternacional){
  cupocomprasinternacional=pCupocomprasinternacional;
}

/**Obtiene el valor de cfrecuencia_cupocomprasinter
@return valor de cfrecuencia_cupocomprasinter*/
public Integer getCfrecuencia_cupocomprasinter(){
  return cfrecuencia_cupocomprasinter;
}
/**Fija el valor de cfrecuencia_cupocomprasinter
@param pCfrecuencia_cupocomprasinter nuevo Valor de cfrecuencia_cupocomprasinter*/
public void setCfrecuencia_cupocomprasinter(Integer pCfrecuencia_cupocomprasinter){
  cfrecuencia_cupocomprasinter=pCfrecuencia_cupocomprasinter;
}

/**Obtiene el valor de cfrecuencia_cuporetirointer
@return valor de cfrecuencia_cuporetirointer*/
public Integer getCfrecuencia_cuporetirointer(){
  return cfrecuencia_cuporetirointer;
}
/**Fija el valor de cfrecuencia_cuporetirointer
@param pCfrecuencia_cuporetirointer nuevo Valor de cfrecuencia_cuporetirointer*/
public void setCfrecuencia_cuporetirointer(Integer pCfrecuencia_cuporetirointer){
  cfrecuencia_cuporetirointer=pCfrecuencia_cuporetirointer;
}

/**Implementación de la comparación de la entidad Tquotadebitcard
@param rhs Elemento de Comparación
@return el resultado de la comparación
*/
public boolean equals(Object rhs){
    if (rhs == null)return false;
    if (! (rhs instanceof Tquotadebitcard))return false;
    Tquotadebitcard that = (Tquotadebitcard) 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 Tquotadebitcard
@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 blancoTquotadebitcard
*/
public Object createInstance() throws Exception{
 Tquotadebitcard instance=new Tquotadebitcard();	
 instance.setPk(new TquotadebitcardKey());
 return instance;
}
public Object cloneMe() throws Exception{
  Tquotadebitcard p=(Tquotadebitcard)this.clone();
  p.setPk((TquotadebitcardKey)this.pk.cloneMe());
  return p;
}
public Object getId() {
  return this.pk;
}
}
