Subversion Repositories Integrator Subversion

Rev

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