Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
106 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.SequenceGenerator;
14
import javax.persistence.Table;
15
import javax.persistence.Transient;
16
import javax.validation.constraints.NotNull;
17
import javax.validation.constraints.Size;
18
 
19
import org.hibernate.annotations.ForeignKey;
20
import org.hibernate.validator.constraints.NotEmpty;
21
 
195 espaco 22
import br.com.ec.core.interfaces.Alterar;
23
import br.com.ec.core.interfaces.Cadastrar;
24
import br.com.ec.core.util.StringUtil;
25
import br.com.ec.core.util.VerificadorUtil;
106 espaco 26
import br.com.ec.domain.model.tipos.TipoCorProduto;
27
import br.com.ec.domain.model.tipos.TipoEstiloProduto;
28
import br.com.ec.domain.model.tipos.TipoGenero;
29
import br.com.ec.domain.model.tipos.TipoMotivoAtendimento;
30
import br.com.ec.domain.model.tipos.TipoProduto;
31
 
32
@Entity
33
@Table(name="sec_controle_trafego", schema="sc_sec")
34
public class ControleTrafego implements Serializable, Cloneable {
35
 
36
        private static final long serialVersionUID = 1L;
37
 
38
        private Long sequencial;
39
        private Date dataAtendimento;
40
        private Usuario usuario;
41
        private Loja loja;
42
        private Modelo modelo;
43
        private String tipoMotivo;
44
        private String tipoProduto;
598 blopes 45
        private SubtipoProduto subtipoProduto;
106 espaco 46
        private String generoProduto;
47
        private String estiloProduto;
48
        private String corProduto;
49
        private String observacao;
50
        private Boolean indicadorCliente;
598 blopes 51
        private Usuario usuarioVerificacao;
591 blopes 52
        private Date dataVerificacao;
106 espaco 53
 
591 blopes 54
        private Boolean validar = false;
55
 
106 espaco 56
        @Id
57
        @SequenceGenerator(name = "sq_controletrafego")
58
        @GeneratedValue(strategy = GenerationType.IDENTITY)
59
        @Column(name="seq_controletrafego", nullable=false)
60
        public Long getSequencial() {
61
                return sequencial;
62
        }
63
        public void setSequencial(Long sequencial) {
64
                this.sequencial = sequencial;
65
        }
66
 
67
        @Column(name="dth_atendimento", nullable=false)
68
        public Date getDataAtendimento() {
69
                return dataAtendimento;
70
        }
71
        public void setDataAtendimento(Date dataAtendimento) {
72
                this.dataAtendimento = dataAtendimento;
73
        }
74
 
75
        @ManyToOne
76
        @ForeignKey(name="fk_controletrafego_usuario")
77
        @NotNull(message = "Parâmetro obrigatório não preenchido: Data e hora do atendimento", groups = {Cadastrar.class, Alterar.class})
78
        @JoinColumn(name = "seq_usuario", referencedColumnName="seq_usuario", nullable=false)
79
        public Usuario getUsuario() {
80
                return usuario;
81
        }
82
        public void setUsuario(Usuario usuario) {
83
                this.usuario = usuario;
84
        }
85
 
86
        @ManyToOne
598 blopes 87
        @ForeignKey(name="fk_controletrafego_usuarioverificacao")
88
        @JoinColumn(name = "seq_usuarioverificacao", referencedColumnName="seq_usuario", nullable=false)
89
        public Usuario getUsuarioVerificacao() {
90
                return usuarioVerificacao;
91
        }
92
        public void setUsuarioVerificacao(Usuario usuarioVerificacao) {
93
                this.usuarioVerificacao = usuarioVerificacao;
94
        }
95
 
96
        @ManyToOne
97
        @ForeignKey(name="fk_controletrafego_loja")
106 espaco 98
        @NotNull(message = "Parâmetro obrigatório não preenchido: Loja do atendimento", groups = {Cadastrar.class, Alterar.class})
99
        @JoinColumn(name = "seq_loja", referencedColumnName="seq_loja", nullable=false)
100
        public Loja getLoja() {
101
                return loja;
102
        }
103
        public void setLoja(Loja loja) {
104
                this.loja = loja;
105
        }
106
 
107
        @ManyToOne
108
        @ForeignKey(name="fk_controletrafego_modelo")
109
        @JoinColumn(name = "seq_modelo", referencedColumnName="seq_modelo", nullable=true)
110
        public Modelo getModelo() {
111
                return modelo;
112
        }
113
        public void setModelo(Modelo modelo) {
114
                this.modelo = modelo;
115
        }
116
 
117
        @Column(name="tip_motivo")
118
        @NotNull(message = "Parâmetro obrigatório não preenchido: Motivo do atendimento", groups = {Cadastrar.class, Alterar.class})
119
        @NotEmpty(message = "Parâmetro obrigatório não preenchido: Motivo do atendimento", groups = {Cadastrar.class, Alterar.class})
120
        public String getTipoMotivo() {
121
                return tipoMotivo;
122
        }
123
        public void setTipoMotivo(String tipoMotivo) {
124
                this.tipoMotivo = tipoMotivo;
125
        }
126
 
127
        @Column(name="tip_tipo_produto")
128
        @NotNull(message = "Parâmetro obrigatório não preenchido: Tipo", groups = {Cadastrar.class, Alterar.class})
129
        public String getTipoProduto() {
130
                return tipoProduto;
131
        }
132
        public void setTipoProduto(String tipoProduto) {
133
                this.tipoProduto = tipoProduto;
134
        }
135
 
598 blopes 136
        @ManyToOne
137
        @ForeignKey(name="fk_controletrafego_subtipoproduto")
138
        @JoinColumn(name = "seq_subtipoproduto", referencedColumnName="seq_subtipoproduto")
139
        public SubtipoProduto getSubtipoProduto() {
140
                return subtipoProduto;
141
        }
142
        public void setSubtipoProduto(SubtipoProduto subtipoProduto) {
143
                this.subtipoProduto = subtipoProduto;
144
        }
145
 
106 espaco 146
        @Column(name="tip_genero_produto")
147
        public String getGeneroProduto() {
148
                return generoProduto;
149
        }
150
        public void setGeneroProduto(String generoProduto) {
151
                this.generoProduto = generoProduto;
152
        }
153
 
154
        @Column(name="tip_estilo_produto")
155
        public String getEstiloProduto() {
156
                return estiloProduto;
157
        }
158
        public void setEstiloProduto(String estiloProduto) {
159
                this.estiloProduto = estiloProduto;
160
        }
161
 
162
        @Column(name="tip_cor_produto")
163
        public String getCorProduto() {
164
                return corProduto;
165
        }
166
        public void setCorProduto(String corProduto) {
167
                this.corProduto = corProduto;
168
        }
169
 
170
        @Column(name="dsc_observacao")
171
        @Size(max = 240, message = "Limite de caracteres ultrapassado: Observação")
172
        public String getObservacao() {
173
                return observacao;
174
        }
175
        public void setObservacao(String observacao) {
176
                this.observacao = StringUtil.setarUpperCaseComTrim(observacao);
177
        }
178
 
179
        @Column(name="ind_cliente")
180
        @NotNull(message = "Parâmetro obrigatório não preenchido: Indicador de cliente", groups = {Cadastrar.class, Alterar.class})
181
        public Boolean getIndicadorCliente() {
182
                return indicadorCliente;
183
        }
184
        public void setIndicadorCliente(Boolean indicadorCliente) {
185
                this.indicadorCliente = indicadorCliente;
186
        }
187
 
591 blopes 188
        @Column(name="dth_verificacao")
189
        public Date getDataVerificacao() {
190
                return dataVerificacao;
191
        }
192
        public void setDataVerificacao(Date dataVerificacao) {
193
                this.dataVerificacao = dataVerificacao;
194
        }
195
 
196
        @Transient
197
        public Boolean getValidar() {
198
                return validar;
199
        }
200
        public void setValidar(Boolean validar) {
201
                this.validar = validar;
202
        }
203
 
106 espaco 204
        @Override
205
        public int hashCode() {
206
                final int prime = 31;
207
                int result = 1;
208
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
209
                return result;
210
        }
211
 
212
        @Override
213
        public boolean equals(Object obj) {
214
                if (this == obj)
215
                        return true;
216
                if (obj == null)
217
                        return false;
218
                if (getClass() != obj.getClass())
219
                        return false;
220
                ControleTrafego other = (ControleTrafego) obj;
221
                if (sequencial == null) {
222
                        if (other.sequencial != null)
223
                                return false;
224
                } else if (!sequencial.equals(other.sequencial))
225
                        return false;
226
                return true;
227
        }
228
 
229
        @Override
230
        public ControleTrafego clone() throws CloneNotSupportedException {
231
                return (ControleTrafego) super.clone();
232
        }
233
 
234
        @Transient
235
        public String getDescricaoDoModelo() {
236
                return VerificadorUtil.naoEstaNulo(modelo)? modelo.getDescricao() : "";
237
        }
238
 
239
        @Transient
240
        public String getDescricaoDoTipoMotivoAtendimento() {
241
                return VerificadorUtil.naoEstaNulo(tipoMotivo)? TipoMotivoAtendimento.parse(tipoMotivo).getDescricao() : "";
242
        }
243
 
244
        @Transient
245
        public String getDescricaoDoTipoProduto() {
246
                return VerificadorUtil.naoEstaNulo(tipoProduto)? TipoProduto.parse(tipoProduto).getDescricao() : "";
247
        }
248
 
249
        @Transient
250
        public String getDescricaoDoEstiloProduto() {
251
                return VerificadorUtil.naoEstaNulo(estiloProduto)? TipoEstiloProduto.parse(estiloProduto).getDescricao() : "";
252
        }
253
 
254
        @Transient
598 blopes 255
        public String getDescricaoDoSubtipoProduto() {
256
                return VerificadorUtil.naoEstaNulo(getSubtipoProduto())? getSubtipoProduto().getDescricao() : "";
257
        }
258
 
259
        @Transient
106 espaco 260
        public String getDescricaoDoGenero() {
261
                return VerificadorUtil.naoEstaNulo(generoProduto)? TipoGenero.parse(generoProduto).getDescricao() : "";
262
        }
263
 
264
        @Transient
265
        public String getDescricaoDaCorProduto() {
266
                return VerificadorUtil.naoEstaNulo(corProduto)? TipoCorProduto.parse(corProduto).getDescricao() : "";
267
        }
268
 
269
        @Transient
270
        public Long getSequencialDoModelo() {
271
                return VerificadorUtil.naoEstaNulo(modelo)? modelo.getSequencial() : null;
272
        }
273
 
274
        @Transient
275
        public Long getSequencialDaLoja() {
276
                return VerificadorUtil.naoEstaNulo(loja)? loja.getSequencial() : null;
277
        }
278
 
279
        @Transient
280
        public String getDescricaoDaLoja() {
281
                return VerificadorUtil.naoEstaNulo(loja)? loja.getDescricao() : null;
282
        }
283
 
598 blopes 284
        @Transient
285
        public String getNomeUsuarioVerificacao() {
286
                return VerificadorUtil.naoEstaNulo(usuarioVerificacao)? usuarioVerificacao.getNome() : "";
287
        }
288
 
106 espaco 289
}