Item.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.licensis.notaire.negocio;
import com.licensis.notaire.dto.DtoItem;
import java.io.Serializable;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.xml.bind.annotation.XmlRootElement;
/**
* Clase que presenta los items que pueden ser asociados a los presupuestos.
*
* @author juanca
*/
@Entity
@Table(name = "items")
@XmlRootElement
@NamedQueries(
{
@NamedQuery(name = "Item.findAll", query = "SELECT i FROM Item i"),
@NamedQuery(name = "Item.findByIdItem", query = "SELECT i FROM Item i WHERE i.idItem = :idItem"),
@NamedQuery(name = "Item.findByValor", query = "SELECT i FROM Item i WHERE i.valor = :valor"),
@NamedQuery(name = "Item.findByPorcentaje", query = "SELECT i FROM Item i WHERE i.porcentaje = :porcentaje"),
@NamedQuery(name = "Item.findByPresupuesto", query = "SELECT i FROM Item i WHERE i.fkIdPresupuesto.idPresupuesto = :idPresupuesto")
})
public class Item implements Serializable
{
@Basic(optional = false)
@Column(name = "concepto_fijo")
private boolean conceptoFijo;
@Basic(optional = false)
@Column(name = "version")
@Version
private int version = 0;
@Basic(optional = false)
@Column(name = "valor")
private float valor;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_item")
private Integer idItem;
@Basic(optional = false)
@Column(name = "nombre")
private String nombre;
@Column(name = "porcentaje")
private Integer porcentaje;
@Column(name = "observaciones")
private String observaciones;
@JoinColumn(name = "fk_id_presupuesto", referencedColumnName = "id_presupuesto")
@ManyToOne(fetch = FetchType.EAGER)
@JsonIgnore
private Presupuesto fkIdPresupuesto;
/**
* Constructor por defaul de Item. Inicializa el ID presupuesto segun el campo
* {@link ConstantesNegocio}.ID_OBJETO_NO_VALIDO.
*/
public Item()
{
this.idItem = ConstantesNegocio.ID_OBJETO_NO_VALIDO;
}
public Item(Integer idItem)
{
this.idItem = idItem;
}
public Item(Integer idItem, String nombre, Float valor)
{
this.idItem = idItem;
this.nombre = nombre;
this.valor = valor;
}
public Integer getIdItem()
{
return idItem;
}
public void setIdItem(Integer idItem)
{
this.idItem = idItem;
}
public String getNombre()
{
return nombre;
}
public void setNombre(String nombre)
{
this.nombre = nombre;
}
public Integer getPorcentaje()
{
return porcentaje;
}
public void setPorcentaje(Integer porcentaje)
{
this.porcentaje = porcentaje;
}
public String getObservaciones()
{
return observaciones;
}
public void setObservaciones(String observaciones)
{
this.observaciones = observaciones;
}
public Presupuesto getFkIdPresupuesto()
{
return fkIdPresupuesto;
}
public void setFkIdPresupuesto(Presupuesto fkIdPresupuesto)
{
this.fkIdPresupuesto = fkIdPresupuesto;
}
public void setAtributos(DtoItem miDto)
{
idItem = miDto.getIdItem();
nombre = miDto.getNombre();
valor = miDto.getValor();
if (miDto.getPorcentaje() != null)
{
porcentaje = miDto.getPorcentaje();
}
if (miDto.getObservaciones() != null)
{
observaciones = miDto.getObservaciones();
}
conceptoFijo = miDto.isFijo();
version = miDto.getVersion();
}
public DtoItem getDto()
{
DtoItem miDtoItem = new DtoItem();
miDtoItem.setIdItem(idItem);
miDtoItem.setNombre(nombre);
miDtoItem.setObservaciones(observaciones);
miDtoItem.setPorcentaje(porcentaje);
miDtoItem.setValor(valor);
miDtoItem.setVersion(version);
miDtoItem.setConceptoFijo(conceptoFijo);
return miDtoItem;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (idItem != null ? idItem.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object)
{
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Item))
{
return false;
}
Item other = (Item) object;
if ((this.idItem == null && other.idItem != null) || (this.idItem != null && !this.idItem.equals(other.idItem)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "negocio.Item[ idItem=" + idItem + " ]"
+ "[ nombre=" + nombre + " ]";
}
public int getVersion()
{
return version;
}
public void setVersion(int version)
{
this.version = version;
}
public float getValor()
{
return valor;
}
public void setValor(float valor)
{
this.valor = valor;
}
public boolean isFijo()
{
return conceptoFijo;
}
public void setConceptoFijo(boolean conceptoFijo)
{
this.conceptoFijo = conceptoFijo;
}
}