package com.fp.persistence.parmas.soli;

import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Column;
import javax.persistence.EntityManager;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Table;

import com.fp.dto.hb.HibernateBean;
import com.fp.dto.hb.Log;

import java.lang.reflect.Field;

import javax.persistence.Transient;

import java.sql.Date;

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TARMSOLICITUDTRAMITE*/
@Entity(name="TarmSolicitudTramite")
@Table(name="TARMSOLICITUDTRAMITE")
public class TarmSolicitudTramite extends com.fp.dto.AbstractDataTransport implements Serializable,HibernateBean,Cloneable, Log {
/**
* HashCode asociado con la Instancia
*/
@Transient
private int hashValue = 0;
/**
* Version de la Clase
*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad TarmSolicitudTramite
*/
@EmbeddedId
private TarmSolicitudTramiteKey pk;
@Column(name="NUMEROTRAMITE", nullable=true)

/**
* null
*/
private String numerotramite;

@Column(name="VALOR", nullable=true)

/**
* null
*/
private BigDecimal valor;

@Column(name="CANTIDAD", nullable=true)

/**
* null
*/
private Integer cantidad;

@Column(name="NUMEROCOMPROBANTE", nullable=true)

/**
* null
*/
private String numerocomprobante;

@Column(name="XPATHCOMPROBANTE", nullable=true)

/**
* null
*/
private String xpathcomprobante;

@Column(name="XPATHRESOLUCION", nullable=true)

/**
* null
*/
private String xpathresolucion;


@Column(name="VALORVERIFICACION", nullable=true)

/**
* null
*/
private BigDecimal valorverificacion;

@Column(name="FENTREGAARMAS", nullable=true)

/**
* null
*/
private Date fentregaarmas;

@Column(name="VALORAPAGAR", nullable=true)

/**
* null
*/
private BigDecimal valorapagar;

@Column(name="ESTADOTRAMITE", nullable=true)

/**
* null
*/
private String estadotramite;

@Column(name="ESTADOTRAMITECODIGO", nullable=true)

/**
* null
*/
private String estadotramitecodigo;

@Column(name="FECHACOMPROBANTE", nullable=true)

/**
* null
*/
private Date fechacomprobante;

@Column(name="OBSERVACIONDEPOSITO", nullable=true)

/**
* null
*/
private String observaciondeposito;

@Column(name="VALORVERIFICADO", nullable=true)

/**
* null
*/
private BigDecimal valorverificado;


@Column(name="OBSERVACIONNOVEDAD", nullable=true)

/**
* null
*/
private String observacionnovedad;

@Column(name="VALORTRAMITEARMAS", nullable=true)

/**
* Es el valor del tramite en caso de ser de tipo costo total o el valor del arma por el numero de armas en caso de ser de tipo costo parcial
*/
private BigDecimal valortramitearmas;

@Column(name="VALORMULTA", nullable=true)

/**
* Es el valor de las multas no canceladas previas, que seran cobradas en este tramite
*/
private BigDecimal valormulta;

@Column(name="VALORCUSTODIOS", nullable=true)

/**
* Es el valor del numero de custodios por el costo de cada custodio en ese tramite
*/
private BigDecimal valorcustodios;

@Column(name="INICIOFLUJO", nullable=true)
/**
* null
*/
private String inicioFlujo;

@Column(name="INCASHREPORT", nullable=true)
/**
* null
*/
private String incashreport;

@Column(name="XPATHCOMPROBANTEORIGINAL", nullable=true)

/**
* null
*/
private String xpathcomprobanteorignal;

@Column(name="OBSERVACION", nullable=true)

/**
* null
*/
private String observacion;

@Column(name="USUARIOCAMBIO", nullable=true)

/**
* null
*/
private String usuariocambio;

/**Contructor por defecto*/
public TarmSolicitudTramite(){
}
/**Contructor de TarmSolicitudTramite
@param pPk Clave Primaria del entity
*/
public TarmSolicitudTramite(TarmSolicitudTramiteKey pPk){
 this();
 pk=pPk;
}
/**
* Metodo que entrega datos de la tabla dada la clave primaria.
* @param pEntityManager referencia de la session a obtener datos del bean.
* @param pKey Caleve primaria del bean.
* @return TarmSolicitudTramite
*/
public static TarmSolicitudTramite find(EntityManager pEntityManager,TarmSolicitudTramiteKey pKey) throws Exception{
    TarmSolicitudTramite obj = pEntityManager.find(TarmSolicitudTramite.class,pKey);
    return obj;
}
/**Entrega la Clave primaria de TarmSolicitudTramite
@return El objeto que referencia a la Clave primaria de TarmSolicitudTramite
*/
public TarmSolicitudTramiteKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de TarmSolicitudTramite
@param pPk El objeto que referencia a la nueva Clave primaria de TarmSolicitudTramite
*/
public void setPk(TarmSolicitudTramiteKey pPk){
  pk=pPk;
}
/**Obtiene el valor de numerotramite
@return valor de numerotramite*/
public String getNumerotramite(){
  return numerotramite;
}
/**Fija el valor de numerotramite
@param pNumerotramite nuevo Valor de numerotramite*/
public void setNumerotramite(String pNumerotramite){
  numerotramite=pNumerotramite;
}

/**Obtiene el valor de valor
@return valor de valor*/
public BigDecimal getValor(){
  return valor;
}
/**Fija el valor de valor
@param pValor nuevo Valor de valor*/
public void setValor(BigDecimal pValor){
  valor=pValor;
}

/**Obtiene el valor de cantidad
@return valor de cantidad*/
public Integer getCantidad(){
  return cantidad;
}
/**Fija el valor de cantidad
@param pCantidad nuevo Valor de cantidad*/
public void setCantidad(Integer pCantidad){
  cantidad=pCantidad;
}

/**Obtiene el valor de numerocomprobante
@return valor de numerocomprobante*/
public String getNumerocomprobante(){
  return numerocomprobante;
}
/**Fija el valor de numerocomprobante
@param pNumerocomprobante nuevo Valor de numerocomprobante*/
public void setNumerocomprobante(String pNumerocomprobante){
  numerocomprobante=pNumerocomprobante;
}

/**Obtiene el valor de xpathcomprobante
@return valor de xpathcomprobante*/
public String getXpathcomprobante(){
  return xpathcomprobante;
}
/**Fija el valor de xpathcomprobante
@param pXpathcomprobante nuevo Valor de xpathcomprobante*/
public void setXpathcomprobante(String pXpathcomprobante){
  xpathcomprobante=pXpathcomprobante;
}

/**Obtiene el valor de valorverificacion
@return valor de valorverificacion*/
public BigDecimal getValorverificacion(){
  return valorverificacion;
}
/**Fija el valor de valorverificacion
@param pValorverificacion nuevo Valor de valorverificacion*/
public void setValorverificacion(BigDecimal pValorverificacion){
  valorverificacion=pValorverificacion;
}

/**Obtiene el valor de fentregaarmas
@return valor de fentregaarmas*/
public Date getFentregaarmas(){
  return fentregaarmas;
}
/**Fija el valor de fentregaarmas
@param pFentregaarmas nuevo Valor de fentregaarmas*/
public void setFentregaarmas(Date pFentregaarmas){
  fentregaarmas=pFentregaarmas;
}

/**Obtiene el valor de valorapagar
@return valor de valorapagar*/
public BigDecimal getValorapagar(){
  return valorapagar;
}
/**Fija el valor de valorapagar
@param pValorapagar nuevo Valor de valorapagar*/
public void setValorapagar(BigDecimal pValorapagar){
  valorapagar=pValorapagar;
}

/**Obtiene el valor de estadotramite
@return valor de estadotramite*/
public String getEstadotramite(){
  return estadotramite;
}
/**Fija el valor de estadotramite
@param pEstadotramite nuevo Valor de estadotramite*/
public void setEstadotramite(String pEstadotramite){
  estadotramite=pEstadotramite;
}

/**Obtiene el valor de estadotramitecodigo
@return valor de estadotramitecodigo*/
public String getEstadotramitecodigo(){
  return estadotramitecodigo;
}
/**Fija el valor de estadotramitecodigo
@param pEstadotramitecodigo nuevo Valor de estadotramitecodigo*/
public void setEstadotramitecodigo(String pEstadotramitecodigo){
  estadotramitecodigo=pEstadotramitecodigo;
}

/**Obtiene el valor de fechacomprobante
@return valor de fechacomprobante*/
public Date getFechacomprobante(){
  return fechacomprobante;
}
/**Fija el valor de fechacomprobante
@param pFechacomprobante nuevo Valor de fechacomprobante*/
public void setFechacomprobante(Date pFechacomprobante){
  fechacomprobante=pFechacomprobante;
}

/**Obtiene el valor de observacion al verificar deposito
@return valor de observaciondeposito*/
public String getObservaciondeposito(){
  return observaciondeposito;
}
/**Fija el valor de observacion al verificar deposito
@param pObservaciondeposito nuevo Valor de observaciondeposito*/
public void setObservaciondeposito(String pObservaciondeposito){
  observaciondeposito=pObservaciondeposito;
}

/**Obtiene el valor de valorverificado
@return valor de valorverificado*/
public BigDecimal getValorverificado(){
  return valorverificado;
}
/**Fija el valor de valorverificado
@param pValorverificado nuevo Valor de valorverificado*/
public void setValorverificado(BigDecimal pValorverificado){
  valorverificado=pValorverificado;
}

/**Obtiene el valor de observacionnovedad
@return valor de observacionnovedad*/
public String getObservacionnovedad() {
	return observacionnovedad;
}
/**Fija el valor de observacionnovedad
@param pValorverificado nuevo Valor de observacionnovedad*/
public void setObservacionnovedad(String observacionnovedad) {
	this.observacionnovedad = observacionnovedad;
}


/**Obtiene el valor de valortramitearmas
@return valor de valortramitearmas*/
public BigDecimal getValortramitearmas(){
  return valortramitearmas;
}
/**Fija el valor de valortramitearmas
@param pValortramitearmas nuevo Valor de valortramitearmas*/
public void setValortramitearmas(BigDecimal pValortramitearmas){
  valortramitearmas=pValortramitearmas;
}
/**Obtiene el valor de valorcustodios
@return valor de valorcustodios*/
public BigDecimal getValorcustodios(){
  return valorcustodios;
}
/**Fija el valor de valorcustodios
@param pValorcustodios nuevo Valor de valorcustodios*/
public void setValorcustodios(BigDecimal pValorcustodios){
  valorcustodios=pValorcustodios;
}

/**Obtiene el valor de valormulta
@return valor de valormulta*/
public BigDecimal getValormulta(){
  return valormulta;
}
/**Fija el valor de valormulta
@param pValormulta nuevo Valor de valormulta*/
public void setValormulta(BigDecimal pValormulta){
  valormulta=pValormulta;
}


public boolean equals(Object rhs){
    if (rhs == null)return false;
    if (! (rhs instanceof TarmSolicitudTramite))return false;
    TarmSolicitudTramite that = (TarmSolicitudTramite) rhs;
    if (this.getPk() == null || that.getPk() == null)
        return false;
    return (this.getPk().equals(that.getPk()));
}
/**Implementacion del metodo hashCode de la la entidad TarmSolicitudTramite
@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;
}
/**Implementacion toString
*/
public String toString() {
	Field[]fs=this.getClass().getDeclaredFields();
	String data="";
	for(Field f:fs){
	 try{	
	 String name=f.getName();
   if(f.getType().getName().compareTo("java.util.Set")==0)continue;
	 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;
	}
/**Implementacion de la creacion de un bean en blanco TarmSolicitudTramite
*/
public Object createInstance(){
 TarmSolicitudTramite instance=new TarmSolicitudTramite();	
 instance.setPk(new TarmSolicitudTramiteKey());
 return instance;
}
/**Clona la entidad TarmSolicitudTramite
@see com.fp.dto.hb.HibernateBean#cloneMe()
*/
public Object cloneMe() throws CloneNotSupportedException{
  TarmSolicitudTramite p=(TarmSolicitudTramite)this.clone();
  p.setPk((TarmSolicitudTramiteKey)this.pk.cloneMe());
  return p;
}
public String getInicioFlujo() {
	return inicioFlujo;
}
public void setInicioFlujo(String inicioFlujo) {
	this.inicioFlujo = inicioFlujo;
}
public String getIncashreport() {
	return incashreport;
}
public void setIncashreport(String incashreport) {
	this.incashreport = incashreport;
}
public String getXpathresolucion() {
	return xpathresolucion;
}
public void setXpathresolucion(String xpathresolucion) {
	this.xpathresolucion = xpathresolucion;
}
public String getXpathcomprobanteorignal() {
	return xpathcomprobanteorignal;
}
public void setXpathcomprobanteorignal(String xpathcomprobanteorignal) {
	this.xpathcomprobanteorignal = xpathcomprobanteorignal;
}
public String getObservacion() {
	return observacion;
}
public void setObservacion(String observacion) {
	this.observacion = observacion;
}
public String getUsuariocambio() {
	return usuariocambio;
}
public void setUsuariocambio(String usuariocambio) {
	this.usuariocambio = usuariocambio;
}



}
