/*
* Copyright (C) 2013 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 Afffero 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.SuiteUtil;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
*
* @author AXIA Studio (http://www.axiastudio.com)
*/
@Entity
@Table(schema="PROTOCOLLO")
@SequenceGenerator(name="genannullamentoprotocollo", sequenceName="protocollo.annullamentoprotocollo_id_seq", initialValue=1, allocationSize=1)
public class AnnullamentoProtocollo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="genannullamentoprotocollo")
private Long id;
@JoinColumn(name = "protocollo", referencedColumnName = "iddocumento")
@ManyToOne
private Protocollo protocollo;
@Column(name="datarichiesta")
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date datarichiesta;
@Column(name="esecutorerichiesta", length=40)
private String esecutorerichiesta;
@JoinColumn(name = "motivazioneannullamento", referencedColumnName = "id")
@ManyToOne
private MotivazioneAnnullamento motivazioneannullamento;
@Column(name="dataautorizzazione")
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date dataautorizzazione;
@Column(name="esecutoreautorizzazione", length=40)
private String esecutoreautorizzazione;
@Column(name="respinto")
private Boolean respinto=false;
@Column(name="autorizzato")
private Boolean autorizzato=false;
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 Date getDatarichiesta() {
return datarichiesta;
}
public void setDatarichiesta(Date datarichiesta) {
this.datarichiesta = datarichiesta;
}
public String getEsecutorerichiesta() {
return esecutorerichiesta;
}
public void setEsecutorerichiesta(String esecutorerichiesta) {
this.esecutorerichiesta = esecutorerichiesta;
}
public MotivazioneAnnullamento getMotivazioneannullamento() {
return motivazioneannullamento;
}
public void setMotivazioneannullamento(MotivazioneAnnullamento motivazioneannullamento) {
this.motivazioneannullamento = motivazioneannullamento;
}
public Date getDataautorizzazione() {
return dataautorizzazione;
}
public void setDataautorizzazione(Date dataautorizzazione) {
this.dataautorizzazione = dataautorizzazione;
}
public String getEsecutoreautorizzazione() {
return esecutoreautorizzazione;
}
public void setEsecutoreautorizzazione(String esecutoreautorizzazione) {
this.esecutoreautorizzazione = esecutoreautorizzazione;
}
public Boolean getRespinto() {
return respinto;
}
public void setRespinto(Boolean respinta) {
this.respinto = respinta;
}
public Boolean getAutorizzato() {
return autorizzato;
}
public void setAutorizzato(Boolean autorizzato) {
this.autorizzato = autorizzato;
}
public String getStatorichiesta() {
if( this.getRespinto() ){
return "respinta";
} else if( this.getAutorizzato() ){
return "autorizzata da " + this.getEsecutoreautorizzazione() + " il " + SuiteUtil.DATE_FORMAT.format(this.getDataautorizzazione());
}
return "in attesa";
}
public void setStatorichiesta(String stato) {
}
@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 AnnullamentoProtocollo)) {
return false;
}
AnnullamentoProtocollo other = (AnnullamentoProtocollo) 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 "com.axiastudio.suite.protocollo.entities.AnnullamentoProtocollo[ id=" + id + " ]";
}
}