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
 
19
import br.com.ec.domain.dto.ParametrosVendaVivoDTO;
20
import br.com.ec.domain.model.tipos.TipoStatusDigitalizacao;
21
import br.edu.cesmac.core.interfaces.Alterar;
22
import br.edu.cesmac.core.interfaces.Cadastrar;
23
import br.edu.cesmac.core.util.StringUtil;
24
import br.edu.cesmac.core.util.VerificadorUtil;
25
 
26
@Entity
27
@Table(name="sec_venda_vivo", schema="sc_sec")
28
public class VendaVivo implements Serializable, Comparable<VendaVivo> {
29
 
30
        private static final long serialVersionUID = 1L;
31
 
32
        private Long sequencial;
33
        private LinhaVivo linhaVivo = new LinhaVivo();
34
        private Loja loja;
35
        private Vendedor vendedor;
36
        private ProdutoVivo produtoVivo;
37
        private ProdutoVivo produtoVivoAnterior;
38
        private Date dataVenda;
39
        private Double valorAssinatura;
40
        private Double valorComissao;
41
        private Double valorRecebido;
42
        private Date dataValidacao;
43
        private Date dataRecebido;
44
        private Date dataBaixa;
45
        private Date dataDigitalizacao;
46
        private String protocoloGED;
47
        private String tipoStatusDigitalizacao; // Conferindo, Com pendências, Em contestação, Sem pendências
48
        private Date dataStatus;
49
        private String observacao;
50
        private Boolean indicadorMigracao;
51
        private Boolean indicadorPortabilidade;
52
        private Boolean indicadorCadastradoVivoGo;
53
 
54
        private String justificativaParaExcluir;
55
 
56
        public VendaVivo() {}
57
 
58
        public VendaVivo(Loja loja) {
59
                this.loja = loja;
60
        }
61
 
62
        public VendaVivo(ParametrosVendaVivoDTO parametrosVenda) {
63
                this.linhaVivo.setNumero(parametrosVenda.getNumero());
64
                this.loja = parametrosVenda.getLoja();
65
                this.vendedor = parametrosVenda.getVendedor();
66
                this.observacao = StringUtil.setarUpperCase(parametrosVenda.getObservacao());
67
                this.produtoVivo = parametrosVenda.getProdutoVivo();
68
                this.produtoVivoAnterior = parametrosVenda.getProdutoVivoAnterior();
69
        }
70
 
71
        @Id
72
        @GeneratedValue(strategy = GenerationType.IDENTITY)
73
        @Column(name="seq_venda_vivo", nullable=false)
74
        public Long getSequencial() {
75
                return sequencial;
76
        }
77
        public void setSequencial(Long sequencial) {
78
                this.sequencial = sequencial;
79
        }
80
 
81
        @ManyToOne
82
        @ForeignKey(name="fk_vendavivo_linhavivo")
83
        @NotNull(message = "Informe a linha", groups = {Cadastrar.class, Alterar.class})
84
        @JoinColumn(name = "seq_linha_vivo", nullable = false)
85
        public LinhaVivo getLinhaVivo() {
86
                return linhaVivo;
87
        }
88
        public void setLinhaVivo(LinhaVivo linhaVivo) {
89
                this.linhaVivo = linhaVivo;
90
        }
91
 
92
        @ManyToOne
93
        @ForeignKey(name="fk_vendavivo_loja")
94
        @NotNull(message = "Informe a loja", groups = {Cadastrar.class, Alterar.class})
95
        @JoinColumn(name = "seq_loja", nullable = false)
96
        public Loja getLoja() {
97
                return loja;
98
        }
99
        public void setLoja(Loja loja) {
100
                this.loja = loja;
101
        }
102
 
103
        @ManyToOne
104
        @ForeignKey(name="fk_vendavivo_vendedor")
105
        @NotNull(message = "Informe o vendedor", groups = {Cadastrar.class, Alterar.class})
106
        @JoinColumn(name = "seq_vendedor", nullable = true)
107
        public Vendedor getVendedor() {
108
                return vendedor;
109
        }
110
        public void setVendedor(Vendedor vendedor) {
111
                this.vendedor = vendedor;
112
        }
113
 
114
        @ManyToOne
115
        @ForeignKey(name="fk_vendavivo_produtovivo")
116
        @NotNull(message = "Informe o produto", groups = {Cadastrar.class, Alterar.class})
117
        @JoinColumn(name = "seq_produto_vivo", nullable = true)
118
        public ProdutoVivo getProdutoVivo() {
119
                return produtoVivo;
120
        }
121
        public void setProdutoVivo(ProdutoVivo produtoVivo) {
122
                this.produtoVivo = produtoVivo;
123
        }
124
 
125
        @ManyToOne
126
        @ForeignKey(name="fk_vendavivo_produtovivoanterior")
127
        @JoinColumn(name = "seq_produto_vivo_anterior", nullable = true)
128
        public ProdutoVivo getProdutoVivoAnterior() {
129
                return produtoVivoAnterior;
130
        }
131
        public void setProdutoVivoAnterior(ProdutoVivo produtoVivoAnterior) {
132
                this.produtoVivoAnterior = produtoVivoAnterior;
133
        }
134
 
135
        @Column(name="dth_venda")
136
        @NotNull(message = "Informe a data da venda", groups = {Cadastrar.class, Alterar.class})
137
        public Date getDataVenda() {
138
                return dataVenda;
139
        }
140
        public void setDataVenda(Date dataVenda) {
141
                this.dataVenda = dataVenda;
142
        }
143
 
144
        @Column(name="val_assinatura")
145
        public Double getValorAssinatura() {
146
                return valorAssinatura;
147
        }
148
        public void setValorAssinatura(Double valorAssinatura) {
149
                this.valorAssinatura = valorAssinatura;
150
        }
151
 
152
        @Column(name="val_comissao")
153
        public Double getValorComissao() {
154
                return valorComissao;
155
        }
156
        public void setValorComissao(Double valorComissao) {
157
                this.valorComissao = valorComissao;
158
        }
159
 
160
        @Column(name="val_recebido")
161
        public Double getValorRecebido() {
162
                return valorRecebido;
163
        }
164
        public void setValorRecebido(Double valorRecebido) {
165
                this.valorRecebido = valorRecebido;
166
        }
167
 
168
        @Column(name="dat_validacao")
169
        public Date getDataValidacao() {
170
                return dataValidacao;
171
        }
172
        public void setDataValidacao(Date dataValidacao) {
173
                this.dataValidacao = dataValidacao;
174
        }
175
 
176
        @Column(name="dat_recebido")
177
        public Date getDataRecebido() {
178
                return dataRecebido;
179
        }
180
        public void setDataRecebido(Date dataRecebido) {
181
                this.dataRecebido = dataRecebido;
182
        }
183
 
184
        @Column(name="dat_baixa")
185
        public Date getDataBaixa() {
186
                return dataBaixa;
187
        }
188
        public void setDataBaixa(Date dataBaixa) {
189
                this.dataBaixa = dataBaixa;
190
        }
191
 
192
        @Column(name="dat_digitalizacao", nullable=false)
193
        public Date getDataDigitalizacao() {
194
                return dataDigitalizacao;
195
        }
196
        public void setDataDigitalizacao(Date dataDigitalizacao) {
197
                this.dataDigitalizacao = dataDigitalizacao;
198
        }
199
 
200
        @Column(name="dsc_protocolo_ged", nullable=false)
201
        public String getProtocoloGED() {
202
                return protocoloGED;
203
        }
204
        public void setProtocoloGED(String protocoloGED) {
205
                this.protocoloGED = protocoloGED;
206
        }
207
 
208
        @Column(name="tip_status", nullable=false)
209
        public String getTipoStatusDigitalizacao() {
210
                return tipoStatusDigitalizacao;
211
        }
212
        public void setTipoStatusDigitalizacao(String tipoStatusDigitalizacao) {
213
                this.tipoStatusDigitalizacao = tipoStatusDigitalizacao;
214
        }
215
 
216
        @Column(name="dth_status", nullable=false)
217
        public Date getDataStatus() {
218
                return dataStatus;
219
        }
220
        public void setDataStatus(Date dataStatus) {
221
                this.dataStatus = dataStatus;
222
        }
223
 
224
        @Column(name="dsc_observacao")
225
        public String getObservacao() {
226
                return observacao;
227
        }
228
        public void setObservacao(String observacao) {
229
                this.observacao = StringUtil.setarUpperCase(observacao);
230
        }
231
 
232
        @Column(name="ind_migracao")
233
        @NotNull(message = "Informe o indicador de migração", groups = {Cadastrar.class, Alterar.class})
234
        public Boolean getIndicadorMigracao() {
235
                return indicadorMigracao;
236
        }
237
        public void setIndicadorMigracao(Boolean indicadorMigracao) {
238
                this.indicadorMigracao = indicadorMigracao;
239
        }
240
 
241
        @Column(name="ind_portabilidade")
242
        @NotNull(message = "Informe o indicador de portabilidade", groups = {Cadastrar.class, Alterar.class})
243
        public Boolean getIndicadorPortabilidade() {
244
                return indicadorPortabilidade;
245
        }
246
        public void setIndicadorPortabilidade(Boolean indicadorPortabilidade) {
247
                this.indicadorPortabilidade = indicadorPortabilidade;
248
        }
249
 
250
        @Column(name="ind_cadastrovivogo")
251
        @NotNull(message = "Informe o indicador de cadastro Vivo Go", groups = {Cadastrar.class, Alterar.class})
252
        public Boolean getIndicadorCadastradoVivoGo() {
253
                return indicadorCadastradoVivoGo;
254
        }
255
        public void setIndicadorCadastradoVivoGo(Boolean indicadorCadastradoVivoGo) {
256
                this.indicadorCadastradoVivoGo = indicadorCadastradoVivoGo;
257
        }
258
 
259
        @Transient
260
        public String getJustificativaParaExcluir() {
261
                return justificativaParaExcluir;
262
        }
263
        public void setJustificativaParaExcluir(String justificativaParaExcluir) {
264
                this.justificativaParaExcluir = StringUtil.setarUpperCase(justificativaParaExcluir);
265
        }
266
 
267
        @Transient
268
        public String getNumeroDaLinha() {
269
                return VerificadorUtil.naoEstaNulo(linhaVivo)? linhaVivo.getNumero() : null;
270
        }
271
 
272
        @Transient
273
        public void setNumeroDaLinha(String numero) {
274
                if (VerificadorUtil.naoEstaNulo(linhaVivo)) {
275
                        linhaVivo.setNumero(numero);
276
                }
277
        }
278
 
279
        @Transient
280
        public Cliente getClienteDaLinha() {
281
                return VerificadorUtil.naoEstaNulo(linhaVivo)? linhaVivo.getCliente() : null;
282
        }
283
 
284
        @Transient
285
        public String getNomeDoClienteDaLinha() {
286
                return VerificadorUtil.naoEstaNulo(getClienteDaLinha())? getClienteDaLinha().getNome() : "";
287
        }
288
 
289
        @Transient
290
        public String getCpfDoClienteDaLinha() {
291
                return VerificadorUtil.naoEstaNulo(getClienteDaLinha())? getClienteDaLinha().getCpfCnpjFormatado() : "";
292
        }
293
 
294
        @Transient
295
        public Long getSequencialDaLoja() {
296
                return VerificadorUtil.naoEstaNulo(loja)? loja.getSequencial() : null;
297
        }
298
 
299
        @Transient
300
        public Long getSequencialDoVendedor() {
301
                return VerificadorUtil.naoEstaNulo(vendedor)? vendedor.getSequencial() : null;
302
        }
303
 
304
        @Transient
305
        public String getNomeDoVendedor() {
306
                return VerificadorUtil.naoEstaNulo(vendedor)? vendedor.getNomeDaPessoa() : null;
307
        }
308
 
309
        @Override
310
        public int hashCode() {
311
                final int prime = 31;
312
                int result = 1;
313
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
314
                return result;
315
        }
316
 
317
        @Override
318
        public boolean equals(Object obj) {
319
                if (this == obj)
320
                        return true;
321
                if (obj == null)
322
                        return false;
323
                if (getClass() != obj.getClass())
324
                        return false;
325
                VendaVivo other = (VendaVivo) obj;
326
                if (sequencial == null) {
327
                        if (other.sequencial != null)
328
                                return false;
329
                } else if (!sequencial.equals(other.sequencial))
330
                        return false;
331
                return true;
332
        }
333
 
334
        @Override
335
        public int compareTo(VendaVivo vendaVivo) {
336
                return vendaVivo.getDataVenda().compareTo(this.dataVenda);
337
        }
338
 
339
        @Transient
340
        public Long getSequencialDaLinha() {
341
                return VerificadorUtil.naoEstaNulo(getLinhaVivo())? getLinhaVivo().getSequencial() : null;
342
        }
343
 
344
        @Transient
345
        public String getTipoStatusDigitalizacaoDescricao() {
346
                return VerificadorUtil.naoEstaNulo(getTipoStatusDigitalizacao()) ? TipoStatusDigitalizacao.parse(getTipoStatusDigitalizacao()).getDescricao() : "";
347
        }
348
 
349
        @Transient
350
        public Boolean naoVerificado() {
351
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoStatusDigitalizacao()) ? getTipoStatusDigitalizacao().equals(TipoStatusDigitalizacao.CONFERINDO.getValor()) : false;
352
        }
