/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.pepe.jpa.entities;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Junior Cabal
*/
@Entity
@Table(name = "ficha")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Ficha.findAll", query = "SELECT f FROM Ficha f"),
@NamedQuery(name = "Ficha.findByIdFicha", query = "SELECT f FROM Ficha f WHERE f.idFicha = :idFicha"),
@NamedQuery(name = "Ficha.findByCodigoFicha", query = "SELECT f FROM Ficha f WHERE f.codigoFicha = :codigoFicha"),
@NamedQuery(name = "Ficha.findByCodigoFicha", query = "SELECT f FROM Ficha f WHERE f.codigoFicha = :codigoFicha"),
@NamedQuery(name = "Ficha.consultaFP", query = "SELECT f FROM Ficha f WHERE f.programa.programaPK.codigo = :codigo AND f.programa.programaPK.version = :version AND f.idProyecto.idProyecto = NULL"),
@NamedQuery(name = "Ficha.findByFechaInicio", query = "SELECT f FROM Ficha f WHERE f.fechaInicio = :fechaInicio"),
@NamedQuery(name = "Ficha.findByEstado", query = "SELECT f FROM Ficha f WHERE f.estado = :estado")})
public class Ficha implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_ficha")
private Integer idFicha;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 7)
@Column(name = "codigo_ficha")
private String codigoFicha;
@Basic(optional = false)
@NotNull
@Column(name = "fecha_inicio")
@Temporal(TemporalType.DATE)
private Date fechaInicio;
@Basic(optional = false)
@NotNull
@Column(name = "estado")
private boolean estado;
@JoinColumn(name = "id_centro_formacion", referencedColumnName = "id_centro_formacion")
@ManyToOne(optional = false)
private CentroFormacion idCentroFormacion;
@JoinColumn(name = "id_jornada", referencedColumnName = "id_jornada")
@ManyToOne(optional = false)
private Jornada idJornada;
@JoinColumns({
@JoinColumn(name = "programa_codigo", referencedColumnName = "codigo"),
@JoinColumn(name = "programa_version", referencedColumnName = "version")})
@ManyToOne(optional = false)
private Programa programa;
@JoinColumn(name = "id_tipo_formacion", referencedColumnName = "id_tipo_formacion")
@ManyToOne(optional = false)
private TipoFormacion idTipoFormacion;
@JoinColumn(name = "id_tipo_oferta", referencedColumnName = "id_tipo_oferta")
@ManyToOne(optional = false)
private TipoOferta idTipoOferta;
@JoinColumn(name = "id_proyecto", referencedColumnName = "id_proyecto")
@ManyToOne
private Proyecto idProyecto;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idFicha")
private List<Acompanamiento> acompanamientoList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ficha")
private List<UsuarioHasFicha> usuarioHasFichaList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idFicha")
private List<Seguimiento> seguimientoList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idFicha")
private List<Programador> programadorList;
public Ficha() {
}
public Ficha(Integer idFicha) {
this.idFicha = idFicha;
}
public Ficha(Integer idFicha, String codigoFicha, Date fechaInicio, boolean estado) {
this.idFicha = idFicha;
this.codigoFicha = codigoFicha;
this.fechaInicio = fechaInicio;
this.estado = estado;
}
public Integer getIdFicha() {
return idFicha;
}
public List<Programador> getProgramadorList() {
return programadorList;
}
public void setProgramadorList(List<Programador> programadorList) {
this.programadorList = programadorList;
}
public void setIdFicha(Integer idFicha) {
this.idFicha = idFicha;
}
public String getCodigoFicha() {
return codigoFicha;
}
public void setCodigoFicha(String codigoFicha) {
this.codigoFicha = codigoFicha;
}
public Date getFechaInicio() {
return fechaInicio;
}
public void setFechaInicio(Date fechaInicio) {
this.fechaInicio = fechaInicio;
}
public boolean getEstado() {
return estado;
}
public void setEstado(boolean estado) {
this.estado = estado;
}
public CentroFormacion getIdCentroFormacion() {
return idCentroFormacion;
}
public void setIdCentroFormacion(CentroFormacion idCentroFormacion) {
this.idCentroFormacion = idCentroFormacion;
}
public Jornada getIdJornada() {
return idJornada;
}
public void setIdJornada(Jornada idJornada) {
this.idJornada = idJornada;
}
public Programa getPrograma() {
return programa;
}
public void setPrograma(Programa programa) {
this.programa = programa;
}
public TipoFormacion getIdTipoFormacion() {
return idTipoFormacion;
}
public void setIdTipoFormacion(TipoFormacion idTipoFormacion) {
this.idTipoFormacion = idTipoFormacion;
}
public TipoOferta getIdTipoOferta() {
return idTipoOferta;
}
public void setIdTipoOferta(TipoOferta idTipoOferta) {
this.idTipoOferta = idTipoOferta;
}
public Proyecto getIdProyecto() {
return idProyecto;
}
public void setIdProyecto(Proyecto idProyecto) {
this.idProyecto = idProyecto;
}
@XmlTransient
public List<Acompanamiento> getAcompanamientoList() {
return acompanamientoList;
}
public void setAcompanamientoList(List<Acompanamiento> acompanamientoList) {
this.acompanamientoList = acompanamientoList;
}
@XmlTransient
public List<UsuarioHasFicha> getUsuarioHasFichaList() {
return usuarioHasFichaList;
}
public void setUsuarioHasFichaList(List<UsuarioHasFicha> usuarioHasFichaList) {
this.usuarioHasFichaList = usuarioHasFichaList;
}
@XmlTransient
public List<Seguimiento> getSeguimientoList() {
return seguimientoList;
}
public void setSeguimientoList(List<Seguimiento> seguimientoList) {
this.seguimientoList = seguimientoList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idFicha != null ? idFicha.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 Ficha)) {
return false;
}
Ficha other = (Ficha) object;
if ((this.idFicha == null && other.idFicha != null) || (this.idFicha != null && !this.idFicha.equals(other.idFicha))) {
return false;
}
return true;
}
@Override
public String toString() {
return getCodigoFicha();
}
}