Subversion Repositories Integrator Subversion

Rev

Rev 259 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
 
326 espaco 5
import javax.persistence.CascadeType;
259 espaco 6
import javax.persistence.Column;
7
import javax.persistence.Entity;
326 espaco 8
import javax.persistence.FetchType;
259 espaco 9
import javax.persistence.GeneratedValue;
10
import javax.persistence.GenerationType;
11
import javax.persistence.Id;
12
import javax.persistence.JoinColumn;
326 espaco 13
import javax.persistence.ManyToOne;
14
import javax.persistence.OneToMany;
259 espaco 15
import javax.persistence.OneToOne;
16
import javax.persistence.SequenceGenerator;
17
import javax.persistence.Table;
18
import javax.persistence.Transient;
19
import javax.validation.constraints.Size;
20
 
21
import org.hibernate.annotations.ForeignKey;
22
 
23
import br.com.ec.core.util.StringUtil;
24
import br.com.ec.core.util.VerificadorUtil;
326 espaco 25
import br.com.ec.domain.dto.UsuarioDTO;
26
import br.com.ec.domain.dto.VendedorDTO;
259 espaco 27
 
28
@Entity
29
@Table(name="sec_vendedor", schema="sc_sec")
30
public class Vendedor implements Serializable {
31
 
32
        private static final long serialVersionUID = 1L;
33
 
34
        private Long sequencial;
35
        private Pessoa pessoa;
36
        private Loja loja;
37
        private String nome;
38
        private Boolean ativo;
39
        private Boolean indicadorColaborador;
40
 
326 espaco 41
        public Vendedor() {}
42
 
43
        public Vendedor(Long sequencial) {
44
                this.sequencial = sequencial;
45
        }
46
 
259 espaco 47
        @Id
48
        @SequenceGenerator(name = "sq_vendedor")
49
        @GeneratedValue(strategy=GenerationType.IDENTITY)
50
        @Column(name="seq_vendedor", nullable=false)
51
        public Long getSequencial() {
52
                return sequencial;
53
        }
54
        public void setSequencial(Long sequencial) {
55
                this.sequencial = sequencial;
56
        }
57
 
58
        //TODO: RETIRAR O NULLABLE DEPOIS QUE COLOCAR TODAS AS PESSOAS DOS VENDEDORES
59
        @OneToOne
60
        @ForeignKey(name="fk_vendedor_pessoa")
61
        @JoinColumn(name="seq_pessoa", referencedColumnName="seq_pessoa", nullable=true)
62
        public Pessoa getPessoa() {
63
                return pessoa;
64
        }
65
        public void setPessoa(Pessoa pessoa) {
66
                this.pessoa = pessoa;
67
        }
68
 
326 espaco 69
//      @OneToOne
70
        @ManyToOne
259 espaco 71
        @ForeignKey(name="fk_vendedor_loja")
72
        @JoinColumn(name="seq_loja", referencedColumnName="seq_loja", nullable=true)
73
        public Loja getLoja() {
74
                return loja;
75
        }
76
        public void setLoja(Loja loja) {
77
                this.loja = loja;
78
        }
79
 
80
        @Column(name="dsc_nome")
81
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Nome")
82
        public String getNome() {
83
                return nome;
84
        }
85
        public void setNome(String nome) {
86
                this.nome = StringUtil.setarUpperCaseComTrim(nome);
87
        }
88
 
89
        @Column(name="ind_ativo", nullable=false)
90
        public Boolean getAtivo() {
91
                return ativo;
92
        }
93
        public void setAtivo(Boolean ativo) {
94
                this.ativo = ativo;
95
        }
96
 
97
        @Column(name="ind_colaborador", nullable=false)
98
        public Boolean getIndicadorColaborador() {
99
                return indicadorColaborador;
100
        }
101
        public void setIndicadorColaborador(Boolean indicadorColaborador) {
102
                this.indicadorColaborador = indicadorColaborador;
103
        }
104
 
105
        @Transient
106
        public String getNomeDaPessoa() {
107
                return VerificadorUtil.naoEstaNulo(pessoa)? pessoa.getNome() : null;
108
        }
109
 
110
        @Override
111
        public int hashCode() {
112
                final int prime = 31;
113
                int result = 1;
114
                result = prime * result
115
                                + ((sequencial == null) ? 0 : sequencial.hashCode());
116
                return result;
117
        }
118
 
119
        @Override
120
        public boolean equals(Object obj) {
121
                if (this == obj)
122
                        return true;
123
                if (obj == null)
124
                        return false;
125
                if (getClass() != obj.getClass())
126
                        return false;
127
                Vendedor other = (Vendedor) obj;
128
                if (sequencial == null) {
129
                        if (other.sequencial != null)
130
                                return false;
131
                } else if (!sequencial.equals(other.sequencial))
132
                        return false;
133
                return true;
134
        }
135
 
326 espaco 136
        public void atualizarDados(VendedorDTO vendedorDTO) {
137
                this.loja = null;
138
                if (VerificadorUtil.naoEstaNulo(vendedorDTO.getLojaDTO().getSequencial())) {
139
                        this.loja = new Loja(vendedorDTO.getLojaDTO().getSequencial());
140
                }
141
                this.nome = vendedorDTO.getNome();
142
                this.ativo = vendedorDTO.getAtivo();
143
                this.indicadorColaborador = vendedorDTO.getIndicadorColaborador();
144
        }
145
 
259 espaco 146
}