Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.gov.al.saude.scs.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MapsId;
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.scg.model.view.OrgaoView;
import br.gov.al.saude.scs.model.dto.DespesasTurmaDTO;

@Entity
@Table(name = "scs_turma_processo", schema = "sc_scs")
public class TurmaProcesso implements Serializable {

        private static final long serialVersionUID = 1L;

        private TurmaProcessoId turmaProcessoId = new TurmaProcessoId();
       
        private Turma turma;
        private OrgaoView orgao;
        private Long numeroProcesso;
        private Integer ano;
        private DespesasTurmaDTO despesasTurma;
       
        @EmbeddedId
        public TurmaProcessoId getTurmaProcessoId() {
                return turmaProcessoId;
        }
        public void setTurmaProcessoId(TurmaProcessoId turmaProcessoId) {
                this.turmaProcessoId = turmaProcessoId;
        }
       
        @MapsId("sequencialTurma")
        @ManyToOne
        @ForeignKey(name = "fk_turmaprocesso_turma")
        @JoinColumn(name = "seq_turma", referencedColumnName = "seq_turma", nullable = false, updatable = false, insertable = false)
        public Turma getTurma() {
                return turma;
        }
        public void setTurma(Turma turma) {
                if(VerificadorUtil.naoEstaNulo(turma)){
                        getTurmaProcessoId().setSequencialTurma(turma.getSequencial());
                }
                this.turma = turma;
        }
       
        @ManyToOne
        @ForeignKey(name = "fk_turmaprocesso_orgao")
        @JoinColumn(name = "cod_orgao", referencedColumnName = "cod_orgao", insertable = false, updatable = false, nullable = false)
        public OrgaoView getOrgao() {
                return orgao;
        }
        public void setOrgao(OrgaoView orgao) {
                if(VerificadorUtil.naoEstaNulo(orgao) && VerificadorUtil.naoEstaNulo(orgao.getCodigo())){
                        turmaProcessoId.setCodigoOrgao(orgao.getCodigo());
                }
                this.orgao = orgao;
        }
       
        @Column(name="num_processo", insertable = false, updatable = false, nullable = false)
        public Long getNumeroProcesso() {
                return numeroProcesso;
        }
        public void setNumeroProcesso(Long numeroProcesso) {
                if(VerificadorUtil.naoEstaNulo(numeroProcesso)){
                        turmaProcessoId.setNumeroProcesso(numeroProcesso);
                }
                this.numeroProcesso = numeroProcesso;
        }
       
        @Column(name="num_ano", insertable = false, updatable = false, nullable = false)
        public Integer getAno() {
                return ano;
        }
        public void setAno(Integer ano) {
                if(VerificadorUtil.naoEstaNulo(ano)){
                        turmaProcessoId.setNumeroAno(ano);
                }
                this.ano = ano;
        }
       
       
       
//      @Transient
//      public ProcessoIntegraDTO getProcessoIntegra() {
//              return processoIntegra;
//      }
//      public void setProcessoIntegra(ProcessoIntegraDTO processoIntegra) {
//              this.processoIntegra = processoIntegra;
//      }
//     
//      @Transient
//      public List<ProcessoOrcamentoView> getElementosDespesa() {
//              return elementosDespesa;
//      }
//      public void setElementosDespesa(List<ProcessoOrcamentoView> elementosDespesa) {
//              this.elementosDespesa = elementosDespesa;
//      }
       
        @Transient
        public DespesasTurmaDTO getDespesasTurma() {
                return despesasTurma;
        }
        public void setDespesasTurma(DespesasTurmaDTO despesasTurma) {
                this.despesasTurma = despesasTurma;
        }
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result
                                + ((turmaProcessoId == null) ? 0 : turmaProcessoId.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;
                TurmaProcesso other = (TurmaProcesso) obj;
                if (turmaProcessoId == null) {
                        if (other.turmaProcessoId != null)
                                return false;
                } else if (!turmaProcessoId.equals(other.turmaProcessoId))
                        return false;
                return true;
        }
       
}