/* * Copyright (C) 2012 AXIA Studio (http://www.axiastudio.com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.axiastudio.suite.protocollo.entities; import com.axiastudio.suite.anagrafiche.entities.RelazioneSoggetto; import com.axiastudio.suite.anagrafiche.entities.Soggetto; import com.axiastudio.suite.generale.ITimeStamped; import com.axiastudio.suite.generale.TimeStampedListener; import javax.persistence.*; import java.io.Serializable; import java.util.Date; /** * * @author Tiziano Lattisi <tiziano at axiastudio.it> */ @Entity @EntityListeners({TimeStampedListener.class}) @Table(schema="PROTOCOLLO") @SequenceGenerator(name="gensoggettoprotocollo", sequenceName="protocollo.soggettoprotocollo_id_seq", initialValue=1, allocationSize=1) public class SoggettoProtocollo implements Serializable, ITimeStamped { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="gensoggettoprotocollo") private Long id; @JoinColumn(name = "soggetto", referencedColumnName = "id") @ManyToOne private Soggetto soggetto; @JoinColumn(name = "protocollo", referencedColumnName = "iddocumento") @ManyToOne private Protocollo protocollo; @JoinColumn(name = "titolo", referencedColumnName = "id") @ManyToOne private Titolo titolo; @Column(name="primoinserimento") private Boolean primoinserimento=false; @Column(name="annullato") private Boolean annullato=false; @Column(name="conoscenza") private Boolean conoscenza=false; @Column(name="notifica") private Boolean notifica=false; @Column(name="corrispondenza") private Boolean corrispondenza=false; @Column(name="datainizio", columnDefinition="DATE DEFAULT CURRENT_DATE") @Temporal(TemporalType.DATE) private Date datainizio; @Column(name="datafine") @Temporal(TemporalType.DATE) private Date datafine; @Column(name="principale") private Boolean principale=false; @JoinColumn(name = "soggettoreferente", referencedColumnName = "id") @ManyToOne private Soggetto soggettoReferente; /* timestamped */ @Column(name="rec_creato", insertable=false, updatable=false, columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP") @Temporal(javax.persistence.TemporalType.TIMESTAMP) private Date recordcreato; @Column(name="rec_creato_da") private String recordcreatoda; @Column(name="rec_modificato") @Temporal(javax.persistence.TemporalType.TIMESTAMP) private Date recordmodificato; @Column(name="rec_modificato_da") private String recordmodificatoda; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Protocollo getProtocollo() { return protocollo; } public void setProtocollo(Protocollo protocollo) { this.protocollo = protocollo; } public Soggetto getSoggetto() { return soggetto; } public void setSoggetto(Soggetto soggetto) { this.soggetto = soggetto; } /* * SoggettoFormattato mette in bold i soggetti di primo inserimento */ public String getSoggettoformattato() { String pre = ""; String post = ""; if( this.getAnnullato() ){ pre = "<del>"; post = "</del>"; } else if( this.getPrimoinserimento() ){ pre = "'''"; post = "'''"; } return pre+soggetto.toString()+post; } public void setSoggettoformattato( String s ) { } public Titolo getTitolo() { return titolo; } public void setTitolo(Titolo titolo) { this.titolo = titolo; } public Boolean getPrimoinserimento() { return primoinserimento; } public void setPrimoinserimento(Boolean primoinserimento) { this.primoinserimento = primoinserimento; } public Boolean getAnnullato() { return annullato; } public void setAnnullato(Boolean annullato) { this.annullato = annullato; } public Boolean getConoscenza() { return conoscenza; } public void setConoscenza(Boolean conoscenza) { this.conoscenza = conoscenza; } public Boolean getNotifica() { return notifica; } public void setNotifica(Boolean notifica) { this.notifica = notifica; } public Boolean getCorrispondenza() { return corrispondenza; } public void setCorrispondenza(Boolean corrispondenza) { this.corrispondenza = corrispondenza; } public Date getDatainizio() { return datainizio; } public void setDatainizio(Date datainizio) { this.datainizio = datainizio; } public Date getDatafine() { return datafine; } public void setDatafine(Date datafine) { this.datafine = datafine; } public Boolean getPrincipale() { return principale; } public void setPrincipale(Boolean principale) { this.principale = principale; } public Soggetto getSoggettoReferente() { return soggettoReferente; } public void setSoggettoReferente(Soggetto soggettoReferente) { this.soggettoReferente = soggettoReferente; } public RelazioneSoggetto getReferenteRelazione() { return null; } public void setReferenteRelazione(RelazioneSoggetto referenteRelazione) { if (referenteRelazione == null ) { this.soggettoReferente = null; } else { this.soggettoReferente = referenteRelazione.getRelazionato(); } } public String getPredicato(){ if ( this.getSoggettoReferente()==null ) { return "-"; } return this.getSoggettoReferente().toString(); } public void setPredicato(String predicato){ // non deve fare nulla } @Override public Date getRecordcreato() { return recordcreato; } public void setRecordcreato(Date recordcreato) { this.recordcreato = recordcreato; } @Override public Date getRecordmodificato() { return recordmodificato; } public void setRecordmodificato(Date recordmodificato) { this.recordmodificato = recordmodificato; } @Override public String getRecordcreatoda() { return recordcreatoda; } public void setRecordcreatoda(String recordcreatoda) { this.recordcreatoda = recordcreatoda; } @Override public String getRecordmodificatoda() { return recordmodificatoda; } public void setRecordmodificatoda(String recordmodificatoda) { this.recordmodificatoda = recordmodificatoda; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.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 SoggettoProtocollo)) { return false; } SoggettoProtocollo other = (SoggettoProtocollo) object; if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; } @Override public String toString() { return this.soggetto.toString(); //return "com.axiastudio.suite.protocollo.entities.SoggettoProtocollo[ id=" + id + " ]"; } }