Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
import java.util.Date;
5
 
6
import javax.persistence.Column;
7
import javax.persistence.Entity;
8
import javax.persistence.GeneratedValue;
9
import javax.persistence.GenerationType;
10
import javax.persistence.Id;
11
import javax.persistence.JoinColumn;
12
import javax.persistence.ManyToOne;
13
import javax.persistence.Table;
14
import javax.persistence.Transient;
15
import javax.validation.constraints.NotNull;
16
 
17
import org.hibernate.annotations.ForeignKey;
18
import org.hibernate.validator.constraints.NotEmpty;
19
 
20
import br.com.ec.domain.model.tipos.TipoCorProduto;
21
import br.com.ec.domain.model.tipos.TipoEstiloProduto;
22
import br.com.ec.domain.model.tipos.TipoGenero;
23
import br.com.ec.domain.model.tipos.TipoMotivoAtendimento;
24
import br.com.ec.domain.model.tipos.TipoProduto;
25
import br.edu.cesmac.core.interfaces.Alterar;
26
import br.edu.cesmac.core.interfaces.Cadastrar;
27
import br.edu.cesmac.core.util.StringUtil;
28
import br.edu.cesmac.core.util.VerificadorUtil;
29
 
30
@Entity
31
@Table(name="sec_controle_trafego", schema="sc_sec")
32
public class ControleTrafego implements Serializable, Cloneable {
33
 
34
        private static final long serialVersionUID = 1L;
35
 
36
        private Long sequencial;
37
        private Date dataAtendimento;
38
        private Usuario usuario;
39
        private Loja loja;
40
        private Modelo modelo;
41
        private String tipoMotivo;
42
        private String tipoProduto;
43
        private String generoProduto;
44
        private String estiloProduto;
45
        private String corProduto;
46
        private String observacao;
47
        private Boolean indicadorCliente;
48
 
49
        @Id
50
        @GeneratedValue(strategy = GenerationType.IDENTITY)
51
        @Column(name="seq_controletrafego", nullable=false)
52
        public Long getSequencial() {
53
                return sequencial;
54
        }
55
        public void setSequencial(Long sequencial) {
56
                this.sequencial = sequencial;
57
        }
58
 
59
        @Column(name="dth_atendimento", nullable=false)
60
        public Date getDataAtendimento() {
61
                return dataAtendimento;
62
        }
63
        public void setDataAtendimento(Date dataAtendimento) {
64
                this.dataAtendimento = dataAtendimento;
65
        }
66
 
67
        @ManyToOne
68
        @ForeignKey(name="fk_controletrafego_usuario")
69
        @NotNull(message = "Parâmetro obrigatório não preenchido: Data e hora do atendimento", groups = {Cadastrar.class, Alterar.class})
70
        @JoinColumn(name = "seq_usuario", referencedColumnName="seq_usuario", nullable=false)
71
        public Usuario getUsuario() {
72
                return usuario;
73
        }
74
        public void setUsuario(Usuario usuario) {
75
                this.usuario = usuario;
76
        }
77
 
78
        @ManyToOne
79
        @ForeignKey(name="fk_controletrafego_loha")
80
        @NotNull(message = "Parâmetro obrigatório não preenchido: Loja do atendimento", groups = {Cadastrar.class, Alterar.class})
81
        @JoinColumn(name = "seq_loja", referencedColumnName="seq_loja", nullable=false)
82
        public Loja getLoja() {
83
                return loja;
84
        }
85
        public void setLoja(Loja loja) {
86
                this.loja = loja;
87
        }
88
 
89
        @ManyToOne
90
        @ForeignKey(name="fk_controletrafego_modelo")
91
        @JoinColumn(name = "seq_modelo", referencedColumnName="seq_modelo", nullable=true)
92
        public Modelo getModelo() {
93
                return modelo;
94
        }
95
        public void setModelo(Modelo modelo) {
96
                this.modelo = modelo;
97
        }
98
 
99
        @Column(name="tip_motivo")
100
        @NotNull(message = "Parâmetro obrigatório não preenchido: Motivo do atendimento", groups = {Cadastrar.class, Alterar.class})
101
        @NotEmpty(message = "Parâmetro obrigatório não preenchido: Motivo do atendimento", groups = {Cadastrar.class, Alterar.class})
102
        public String getTipoMotivo() {
103
                return tipoMotivo;
104
        }
105
        public void setTipoMotivo(String tipoMotivo) {
106
                this.tipoMotivo = tipoMotivo;
107
        }
108
 
109
        @Column(name="tip_tipo_produto")
110
        @NotNull(message = "Parâmetro obrigatório não preenchido: Tipo", groups = {Cadastrar.class, Alterar.class})
111
        public String getTipoProduto() {
112
                return tipoProduto;
113
        }
114
        public void setTipoProduto(String tipoProduto) {
115
                this.tipoProduto = tipoProduto;
116
        }
117
 
118
        @Column(name="tip_genero_produto")
119
        public String getGeneroProduto() {
120
                return generoProduto;
121
        }
122
        public void setGeneroProduto(String generoProduto) {
123
                this.generoProduto = generoProduto;
124
        }
125
 
126
        @Column(name="tip_estilo_produto")
127
        public String getEstiloProduto() {
128
                return estiloProduto;
129
        }
130
        public void setEstiloProduto(String estiloProduto) {
131
                this.estiloProduto = estiloProduto;
132
        }
133
 
134
        @Column(name="tip_cor_produto")
135
        public String getCorProduto() {
136
                return corProduto;
137
        }
138
        public void setCorProduto(String corProduto) {
139
                this.corProduto = corProduto;
140
        }
141
 
142
        @Column(name="dsc_observacao")
143
        public String getObservacao() {
144
                return observacao;
145
        }
146
        public void setObservacao(String observacao) {
147
                this.observacao = StringUtil.setarUpperCase(observacao);
148
        }
149
 
150
        @Column(name="ind_cliente")
151
        @NotNull(message = "Parâmetro obrigatório não preenchido: Indicador de cliente", groups = {Cadastrar.class, Alterar.class})
152
        public Boolean getIndicadorCliente() {
153
                return indicadorCliente;
154
        }
155
        public void setIndicadorCliente(Boolean indicadorCliente) {
156
                this.indicadorCliente = indicadorCliente;
157
        }
158
 
159
        @Override
160
        public int hashCode() {
161
                final int prime = 31;
162
                int result = 1;
163
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
164
                return result;
165
        }
166
 
167
        @Override
168
        public boolean equals(Object obj) {
169
                if (this == obj)
170
                        return true;
171
                if (obj == null)
172
                        return false;
173
                if (getClass() != obj.getClass())
174
                        return false;
175
                ControleTrafego other = (ControleTrafego) obj;
176
                if (sequencial == null) {
177
                        if (other.sequencial != null)
178
                                return false;
179
                } else if (!sequencial.equals(other.sequencial))
180
                        return false;
181
                return true;
182
        }
183
 
184
        @Override
185
        public ControleTrafego clone() throws CloneNotSupportedException {
186
                return (ControleTrafego) super.clone();
187
        }
188
 
189
        @Transient
190
        public String getDescricaoDoModelo() {
191
                return VerificadorUtil.naoEstaNulo(modelo)? modelo.getDescricao() : "";
192
        }
193
 
194
        @Transient
195
        public String getDescricaoDoTipoMotivoAtendimento() {
196
                return VerificadorUtil.naoEstaNulo(tipoMotivo)? TipoMotivoAtendimento.parse(tipoMotivo).getDescricao() : "";
197
        }
198
 
199
        @Transient
200
        public String getDescricaoDoTipoProduto() {
201
                return VerificadorUtil.naoEstaNulo(tipoProduto)? TipoProduto.parse(tipoProduto).getDescricao() : "";
202
        }
203
 
204
        @Transient
205
        public String getDescricaoDoEstiloProduto() {
206
                return VerificadorUtil.naoEstaNulo(estiloProduto)? TipoEstiloProduto.parse(estiloProduto).getDescricao() : "";
207
        }
208
 
209
        @Transient
210
        public String getDescricaoDoGenero() {
211
                return VerificadorUtil.naoEstaNulo(generoProduto)? TipoGenero.parse(generoProduto).getDescricao() : "";
212
        }
213
 
214
        @Transient
215
        public String getDescricaoDaCorProduto() {
216
                return VerificadorUtil.naoEstaNulo(corProduto)? TipoCorProduto.parse(corProduto).getDescricao() : "";
217
        }
218
 
219
        @Transient
220
        public Long getSequencialDoModelo() {
221
                return VerificadorUtil.naoEstaNulo(modelo)? modelo.getSequencial() : null;
222
        }
223
 
224
        @Transient
225
        public Long getSequencialDaLoja() {
226
                return VerificadorUtil.naoEstaNulo(loja)? loja.getSequencial() : null;
227
        }
228
 
229
        @Transient
230
        public String getDescricaoDaLoja() {
231
                return VerificadorUtil.naoEstaNulo(loja)? loja.getDescricao() : null;
232
        }
233
 
234
}