package com.fitbank.hb.persistence.prod;

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

/**
* Fecha desde la que se encuentra vigente la definicion de un producto de captaciones a la vista por moneda
*/
private Timestamp fdesde;

/**
* Monto minimo de apertura definido por moneda para un producto de captaciones a la vista
*/
private BigDecimal minimoapertura;

/**
* Promedio de cierre definido para un producto de captaciones a la vista por moneda
*/
private BigDecimal promediocierre;

/**
* Promedio minimo establecido para el producto de captaciones a la vista por moneda, cuando el promedio de una cuenta sea mas bajo se aplicara el costo de mantenimiento
*/
private BigDecimal promediominimo;

/**
* Define el numero maximo de cheques a girar en el ciclo de corte sin costo
*/
private Integer maximocheques;

/**
* Define el numero maximo de depositos a realizar en el ciclo de corte sin costo
*/
private Integer maximodepositos;

/**
* Define el numero maximo de retiros a realizar en el ciclo de corte sin costo
*/
private Integer maximoretiros;

/**
* Define el saldo tope permitido para la cuenta
*/
private BigDecimal saldomaximo;

/**
* Define el saldo hasta el cual se puede retirar sin autorizacion, si el saldo es mayor a este requiere autorizacion cada vez
*/
private BigDecimal saldoretiroautorizado;

/**
* Monto maximo permitiro para la autorizacion de un sobregiro o linea de credito
*/
private BigDecimal maximoautorizado;

/**
* Plazo en dias maximo para pago de las lineas de credito de vista
*/
private Integer plazomaximopago;

/**
* Porcentaje definido como limite de la capacidad de pago para el producto
*/
private BigDecimal limitecapacidadpago;

/**
* Define el saldo minimo que debe mantenerse en la cuenta
*/
private BigDecimal saldominimo;

