package br.gov.al.saude.rhd.model.view;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.hibernate.annotations.ForeignKey;
import br.gov.al.saude.framework.core.generic.identidade.Identidade;
import br.gov.al.saude.rhd.tipo.TipoQualificacao;
@
Entity
@Table
(name =
"vw_qualificacao_servidor", schema =
"sc_srv")
public class QualificacaoServidorView
implements Serializable, Identidade,
Comparable<QualificacaoServidorView
> {
private static final long serialVersionUID = 1L
;
private ServidorView servidorView
;
private Long sequencial
;
private String descricao
;
private String instituicao
;
private String tipoQualificacao
;
private Date dataInicial
;
private Date dataFinal
;
private Integer quantidadeCargaHoraria
;
private String descricaoObservacao
;
@Id
@Column
(name=
"seq_servidor_qualificacao", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@ManyToOne
@ForeignKey
(name=
"fk_qualservcron_servidoqualif")
@JoinColumn
(name=
"seq_pessoa_servidor", referencedColumnName=
"seq_pessoa_servidor")
public ServidorView getServidorView
() {
return servidorView
;
}
public void setServidorView
(ServidorView servidorView
) {
this.
servidorView = servidorView
;
}
@Column
(name=
"dsc_qualificacao", nullable=
false)
public String getDescricao
() {
return descricao
;
}
public void setDescricao
(String descricao
) {
this.
descricao = descricao
;
}
@Column
(name=
"dsc_instituicao")
public String getDescricaoInstituicao
() {
return instituicao
;
}
public void setDescricaoInstituicao
(String descricaoInstituicao
) {
this.
instituicao = descricaoInstituicao
;
}
@Column
(name=
"tip_qualificacao", nullable=
false)
public String getTipoQualificacao
() {
return tipoQualificacao
;
}
public void setTipoQualificacao
(String tipoQualificacao
) {
this.
tipoQualificacao = tipoQualificacao
;
}
@Temporal
(TemporalType.
DATE)
@Column
(name=
"dat_inicial")
public Date getDataInicial
() {
return dataInicial
;
}
public void setDataInicial
(Date dataInicial
) {
this.
dataInicial = dataInicial
;
}
@Temporal
(TemporalType.
DATE)
@Column
(name=
"dat_final")
public Date getDataFinal
() {
return dataFinal
;
}
public void setDataFinal
(Date dataFinal
) {
this.
dataFinal = dataFinal
;
}
@Column
(name=
"qtd_carga_horaria")
public Integer getQuantidadeCargaHoraria
() {
return quantidadeCargaHoraria
;
}
public void setQuantidadeCargaHoraria
(Integer quantidadeCargaHoraria
) {
this.
quantidadeCargaHoraria = quantidadeCargaHoraria
;
}
@Column
(name=
"dsc_observacao")
public String getDescricaoObservacao
() {
return descricaoObservacao
;
}
public void setDescricaoObservacao
(String descricaoObservacao
) {
this.
descricaoObservacao = descricaoObservacao
;
}
@
Override
@Transient
public Object getId
() {
return sequencial
;
}
@
Override
public void setId
(Object id
) {
sequencial =
(Long) id
;
}
@Transient
public String getTipoQualificacaoPorExtenso
() {
if("A".
equals(tipoQualificacao
))
return "Acadêmica";
if("C".
equals(tipoQualificacao
))
return "Formação Complementar";
if("E".
equals(tipoQualificacao
))
return "Participação em Eventos";
if("I".
equals(tipoQualificacao
))
return "Produção Intelectual";
return null;
}
@Transient
public Boolean isQualificaoServidorProducaoIntelectual
() {
return TipoQualificacao.
PRODUCAO_INTELECTUAL.
getValue().
equals(tipoQualificacao
);
}
@Transient
public Boolean isQualificacaoServidorFormacaoComplementar
() {
return TipoQualificacao.
FORMACAO_COMPLEMENTAR.
getValue().
equals(tipoQualificacao
);
}
@Transient
public Boolean isQualificacaoServidorParticipacaoEmEventos
() {
return TipoQualificacao.
PARTICIPACAO_EVENTOS.
getValue().
equals(tipoQualificacao
);
}
@
Override
public int compareTo
(QualificacaoServidorView qualificacao
) {
return this.
dataInicial.
compareTo(qualificacao.
getDataInicial());
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result
+
((sequencial ==
null) ? 0 : sequencial.
hashCode());
return result
;
}
@
Override
public boolean equals
(Object obj
) {
if (this == obj
)
return true;
if (obj ==
null)
return false;
if (getClass
() != obj.
getClass())
return false;
QualificacaoServidorView other =
(QualificacaoServidorView
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null)
return false;
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
}