353
 
354
        @Transient
355
        public Boolean statusConfirmado() {
356
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoStatusDigitalizacao()) ? getTipoStatusDigitalizacao().equals(TipoStatusDigitalizacao.CONFIRMADO.getValor()) : false;
357
        }
358
 
359
        @Transient
360
        public Boolean emContestacao() {
361
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoStatusDigitalizacao()) ? getTipoStatusDigitalizacao().equals(TipoStatusDigitalizacao.EM_CONTESTACAO.getValor()) : false;
362
        }
363
 
364
        @Transient
365
        public Boolean verificadoComPendencia() {
366
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoStatusDigitalizacao()) ? getTipoStatusDigitalizacao().equals(TipoStatusDigitalizacao.VERIFICADO_COM_PENDENCIAS.getValor()) : false;
367
        }
368
 
369
        @Transient
370
        public Boolean confirmadoSemGED() {
371
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoStatusDigitalizacao()) ? getTipoStatusDigitalizacao().equals(TipoStatusDigitalizacao.CONFIRMADO_SEM_GED.getValor()) : false;
372
        }
373
 
374
        @Transient
375
        public Boolean cancelado() {
376
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoStatusDigitalizacao()) ? getTipoStatusDigitalizacao().equals(TipoStatusDigitalizacao.CANCELADO.getValor()) : false;
377
        }
378
 
379
}