/**Contructor por defecto*/
public Tviewdepositscurrencyoffice(){}
/**Contructor de Tviewdepositscurrencyoffice
@param pPk Clave Primaria del entity
@param pFdesde Fecha desde la que se encuentra vigente la definicion de un producto de captaciones a la vista por moneda
@param pMinimoapertura Monto minimo de apertura definido por moneda para un producto de captaciones a la vista
@param pPromediocierre Promedio de cierre definido para un producto de captaciones a la vista por moneda
@param pPromediominimo Promedio minimo establecido para el producto de captaciones a la vista por moneda, cuando el promedio de una cuenta sea mas bajo se aplicara el costo de mantenimiento
*/
public Tviewdepositscurrencyoffice(TviewdepositscurrencyofficeKey pPk,Timestamp pFdesde,BigDecimal pMinimoapertura,BigDecimal pPromediocierre,BigDecimal pPromediominimo){
 pk=pPk;
 fdesde=pFdesde;
 minimoapertura=pMinimoapertura;
 promediocierre=pPromediocierre;
 promediominimo=pPromediominimo;
}
/**Entrega la Clave primaria de Tviewdepositscurrencyoffice
@return El objeto que referencia a la Clave primaria de Tviewdepositscurrencyoffice
*/
public TviewdepositscurrencyofficeKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Tviewdepositscurrencyoffice
@param pPk El objeto que referencia a la nueva Clave primaria de Tviewdepositscurrencyoffice
*/
public void setPk(TviewdepositscurrencyofficeKey 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 MINIMOAPERTURA="MINIMOAPERTURA";
/**Obtiene el valor de minimoapertura
@return valor de minimoapertura*/
public BigDecimal getMinimoapertura(){
  return minimoapertura;
}
/**Fija el valor de minimoapertura
@param pMinimoapertura nuevo Valor de minimoapertura*/
public void setMinimoapertura(BigDecimal pMinimoapertura){
  minimoapertura=pMinimoapertura;
}

public static final String PROMEDIOCIERRE="PROMEDIOCIERRE";
/**Obtiene el valor de promediocierre
@return valor de promediocierre*/
public BigDecimal getPromediocierre(){
  return promediocierre;
}
/**Fija el valor de promediocierre
@param pPromediocierre nuevo Valor de promediocierre*/
public void setPromediocierre(BigDecimal pPromediocierre){
  promediocierre=pPromediocierre;
}

public static final String PROMEDIOMINIMO="PROMEDIOMINIMO";
/**Obtiene el valor de promediominimo
@return valor de promediominimo*/
public BigDecimal getPromediominimo(){
  return promediominimo;
}
/**Fija el valor de promediominimo
@param pPromediominimo nuevo Valor de promediominimo*/
public void setPromediominimo(BigDecimal pPromediominimo){
  promediominimo=pPromediominimo;
}

public static final String MAXIMOCHEQUES="MAXIMOCHEQUES";
/**Obtiene el valor de maximocheques
@return valor de maximocheques*/
public Integer getMaximocheques(){
  return maximocheques;
}
/**Fija el valor de maximocheques
@param pMaximocheques nuevo Valor de maximocheques*/
public void setMaximocheques(Integer pMaximocheques){
  maximocheques=pMaximocheques;
}

public static final String MAXIMODEPOSITOS="MAXIMODEPOSITOS";
/**Obtiene el valor de maximodepositos
@return valor de maximodepositos*/
public Integer getMaximodepositos(){
  return maximodepositos;
}
/**Fija el valor de maximodepositos
@param pMaximodepositos nuevo Valor de maximodepositos*/
public void setMaximodepositos(Integer pMaximodepositos){
  maximodepositos=pMaximodepositos;
}

public static final String MAXIMORETIROS="MAXIMORETIROS";
/**Obtiene el valor de maximoretiros
@return valor de maximoretiros*/
public Integer getMaximoretiros(){
  return maximoretiros;
}
/**Fija el valor de maximoretiros
@param pMaximoretiros nuevo Valor de maximoretiros*/
public void setMaximoretiros(Integer pMaximoretiros){
  maximoretiros=pMaximoretiros;
}

public static final String SALDOMAXIMO="SALDOMAXIMO";
/**Obtiene el valor de saldomaximo
@return valor de saldomaximo*/
public BigDecimal getSaldomaximo(){
  return saldomaximo;
}
/**Fija el valor de saldomaximo
@param pSaldomaximo nuevo Valor de saldomaximo*/
public void setSaldomaximo(BigDecimal pSaldomaximo){
  saldomaximo=pSaldomaximo;
}

public static final String SALDORETIROAUTORIZADO="SALDORETIROAUTORIZADO";
/**Obtiene el valor de saldoretiroautorizado
@return valor de saldoretiroautorizado*/
public BigDecimal getSaldoretiroautorizado(){
  return saldoretiroautorizado;
}
/**Fija el valor de saldoretiroautorizado
@param pSaldoretiroautorizado nuevo Valor de saldoretiroautorizado*/
public void setSaldoretiroautorizado(BigDecimal pSaldoretiroautorizado){
  saldoretiroautorizado=pSaldoretiroautorizado;
}

public static final String MAXIMOAUTORIZADO="MAXIMOAUTORIZADO";
/**Obtiene el valor de maximoautorizado
@return valor de maximoautorizado*/
public BigDecimal getMaximoautorizado(){
  return maximoautorizado;
}
/**Fija el valor de maximoautorizado
@param pMaximoautorizado nuevo Valor de maximoautorizado*/
public void setMaximoautorizado(BigDecimal pMaximoautorizado){
  maximoautorizado=pMaximoautorizado;
}

public static final String PLAZOMAXIMOPAGO="PLAZOMAXIMOPAGO";
/**Obtiene el valor de plazomaximopago
@return valor de plazomaximopago*/
public Integer getPlazomaximopago(){
  return plazomaximopago;
}
/**Fija el valor de plazomaximopago
@param pPlazomaximopago nuevo Valor de plazomaximopago*/
public void setPlazomaximopago(Integer pPlazomaximopago){
  plazomaximopago=pPlazomaximopago;
}

public static final String LIMITECAPACIDADPAGO="LIMITECAPACIDADPAGO";
/**Obtiene el valor de limitecapacidadpago
@return valor de limitecapacidadpago*/
public BigDecimal getLimitecapacidadpago(){
  return limitecapacidadpago;
}
/**Fija el valor de limitecapacidadpago
@param pLimitecapacidadpago nuevo Valor de limitecapacidadpago*/
public void setLimitecapacidadpago(BigDecimal pLimitecapacidadpago){
  limitecapacidadpago=pLimitecapacidadpago;
}

public static final String SALDOMINIMO="SALDOMINIMO";
/**Obtiene el valor de saldominimo
@return valor de saldominimo*/
public BigDecimal getSaldominimo(){
  return saldominimo;
}
/**Fija el valor de saldominimo
@param pSaldominimo nuevo Valor de saldominimo*/
public void setSaldominimo(BigDecimal pSaldominimo){
  saldominimo=pSaldominimo;
}

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