package com.fp.persistence.parmas.fun; import javax.persistence.Entity; import java.sql.Timestamp; import javax.persistence.Id; 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 javax.persistence.Version; import java.lang.reflect.Field; import javax.persistence.Transient; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; import javax.persistence.GeneratedValue; import javax.persistence.Query; import java.util.List; /**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TARMTOTALPERSONA*/ @Entity(name="TarmTotalPersona") @Table(name="TARMTOTALPERSONA") public class TarmTotalPersona 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 TarmTotalPersona */ @Id @Column(name="CTOTAL" ,nullable=false, updatable=false) @GenericGenerator(name = "seq_id", strategy = "com.fp.general.keygen.SequenceKey", parameters = { @Parameter(name = "name", value = "TARMTOTALPERSONA"),//campo secuencial de la tabla @Parameter(name = "type", value = "java.lang.String"),// tipo de dato @Parameter(name = "fill", value = "0"), @Parameter(name = "length", value = "6")}) @GeneratedValue(generator = "seq_id") private String pk; @Column(name="CANTIDADMOVIMIENTO", nullable=true) /** * Almacena el valor de armas o explosivos ingresados o egresados que modifico el saldo anterior */ private BigDecimal cantidadmovimiento; @Column(name="UNIDADMEDIDAPESOCODIGO", nullable=true) /** * Codigo de tabla de catalogo 01 Codigo de tabla de tipos de medida */ private String unidadmedidapesocodigo; @Column(name="INGRESOEGRESO", nullable=true) /** * Codigo de catalogo para indicar si es un ingreso o un egreso */ private String ingresoegreso; @Column(name="INGRESOEGRESOCODIGO", nullable=true) /** * Codigo de catalogcode ESINGRESOEGRESO */ private String ingresoegresocodigo; @Column(name="TIPOARMAEXPLOSIVO", nullable=true) /** * Codigo de catalogo 01 Revolver, 02 Polvora */ private String tipoarmaexplosivo; @Column(name="TIPOARMAEXPLOSIVOCODIGO", nullable=true) /** * Codigo de tabla de catalogo 01 Codigo de tabla de tipos de de arma o explosivo */ private String tipoarmaexplosivocodigo; @Column(name="PERSONCODIGO", nullable=true) /** * Codigo de persona */ private Integer personcodigo; @Column(name="FECHA", nullable=true) /** * Fecha de registro */ private Timestamp fecha; @Column(name="UNIDADMEDIDAPESO", nullable=true) /** * Codigo de catalogo 01KG, 02 Unidad */ private String unidadmedidapeso; @Column(name="SALDOANTERIOR", nullable=true) /** * Valor numerico de la transaccion anterior */ private BigDecimal saldoanterior; @Column(name="TOTAL", nullable=false) /** * Suma total de arma ó explosivos según tipoexplosivoarma,clase, persona */ private BigDecimal total; @Column(name="CMOVIMIENTO", nullable=true) /** * null */ private String cmovimiento; @Column(name="CLASECODIGO", nullable=true) /** * Codigo de tabla de catalogo. Codigo de tabla de tipos de Clase de arma */ private String clasecodigo; @Column(name="CARMA", nullable=true) /** * Codigo de arma */ private String carma; @Column(name="CLASE", nullable=true) /** * Codigo de catalogo 01 Explosivo, 02 Arma de fuego */ private String clase; @Version @Column(name="RECORDVERSION", nullable=true) /** * Versión del Registro */ private Integer recordversion; /**Contructor por defecto*/ public TarmTotalPersona(){ } /**Contructor de TarmTotalPersona @param pPk Clave Primaria del entity @param pTotal Suma total de arma ó explosivos según tipoexplosivoarma,clase, persona */ public TarmTotalPersona(String pPk,BigDecimal pTotal){ this(); pk=pPk; total=pTotal; } /** * 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 TarmTotalPersona */ public static TarmTotalPersona find(EntityManager pEntityManager,Object pKey) throws Exception{ TarmTotalPersona obj = pEntityManager.find(TarmTotalPersona.class,pKey); return obj; } /**Entrega la Clave primaria de TarmTotalPersona @return El objeto que referencia a la Clave primaria de TarmTotalPersona */ public String getPk(){ return pk; } /**Fija un nuevo valor a la Clave primaria de TarmTotalPersona @param pPk El objeto que referencia a la nueva Clave primaria de TarmTotalPersona */ public void setPk(String pPk){ pk=pPk; } /**Obtiene el valor de cantidadmovimiento @return valor de cantidadmovimiento*/ public BigDecimal getCantidadmovimiento(){ return cantidadmovimiento; } /**Fija el valor de cantidadmovimiento @param pCantidadmovimiento nuevo Valor de cantidadmovimiento*/ public void setCantidadmovimiento(BigDecimal pCantidadmovimiento){ cantidadmovimiento=pCantidadmovimiento; } /**Obtiene el valor de unidadmedidapesocodigo @return valor de unidadmedidapesocodigo*/ public String getUnidadmedidapesocodigo(){ return unidadmedidapesocodigo; } /**Fija el valor de unidadmedidapesocodigo @param pUnidadmedidapesocodigo nuevo Valor de unidadmedidapesocodigo*/ public void setUnidadmedidapesocodigo(String pUnidadmedidapesocodigo){ unidadmedidapesocodigo=pUnidadmedidapesocodigo; } /**Obtiene el valor de ingresoegreso @return valor de ingresoegreso*/ public String getIngresoegreso(){ return ingresoegreso; } /**Fija el valor de ingresoegreso @param pIngresoegreso nuevo Valor de ingresoegreso*/ public void setIngresoegreso(String pIngresoegreso){ ingresoegreso=pIngresoegreso; } /**Obtiene el valor de ingresoegresocodigo @return valor de ingresoegresocodigo*/ public String getIngresoegresocodigo(){ return ingresoegresocodigo; } /**Fija el valor de ingresoegresocodigo @param pIngresoegresocodigo nuevo Valor de ingresoegresocodigo*/ public void setIngresoegresocodigo(String pIngresoegresocodigo){ ingresoegresocodigo=pIngresoegresocodigo; } /**Obtiene el valor de tipoarmaexplosivo @return valor de tipoarmaexplosivo*/ public String getTipoarmaexplosivo(){ return tipoarmaexplosivo; } /**Fija el valor de tipoarmaexplosivo @param pTipoarmaexplosivo nuevo Valor de tipoarmaexplosivo*/ public void setTipoarmaexplosivo(String pTipoarmaexplosivo){ tipoarmaexplosivo=pTipoarmaexplosivo; } /**Obtiene el valor de tipoarmaexplosivocodigo @return valor de tipoarmaexplosivocodigo*/ public String getTipoarmaexplosivocodigo(){ return tipoarmaexplosivocodigo; } /**Fija el valor de tipoarmaexplosivocodigo @param pTipoarmaexplosivocodigo nuevo Valor de tipoarmaexplosivocodigo*/ public void setTipoarmaexplosivocodigo(String pTipoarmaexplosivocodigo){ tipoarmaexplosivocodigo=pTipoarmaexplosivocodigo; } /**Obtiene el valor de personcodigo @return valor de personcodigo*/ public Integer getPersoncodigo(){ return personcodigo; } /**Fija el valor de personcodigo @param pPersoncodigo nuevo Valor de personcodigo*/ public void setPersoncodigo(Integer pPersoncodigo){ personcodigo=pPersoncodigo; } /**Obtiene el valor de fecha @return valor de fecha*/ public Timestamp getFecha(){ return fecha; } /**Fija el valor de fecha @param pFecha nuevo Valor de fecha*/ public void setFecha(Timestamp pFecha){ fecha=pFecha; } /**Obtiene el valor de unidadmedidapeso @return valor de unidadmedidapeso*/ public String getUnidadmedidapeso(){ return unidadmedidapeso; } /**Fija el valor de unidadmedidapeso @param pUnidadmedidapeso nuevo Valor de unidadmedidapeso*/ public void setUnidadmedidapeso(String pUnidadmedidapeso){ unidadmedidapeso=pUnidadmedidapeso; } /**Obtiene el valor de saldoanterior @return valor de saldoanterior*/ public BigDecimal getSaldoanterior(){ return saldoanterior; } /**Fija el valor de saldoanterior @param pSaldoanterior nuevo Valor de saldoanterior*/ public void setSaldoanterior(BigDecimal pSaldoanterior){ saldoanterior=pSaldoanterior; } /**Obtiene el valor de total @return valor de total*/ public BigDecimal getTotal(){ return total; } /**Fija el valor de total @param pTotal nuevo Valor de total*/ public void setTotal(BigDecimal pTotal){ total=pTotal; } /**Obtiene el valor de cmovimiento @return valor de cmovimiento*/ public String getCmovimiento(){ return cmovimiento; } /**Fija el valor de cmovimiento @param pCmovimiento nuevo Valor de cmovimiento*/ public void setCmovimiento(String pCmovimiento){ cmovimiento=pCmovimiento; } /**Obtiene el valor de clasecodigo @return valor de clasecodigo*/ public String getClasecodigo(){ return clasecodigo; } /**Fija el valor de clasecodigo @param pClasecodigo nuevo Valor de clasecodigo*/ public void setClasecodigo(String pClasecodigo){ clasecodigo=pClasecodigo; } /**Obtiene el valor de carma @return valor de carma*/ public String getCarma(){ return carma; } /**Fija el valor de carma @param pCarma nuevo Valor de carma*/ public void setCarma(String pCarma){ carma=pCarma; } /**Obtiene el valor de clase @return valor de clase*/ public String getClase(){ return clase; } /**Fija el valor de clase @param pClase nuevo Valor de clase*/ public void setClase(String pClase){ clase=pClase; } /**Obtiene el valor de recordversion @return valor de recordversion*/ public Integer getRecordversion(){ return recordversion; } /**Fija el valor de recordversion @param pRecordversion nuevo Valor de recordversion*/ public void setRecordversion(Integer pRecordversion){ recordversion=pRecordversion; } public boolean equals(Object rhs){ if (rhs == null)return false; if (! (rhs instanceof TarmTotalPersona))return false; TarmTotalPersona that = (TarmTotalPersona) rhs; if (this.getPk() == null || that.getPk() == null) return false; return (this.getPk().equals(that.getPk())); } /**Implementacion del metodo hashCode de la la entidad TarmTotalPersona @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 TarmTotalPersona */ public Object createInstance(){ TarmTotalPersona instance=new TarmTotalPersona(); return instance; } /**Clona la entidad TarmTotalPersona @see com.fp.dto.hb.HibernateBean#cloneMe() */ public Object cloneMe() throws CloneNotSupportedException{ TarmTotalPersona p=(TarmTotalPersona)this.clone(); return p; } /** * Sentencia que devuelve un registro vigente de TarmTotalPerson */ private static final String JPQL_PERSONA = "from TarmTotalPersona ttp" + " where ttp.personcodigo = :personcode"; /** * Metodo que entrega datos de un total en TarmTotalPerson. * * @param pEntityManager Session de la base de datos. * @param personcode Codigo de la persona a quien pertenece la Direccion. * @param addressnumber Numero de la direccion. * @return tcustPersonAddress * @throws Exception */ public static List findByPersona(EntityManager pEntityManager, Integer personcode) throws Exception { Query qry = pEntityManager.createQuery(TarmTotalPersona.JPQL_PERSONA); qry.setParameter("personcode", personcode); return qry.getResultList(); } /** * Sentencia que devuelve un registro vigente de TcustPersonAddress */ private static final String JPQL_TIPOCLASEPER = "from TarmTotalPersona ttp" + " where ttp.personcodigo = :personcode and ttp.clase = :clase and ttp.tipoarmaexplosivo = :tipoarmaexplosivo" + " and ttp.fecha = (select max(ttpi.fecha) from TarmTotalPersona ttpi where ttpi.personcodigo = :personcode and ttpi.clase = :clase and ttpi.tipoarmaexplosivo = :tipoarmaexplosivo)"; /** * Metodo que entrega datos de una Direccion definida en TcustPersonAddress. * * @param pEntityManager Session de la base de datos. * @param personcode Codigo de la persona a quien pertenece la Direccion. * @param addressnumber Numero de la direccion. * @return tcustPersonAddress * @throws Exception */ public static List findByClase(EntityManager pEntityManager, Integer personcode, String clase, String tipoarmaexplosivo) throws Exception { Query qry = pEntityManager.createQuery(TarmTotalPersona.JPQL_TIPOCLASEPER); qry.setParameter("personcode", personcode); qry.setParameter("clase", clase); qry.setParameter("tipoarmaexplosivo", tipoarmaexplosivo); return qry.getResultList(); } }