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.OneToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.ForeignKey;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.srv.model.TipoClasseCarreira;
import br.gov.al.saude.srv.model.TipoNivelCarreira;
@
Entity
@Table
(name =
"vw_servidor_dadofuncional", schema =
"sc_srv")
public class ServidorDadoFuncionalView
implements Serializable {
private static final long serialVersionUID = 1L
;
private ServidorView servidorView
;
private Long sequencial
;
private Long numeroMatricula
;
private Integer numeroDigitoMatricula
;
private Date dataAdmissao
;
private Date dataExercicio
;
private UnidadeView unidadeExercicio
;
private String descricaoUnidadeExercicio
;
private String descricaoUnidadeLotacao
;
private String descricaoOrgaoOrigem
;
private String descricaoOrgaoLotacao
;
private String descricaoTipoServidor
;
private String descricaoSituacaoServidor
;
private String descricaoCargo
;
private String tipoNivelCargo
;
private String descricaoCarreira
;
private String tipoNivelCarreira
;
private String tipoClasseCarreira
;
private String descricaoSetor
;
private String descricaoFuncao
;
public ServidorDadoFuncionalView
() {}
public ServidorDadoFuncionalView
(ServidorView servidor
) {
this.
servidorView = servidor
;
}
public ServidorDadoFuncionalView
(Long sequencial,
Long numeroMatricula,
Integer numeroDigitoMatricula,
String nomeServidor,
Long sequencialPessoa
){
this.
sequencial = sequencial
;
this.
numeroMatricula = numeroMatricula
;
this.
numeroDigitoMatricula = numeroDigitoMatricula
;
this.
servidorView =
new ServidorView
(nomeServidor, sequencialPessoa
);
}
@Id
@Column
(name=
"seq_servidor_dadofuncional", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@ManyToOne
@ForeignKey
(name=
"fk_servidor_dadofuncional")
@JoinColumn
(name=
"seq_pessoa_servidor", referencedColumnName=
"seq_pessoa_servidor")
public ServidorView getServidorView
() {
return servidorView
;
}
public void setServidorView
(ServidorView servidorView
) {
this.
servidorView = servidorView
;
}
@Column
(name=
"num_matricula_servidor", nullable=
false)
public Long getNumeroMatricula
() {
return numeroMatricula
;
}
public void setNumeroMatricula
(Long numeroMatricula
) {
this.
numeroMatricula = numeroMatricula
;
}
@Column
(name=
"num_digito_matricula", nullable=
false)
public Integer getNumeroDigitoMatricula
() {
return numeroDigitoMatricula
;
}
public void setNumeroDigitoMatricula
(Integer numeroDigitoMatricula
) {
this.
numeroDigitoMatricula = numeroDigitoMatricula
;
}
@Column
(name=
"dat_admissao")
public Date getDataAdmissao
() {
return dataAdmissao
;
}
public void setDataAdmissao
(Date dataAdmissao
) {
this.
dataAdmissao = dataAdmissao
;
}
@Column
(name=
"dat_exercicio")
public Date getDataExercicio
() {
return dataExercicio
;
}
public void setDataExercicio
(Date dataExercicio
) {
this.
dataExercicio = dataExercicio
;
}
@OneToOne
@JoinColumn
(name=
"cod_unidade_exercicio")
public UnidadeView getUnidadeExercicio
() {
return unidadeExercicio
;
}
public void setUnidadeExercicio
(UnidadeView unidadeExercicio
) {
this.
unidadeExercicio = unidadeExercicio
;
}
@Column
(name=
"dsc_unidade_exercicio")
public String getDescricaoUnidadeExercicio
() {
return descricaoUnidadeExercicio
;
}
public void setDescricaoUnidadeExercicio
(String descricaoUnidadeExercicio
) {
this.
descricaoUnidadeExercicio = descricaoUnidadeExercicio
;
}
@Column
(name=
"dsc_unidade_lotacao")
public String getDescricaoUnidadeLotacao
() {
return descricaoUnidadeLotacao
;
}
public void setDescricaoUnidadeLotacao
(String descricaoUnidadeLotacao
) {
this.
descricaoUnidadeLotacao = descricaoUnidadeLotacao
;
}
@Column
(name=
"dsc_orgao_origem")
public String getDescricaoOrgaoOrigem
() {
return descricaoOrgaoOrigem
;
}
public void setDescricaoOrgaoOrigem
(String descricaoOrgaoOrigem
) {
this.
descricaoOrgaoOrigem = descricaoOrgaoOrigem
;
}
@Column
(name=
"dsc_orgao_lotacao")
public String getDescricaoOrgaoLotacao
() {
return descricaoOrgaoLotacao
;
}
public void setDescricaoOrgaoLotacao
(String descricaoOrgaoLotacao
) {
this.
descricaoOrgaoLotacao = descricaoOrgaoLotacao
;
}
@Column
(name=
"dsc_tipo_servidor")
public String getDescricaoTipoServidor
() {
return descricaoTipoServidor
;
}
public void setDescricaoTipoServidor
(String descricaoTipoServidor
) {
this.
descricaoTipoServidor = descricaoTipoServidor
;
}
@Column
(name=
"dsc_situacao_servidor")
public String getDescricaoSituacaoServidor
() {
return descricaoSituacaoServidor
;
}
public void setDescricaoSituacaoServidor
(String descricaoSituacaoServidor
) {
this.
descricaoSituacaoServidor = descricaoSituacaoServidor
;
}
@Column
(name=
"dsc_cargo")
public String getDescricaoCargo
() {
return descricaoCargo
;
}
public void setDescricaoCargo
(String descricaoCargo
) {
this.
descricaoCargo = descricaoCargo
;
}
@Column
(name=
"tip_nivel_cargo")
public String getTipoNivelCargo
() {
return tipoNivelCargo
;
}
public void setTipoNivelCargo
(String tipoNivelCargo
) {
this.
tipoNivelCargo = tipoNivelCargo
;
}
@Column
(name=
"dsc_carreira")
public String getDescricaoCarreira
() {
return descricaoCarreira
;
}
public void setDescricaoCarreira
(String descricaoCarreira
) {
this.
descricaoCarreira = descricaoCarreira
;
}
@Column
(name=
"tip_nivel_carreira")
public String getTipoNivelCarreira
() {
return tipoNivelCarreira
;
}
public void setTipoNivelCarreira
(String tipoNivelCarreira
) {
this.
tipoNivelCarreira = tipoNivelCarreira
;
}
@Column
(name=
"tip_classe_carreira")
public String getTipoClasseCarreira
() {
return tipoClasseCarreira
;
}
public void setTipoClasseCarreira
(String tipoClasseCarreira
) {
this.
tipoClasseCarreira = tipoClasseCarreira
;
}
@Column
(name=
"dsc_setor")
public String getDescricaoSetor
() {
return descricaoSetor
;
}
public void setDescricaoSetor
(String descricaoSetor
) {
this.
descricaoSetor = descricaoSetor
;
}
@Column
(name=
"dsc_funcao")
public String getDescricaoFuncao
() {
return descricaoFuncao
;
}
public void setDescricaoFuncao
(String descricaoFuncao
) {
this.
descricaoFuncao = descricaoFuncao
;
}
@Transient
public String getDescricaoNivelCarreira
() {
return VerificadorUtil.
estaNulo(this.
getTipoNivelCarreira())?null:TipoNivelCarreira.
parse(this.
getTipoNivelCarreira()).
getDescricao();
}
@Transient
public String getDescricaoClasseCarreira
() {
return VerificadorUtil.
estaNulo(this.
getTipoClasseCarreira())?null:TipoClasseCarreira.
parse(this.
getTipoClasseCarreira()).
getDescricao();
}
@
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;
ServidorDadoFuncionalView other =
(ServidorDadoFuncionalView
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null)
return false;
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
}