package com.fitbank.hb.persistence.trans;

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

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TTRANSACCIONRUBROSDEFINICION*/
public class Titemdefinition implements Serializable,TransportBean,Cloneable{
/** Nombre de la Tabla TTRANSACCIONRUBROSDEFINICION */
public static final String TABLE_NAME = "TTRANSACCIONRUBROSDEFINICION";
/** HashCode asociado con la Instancia*/
private int hashValue = 0;
/** Version de la Clase*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad Titemdefinition
*/
private TitemdefinitionKey pk;
/**
* Codigo de categoria. 
*/
private String categoria;

/**
* Codigo del grupo de balance
*/
private String cgrupobalance;

/**
* Codigo de persona de la compania. 
*/
private Integer cpersona_compania;

/**
* Codigo de rubro que arma el par contable.
*/
private Integer rubro_par;

/**
* Secuencia de subro padre para calcular impuestos cargos comisiones.
*/
private Integer rubro_padre;

/**
* Codigo de concepto debito.
*/
private String debitocredito;

/**
* Codigo de estatus contable de cuenta
*/
private String cestatuscuenta;

/**
* Codigo de plantilla de cuentas por cobrar
*/
private Integer ccodigoplantilla;

/**
* Indica si el rubro calcula valores de impuestos, cargos o comisiones
*/
private String tienetarifario;

/**
* Codigo de concepto credito. 
*/
private String cconcepto;

/**
* Indica si el rubro genera movimiento y actualiza saldos de la cuenta. 
*/
private String generamovimiento;

/**
* Indica si el rubro afecta los saldos de caja multiple 0 = No Aplica, E = Aplica efectivo, C = Aplica cheques.
*/
private String afectacajamultiple;

/**
* Indica si el movimiento se oculta en el estado de cuenta.
*/
private String ocultaestadodecuenta;

/**
* Indica si el rubro genera un sobregiro indirecto automaticamente. 
*/
private String generasobregiro;

/**
* Indica si la el registro se almacena en cache utilizado en transacciones utilizadas frecuentemente.
*/
private String usacache;

/**
* Indica si se toma la categoria grupo de balance para el calculo de intereses y/o comisiones
*/
private String calculainterescomision;

/**
* Indica si el rubro es un impuesto para enviar el calculo del valor no cobrado a cuentas por cobrar
*/
private String calculaimpuesto;

/**
* Codigo de rubro que se dispara automaticamente especialmente para registrar cuentas de orden o contingeneres
*/
private Integer rubro_asociado;

/**
* Indica si la cetagoria genera movimiento intersucursales o no
*/
private String generaintersucursal;

/**
* Indica si el rubro genera o no el valor de la diferencia del comprobante contable por ajuste de decimales.
*/
private String ajustepordecimales;

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

/**
* Codigo del grupo de transaccion en el que se reporta el rubro
*/
private String cgrupotransaccion;

/**Contructor por defecto*/
public Titemdefinition(){}
/**Contructor de Titemdefinition
@param pPk Clave Primaria del entity
@param pCategoria Codigo de categoria. 
@param pCgrupobalance Codigo del grupo de balance
@param pCpersona_compania Codigo de persona de la compania. 
@param pDebitocredito Codigo de concepto debito.
@param pGeneramovimiento Indica si el rubro genera movimiento y actualiza saldos de la cuenta. 
*/
public Titemdefinition(TitemdefinitionKey pPk,String pCategoria,String pCgrupobalance,Integer pCpersona_compania,String pDebitocredito,String pGeneramovimiento){
 pk=pPk;
 categoria=pCategoria;
 cgrupobalance=pCgrupobalance;
 cpersona_compania=pCpersona_compania;
 debitocredito=pDebitocredito;
 generamovimiento=pGeneramovimiento;
}
/**Entrega la Clave primaria de Titemdefinition
@return El objeto que referencia a la Clave primaria de Titemdefinition
*/
public TitemdefinitionKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de Titemdefinition
@param pPk El objeto que referencia a la nueva Clave primaria de Titemdefinition
*/
public void setPk(TitemdefinitionKey pPk){
  pk=pPk;
}
public static final String CATEGORIA="CATEGORIA";
/**Obtiene el valor de categoria
@return valor de categoria*/
public String getCategoria(){
  return categoria;
}
/**Fija el valor de categoria
@param pCategoria nuevo Valor de categoria*/
public void setCategoria(String pCategoria){
  categoria=pCategoria;
}

public static final String CGRUPOBALANCE="CGRUPOBALANCE";
/**Obtiene el valor de cgrupobalance
@return valor de cgrupobalance*/
public String getCgrupobalance(){
  return cgrupobalance;
}
/**Fija el valor de cgrupobalance
@param pCgrupobalance nuevo Valor de cgrupobalance*/
public void setCgrupobalance(String pCgrupobalance){
  cgrupobalance=pCgrupobalance;
}

public static final String CPERSONA_COMPANIA="CPERSONA_COMPANIA";
/**Obtiene el valor de cpersona_compania
@return valor de cpersona_compania*/
public Integer getCpersona_compania(){
  return cpersona_compania;
}
/**Fija el valor de cpersona_compania
@param pCpersona_compania nuevo Valor de cpersona_compania*/
public void setCpersona_compania(Integer pCpersona_compania){
  cpersona_compania=pCpersona_compania;
}

public static final String RUBRO_PAR="RUBRO_PAR";
/**Obtiene el valor de rubro_par
@return valor de rubro_par*/
public Integer getRubro_par(){
  return rubro_par;
}
/**Fija el valor de rubro_par
@param pRubro_par nuevo Valor de rubro_par*/
public void setRubro_par(Integer pRubro_par){
  rubro_par=pRubro_par;
}

public static final String RUBRO_PADRE="RUBRO_PADRE";
/**Obtiene el valor de rubro_padre
@return valor de rubro_padre*/
public Integer getRubro_padre(){
  return rubro_padre;
}
/**Fija el valor de rubro_padre
@param pRubro_padre nuevo Valor de rubro_padre*/
public void setRubro_padre(Integer pRubro_padre){
  rubro_padre=pRubro_padre;
}

public static final String DEBITOCREDITO="DEBITOCREDITO";
/**Obtiene el valor de debitocredito
@return valor de debitocredito*/
public String getDebitocredito(){
  return debitocredito;
}
/**Fija el valor de debitocredito
@param pDebitocredito nuevo Valor de debitocredito*/
public void setDebitocredito(String pDebitocredito){
  debitocredito=pDebitocredito;
}

public static final String CESTATUSCUENTA="CESTATUSCUENTA";
/**Obtiene el valor de cestatuscuenta
@return valor de cestatuscuenta*/
public String getCestatuscuenta(){
  return cestatuscuenta;
}
/**Fija el valor de cestatuscuenta
@param pCestatuscuenta nuevo Valor de cestatuscuenta*/
public void setCestatuscuenta(String pCestatuscuenta){
  cestatuscuenta=pCestatuscuenta;
}

public static final String CCODIGOPLANTILLA="CCODIGOPLANTILLA";
/**Obtiene el valor de ccodigoplantilla
@return valor de ccodigoplantilla*/
public Integer getCcodigoplantilla(){
  return ccodigoplantilla;
}
/**Fija el valor de ccodigoplantilla
@param pCcodigoplantilla nuevo Valor de ccodigoplantilla*/
public void setCcodigoplantilla(Integer pCcodigoplantilla){
  ccodigoplantilla=pCcodigoplantilla;
}

public static final String TIENETARIFARIO="TIENETARIFARIO";
/**Obtiene el valor de tienetarifario
@return valor de tienetarifario*/
public String getTienetarifario(){
  return tienetarifario;
}
/**Fija el valor de tienetarifario
@param pTienetarifario nuevo Valor de tienetarifario*/
public void setTienetarifario(String pTienetarifario){
  tienetarifario=pTienetarifario;
}

public static final String CCONCEPTO="CCONCEPTO";
/**Obtiene el valor de cconcepto
@return valor de cconcepto*/
public String getCconcepto(){
  return cconcepto;
}
/**Fija el valor de cconcepto
@param pCconcepto nuevo Valor de cconcepto*/
public void setCconcepto(String pCconcepto){
  cconcepto=pCconcepto;
}

public static final String GENERAMOVIMIENTO="GENERAMOVIMIENTO";
/**Obtiene el valor de generamovimiento
@return valor de generamovimiento*/
public String getGeneramovimiento(){
  return generamovimiento;
}
/**Fija el valor de generamovimiento
@param pGeneramovimiento nuevo Valor de generamovimiento*/
public void setGeneramovimiento(String pGeneramovimiento){
  generamovimiento=pGeneramovimiento;
}

public static final String AFECTACAJAMULTIPLE="AFECTACAJAMULTIPLE";
/**Obtiene el valor de afectacajamultiple
@return valor de afectacajamultiple*/
public String getAfectacajamultiple(){
  return afectacajamultiple;
}
/**Fija el valor de afectacajamultiple
@param pAfectacajamultiple nuevo Valor de afectacajamultiple*/
public void setAfectacajamultiple(String pAfectacajamultiple){
  afectacajamultiple=pAfectacajamultiple;
}

public static final String OCULTAESTADODECUENTA="OCULTAESTADODECUENTA";
/**Obtiene el valor de ocultaestadodecuenta
@return valor de ocultaestadodecuenta*/
public String getOcultaestadodecuenta(){
  return ocultaestadodecuenta;
}
/**Fija el valor de ocultaestadodecuenta
@param pOcultaestadodecuenta nuevo Valor de ocultaestadodecuenta*/
public void setOcultaestadodecuenta(String pOcultaestadodecuenta){
  ocultaestadodecuenta=pOcultaestadodecuenta;
}

public static final String GENERASOBREGIRO="GENERASOBREGIRO";
/**Obtiene el valor de generasobregiro
@return valor de generasobregiro*/
public String getGenerasobregiro(){
  return generasobregiro;
}
/**Fija el valor de generasobregiro
@param pGenerasobregiro nuevo Valor de generasobregiro*/
public void setGenerasobregiro(String pGenerasobregiro){
  generasobregiro=pGenerasobregiro;
}

public static final String USACACHE="USACACHE";
/**Obtiene el valor de usacache
@return valor de usacache*/
public String getUsacache(){
  return usacache;
}
/**Fija el valor de usacache
@param pUsacache nuevo Valor de usacache*/
public void setUsacache(String pUsacache){
  usacache=pUsacache;
}

public static final String CALCULAINTERESCOMISION="CALCULAINTERESCOMISION";
/**Obtiene el valor de calculainterescomision
@return valor de calculainterescomision*/
public String getCalculainterescomision(){
  return calculainterescomision;
}
/**Fija el valor de calculainterescomision
@param pCalculainterescomision nuevo Valor de calculainterescomision*/
public void setCalculainterescomision(String pCalculainterescomision){
  calculainterescomision=pCalculainterescomision;
}

public static final String CALCULAIMPUESTO="CALCULAIMPUESTO";
/**Obtiene el valor de calculaimpuesto
@return valor de calculaimpuesto*/
public String getCalculaimpuesto(){
  return calculaimpuesto;
}
/**Fija el valor de calculaimpuesto
@param pCalculaimpuesto nuevo Valor de calculaimpuesto*/
public void setCalculaimpuesto(String pCalculaimpuesto){
  calculaimpuesto=pCalculaimpuesto;
}

public static final String RUBRO_ASOCIADO="RUBRO_ASOCIADO";
/**Obtiene el valor de rubro_asociado
@return valor de rubro_asociado*/
public Integer getRubro_asociado(){
  return rubro_asociado;
}
/**Fija el valor de rubro_asociado
@param pRubro_asociado nuevo Valor de rubro_asociado*/
public void setRubro_asociado(Integer pRubro_asociado){
  rubro_asociado=pRubro_asociado;
}

public static final String GENERAINTERSUCURSAL="GENERAINTERSUCURSAL";
/**Obtiene el valor de generaintersucursal
@return valor de generaintersucursal*/
public String getGeneraintersucursal(){
  return generaintersucursal;
}
/**Fija el valor de generaintersucursal
@param pGeneraintersucursal nuevo Valor de generaintersucursal*/
public void setGeneraintersucursal(String pGeneraintersucursal){
  generaintersucursal=pGeneraintersucursal;
}

public static final String AJUSTEPORDECIMALES="AJUSTEPORDECIMALES";
/**Obtiene el valor de ajustepordecimales
@return valor de ajustepordecimales*/
public String getAjustepordecimales(){
  return ajustepordecimales;
}
/**Fija el valor de ajustepordecimales
@param pAjustepordecimales nuevo Valor de ajustepordecimales*/
public void setAjustepordecimales(String pAjustepordecimales){
  ajustepordecimales=pAjustepordecimales;
}

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 CGRUPOTRANSACCION="CGRUPOTRANSACCION";
/**Obtiene el valor de cgrupotransaccion
@return valor de cgrupotransaccion*/
public String getCgrupotransaccion(){
  return cgrupotransaccion;
}
/**Fija el valor de cgrupotransaccion
@param pCgrupotransaccion nuevo Valor de cgrupotransaccion*/
public void setCgrupotransaccion(String pCgrupotransaccion){
  cgrupotransaccion=pCgrupotransaccion;
}

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