Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
449 blopes 1
package br.com.ec.domain.dto;
2
 
3
import java.io.Serializable;
4
import java.util.Date;
516 blopes 5
import java.util.Objects;
449 blopes 6
 
468 blopes 7
import javax.persistence.Transient;
8
 
462 blopes 9
import br.com.ec.core.util.VerificadorUtil;
449 blopes 10
import br.com.ec.domain.model.Modelo;
616 blopes 11
import br.com.ec.domain.model.SubtipoProduto;
449 blopes 12
import br.com.ec.domain.model.Tributacao;
468 blopes 13
import br.com.ec.domain.model.tipos.TipoCorProduto;
14
import br.com.ec.domain.model.tipos.TipoEstiloProduto;
15
import br.com.ec.domain.model.tipos.TipoProduto;
449 blopes 16
 
17
public class ProdutoDTO implements Serializable {
18
 
19
        private static final long serialVersionUID = 1L;
20
 
21
        private Long sequencial;
22
        private String codigo;
521 blopes 23
        private String codigoRapido;
449 blopes 24
        private String codigoEAN;
25
        private String codigoEANTributado;
26
        private String descricao;
27
        private String tipo;
28
        private String estilo;
29
        private String cor;
468 blopes 30
        private String genero;
449 blopes 31
 
32
        private String codigoNCM;
33
        private String codigoEST;
34
 
35
        private ModeloDTO modeloDTO;
616 blopes 36
        private SubtipoProdutoDTO subtipoProdutoDTO;
482 blopes 37
        private TributacaoDTO tributacaoDTO;
449 blopes 38
 
482 blopes 39
        private Boolean sujeitoST;
40
 
522 blopes 41
        private Boolean ativo;
42
 
43
        private Boolean indicadorRealizarTransferencia;
44
 
449 blopes 45
        /*
46
        private String descricaoEtiqueta;
47
        private String descricaoParaNotaFiscal;
48
        private String genero;
49
        private String observacao;
50
        private Double valorCompra;
51
        private Double valorVarejo;
52
        private Double valorVarejoPromocional;
53
        private Double valorVarejoMaximo;
54
        private Double valorVarejoPopular;
55
        private Double valorAtacado;
56
        private Date dataOnline;
57
        private Date dataOnlineMercadoLivre;
58
        private Boolean indicadorFavorito;
59
        private Boolean indicadorComissionado;
60
        private Boolean indicadorPersonalizavel;
61
        private Boolean indicadorEmissaoNotaFiscal;
62
 
63
//      private Modelo modelo;
64
//      private Tributacao tributacao;
65
 
66
        private Double valorVarejoSimulacao;
482 blopes 67
 
449 blopes 68
        private Double aliquotaIPI;
69
        private Double aliquotaIPINotaFiscal;
70
        private Double aliquotaIcms;
71
        private Double aliquotaIcmsNotaFiscal;
72
        private Double aliquotaIcmsST;
73
        private Double aliquotaFecoep;
74
 
75
 
522 blopes 76
 
449 blopes 77
        private Set<ProdutoPedidoCompra> pedidosCompra;
78
        private Set<ProdutoLoja> estoques;
79
        private Set<FornecedorProduto> fornecedores;
80
        private Set<ProdutoRelacionado> relacionados;
81
        private Set<ProdutoRelacionado> relacionadosReverse;
82
 
83
        private List<TransferenciaProduto> transferenciasAbertas = new ArrayList<TransferenciaProduto>();
84
        private List<PedidoProduto> pedidosPendentes = new ArrayList<PedidoProduto>();
85
 
86
        private Boolean indicadorOnline;
87
        private Boolean indicadorOnlineMercadoLivre;
88
        private Date dataUltimaVenda;*/
89
 
462 blopes 90
        public ProdutoDTO() {}
91
 
619 blopes 92
        public static String CONSULTA_DTO_SIMPLES_COM_MODELO_E_SUBTIPO = "e.sequencial, e.codigo, e.codigoEAN, e.descricao, e.tipo, e.estilo, e.cor, e.genero, "
93
                        + "e.ativo, "
94
                        + " (SELECT st.sequencial FROM SubtipoProduto st WHERE st.sequencial = e.subtipoProduto.sequencial), "
95
                        + " (SELECT mo.descricao FROM Modelo mo WHERE mo.sequencial = e.modelo.sequencial), "
96
                        + " (SELECT m.descricao FROM Marca m WHERE m.sequencial = e.modelo.marca.sequencial)";
97
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto,
98
                        String generoProduto, Boolean ativo, Long sequencialSubtipoProduto, String descricaoModelo, String descricaoMarca) {
99
                super();
100
                this.sequencial = sequencial;
101
                this.codigo = codigo;
102
                this.codigoEAN = codigoEAN;
103
                this.descricao = descricao;
104
                this.tipo = tipoProduto;
105
                this.estilo= estiloProduto;
106
                this.cor = corProduto;
107
                this.genero = generoProduto;
108
                this.ativo = ativo;
109
                this.subtipoProdutoDTO = new SubtipoProdutoDTO(sequencialSubtipoProduto, null);
110
                this.modeloDTO = new ModeloDTO(null, descricaoModelo, new MarcaDTO(null, descricaoMarca));
111
        }
112
 
468 blopes 113
        public static String CONSULTA_DTO_SIMPLES_COM_MODELO = "e.sequencial, e.codigo, e.codigoEAN, e.descricao, e.tipo, e.estilo, e.cor, e.genero, "
522 blopes 114
                        + "e.ativo, "
462 blopes 115
                        + " (SELECT mo.descricao FROM Modelo mo WHERE mo.sequencial = e.modelo.sequencial), "
116
                        + " (SELECT m.descricao FROM Marca m WHERE m.sequencial = e.modelo.marca.sequencial)";
117
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto,
522 blopes 118
                        String generoProduto, Boolean ativo, String descricaoModelo, String descricaoMarca) {
462 blopes 119
                super();
120
                this.sequencial = sequencial;
121
                this.codigo = codigo;
122
                this.codigoEAN = codigoEAN;
123
                this.descricao = descricao;
124
                this.tipo = tipoProduto;
125
                this.estilo= estiloProduto;
126
                this.cor = corProduto;
468 blopes 127
                this.genero = generoProduto;
522 blopes 128
                this.ativo = ativo;
462 blopes 129
                this.modeloDTO = new ModeloDTO(null, descricaoModelo, new MarcaDTO(null, descricaoMarca));
130
        }
131
 
132
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto) {
133
                super();
134
                this.sequencial = sequencial;
135
                this.codigo = codigo;
136
                this.codigoEAN = codigoEAN;
137
                this.descricao = descricao;
138
                this.tipo = tipoProduto;
139
                this.estilo= estiloProduto;
140
                this.cor = corProduto;
141
        }
142
 
449 blopes 143
        public ProdutoDTO(Long sequencialProduto, String codigo,
144
                        String codigoEAN, String codigoEANTributado, String descricao, String tipoProduto, String estiloProduto,
145
                        String cor) {
146
                this.codigo = codigo;
147
                this.codigoEAN = codigoEAN;
148
                this.codigoEANTributado = codigoEANTributado;
149
                this.descricao = descricao;
150
                this.tipo = tipoProduto;
151
                this.estilo = estiloProduto;
152
                this.cor = cor;
153
        }
154
 
500 blopes 155
        public ProdutoDTO(Long sequencial, String codigo, String tipo, ModeloDTO modeloDTO, String estilo, String descricao, String cor, String codigoEAN) {
468 blopes 156
                this.sequencial = sequencial;
157
                this.codigo = codigo;
158
                this.tipo = tipo;
159
                this.modeloDTO = modeloDTO;
160
                this.estilo = estilo;
161
                this.descricao = descricao;
162
                this.cor = cor;
500 blopes 163
                this.codigoEAN = codigoEAN;
468 blopes 164
        }
165
 
616 blopes 166
        public ProdutoDTO(Long sequencial, String codigo, String descricao, Long sequencialSubtipoProduto, String descricaoSubtipoProduto) {
167
                this.sequencial = sequencial;
168
                this.codigo = codigo;
169
                this.descricao = descricao;
170
                this.subtipoProdutoDTO = new SubtipoProdutoDTO(sequencialSubtipoProduto, descricaoSubtipoProduto);
171
        }
172
 
516 blopes 173
        public ProdutoDTO(Long sequencial, String codigo, String descricao) {
174
                this.sequencial = sequencial;
175
                this.codigo = codigo;
176
                this.descricao = descricao;
177
        }
178
 
179
        public ProdutoDTO(Long sequencial) {
180
                this.sequencial = sequencial;
181
        }
182
 
449 blopes 183
        /*
184
        public static String CONSULTA_DTO_COMPLETA = "e.sequencial, e.notaFiscal.sequencial, e.produto.sequencial, "
185
                        + "e.quantidade";
186
        public ProdutoDTO(Long sequencial, Long sequencialNotaFiscal, Long sequencialProduto, Integer quantidade) {
187
                super();
188
                this.sequencial = sequencial;
189
                this.sequencialNotaFiscal = sequencialNotaFiscal;
190
                this.sequencialProduto = sequencialProduto;
191
                this.quantidade = quantidade;
192
        }
193
*/
194
 
195
        public Long getSequencial() {
196
                return sequencial;
197
        }
198
        public void setSequencial(Long sequencial) {
199
                this.sequencial = sequencial;
200
        }
201
 
202
        public String getCodigo() {
203
                return codigo;
204
        }
205
        public void setCodigo(String codigo) {
206
                this.codigo = codigo;
207
        }
521 blopes 208
 
209
        public String getCodigoRapido() {
210
                return codigoRapido;
211
        }
212
        public void setCodigoRapido(String codigoRapido) {
213
                this.codigoRapido = codigoRapido;
214
        }
215
 
449 blopes 216
        public String getCodigoEAN() {
217
                return codigoEAN;
218
        }
219
        public void setCodigoEAN(String codigoEAN) {
220
                this.codigoEAN = codigoEAN;
221
        }
222
 
223
        public String getCodigoEANTributado() {
224
                return codigoEANTributado;
225
        }
226
        public void setCodigoEANTributado(String codigoEANTributado) {
227
                this.codigoEANTributado = codigoEANTributado;
228
        }
229
 
230
        public String getDescricao() {
231
                return descricao;
232
        }
233
        public void setDescricao(String descricao) {
234
                this.descricao = descricao;
235
        }
236
 
237
        public String getTipo() {
238
                return tipo;
239
        }
240
        public void setTipo(String tipo) {
241
                this.tipo = tipo;
242
        }
243
 
244
        public String getEstilo() {
245
                return estilo;
246
        }
247
        public void setEstilo(String estilo) {
248
                this.estilo = estilo;
249
        }
468 blopes 250
        public String getDescricaoDoEstilo() {
251
                return VerificadorUtil.naoEstaNuloOuVazio(getEstilo())? TipoEstiloProduto.parse(getEstilo()).getDescricao() : null;
252
        }
449 blopes 253
 
254
        public String getCor() {
255
                return cor;
256
        }
257
        public void setCor(String cor) {
258
                this.cor = cor;
259
        }
468 blopes 260
        public String getDescricaoDaCor() {
261
                return VerificadorUtil.naoEstaNuloOuVazio(getCor())? TipoCorProduto.parse(getCor()).getDescricao() : null;
262
        }
263
 
264
        public String getGenero() {
265
                return genero;
266
        }
267
        public void setGenero(String genero) {
268
                this.genero = genero;
269
        }
449 blopes 270
 
271
        public String getCodigoNCM() {
272
                return codigoNCM;
273
        }
274
        public void setCodigoNCM(String codigoNCM) {
275
                this.codigoNCM = codigoNCM;
276
        }
277
 
278
        public String getCodigoEST() {
279
                return codigoEST;
280
        }
281
        public void setCodigoEST(String codigoEST) {
282
                this.codigoEST = codigoEST;
283
        }
284
 
285
        public ModeloDTO getModeloDTO() {
286
                return modeloDTO;
287
        }
288
        public void setModeloDTO(ModeloDTO modeloDTO) {
289
                this.modeloDTO = modeloDTO;
290
        }
468 blopes 291
        public String getDescricaoDoModelo() {
292
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getDescricao() : "";
293
        }
449 blopes 294
 
468 blopes 295
        public MarcaDTO getMarcaDTODoModelo() {
296
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getMarcaDTO() : null;
297
        }
298
 
616 blopes 299
        public SubtipoProdutoDTO getSubtipoProdutoDTO() {
300
                return subtipoProdutoDTO;
301
        }
302
        public void setSubtipoProdutoDTO(SubtipoProdutoDTO subtipoProdutoDTO) {
303
                this.subtipoProdutoDTO = subtipoProdutoDTO;
304
        }
619 blopes 305
        public Long getSequencialDoSubtipoProdutoDTO() {
306
                return VerificadorUtil.naoEstaNulo(getSubtipoProdutoDTO())? getSubtipoProdutoDTO().getSequencial() : null;
307
        }
616 blopes 308
 
482 blopes 309
        public TributacaoDTO getTributacaoDTO() {
310
                return tributacaoDTO;
311
        }
312
        public void setTributacaoDTO(TributacaoDTO tributacaoDTO) {
313
                this.tributacaoDTO = tributacaoDTO;
314
        }
315
 
316
        public String getCodigoNCMDaTributacao() {
317
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoNCM() : null;
318
        }
319
 
320
        public String getCodigoESTDaTributacao() {
321
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoEST() : null;
322
        }
323
 
324
        public Boolean getSujeitoST() {
325
                return sujeitoST;
326
        }
327
        public void setSujeitoST(Boolean sujeitoST) {
328
                this.sujeitoST = sujeitoST;
329
        }
330
 
522 blopes 331
        public Boolean getAtivo() {
332
                return ativo;
333
        }
334
        public void setAtivo(Boolean ativo) {
335
                this.ativo = ativo;
336
        }
337
 
338
        public Boolean getIndicadorRealizarTransferencia() {
339
                return indicadorRealizarTransferencia;
340
        }
341
        public void setIndicadorRealizarTransferencia(Boolean indicadorRealizarTransferencia) {
342
                this.indicadorRealizarTransferencia = indicadorRealizarTransferencia;
343
        }
344
 
462 blopes 345
        /***************************************/
346
 
468 blopes 347
        public String getCodigoProdutoPadrao() {
348
                try {
349
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
350
                } catch (Exception e) {
351
                        return "";
352
                }
353
        }
354
 
462 blopes 355
        public static String retornarCodigoProdutoPadrao(String codigo) {
356
                try {
357
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
358
                } catch (Exception e) {
359
                        return "";
360
                }
361
        }
362
 
468 blopes 363
        public String getDescricaoNotaFiscal(String observacaoNotaFiscal) {
364
                StringBuilder descricaoCompleta = new StringBuilder();
365
                if (this.getTipo().equals(TipoProduto.CAPA.getValor())) {
366
                        descricaoCompleta.append("CAPA");
367
                }
368
                if (!this.getTipo().equals(TipoProduto.ACESSORIO.getValor())) {
369
                        descricaoCompleta.append(" ");
370
                        descricaoCompleta.append(this.getDescricaoDoModelo());
371
                }
372
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getEstilo())) {
373
                        descricaoCompleta.append(" ");
374
                        descricaoCompleta.append(this.getDescricaoDoEstilo());
375
                }
376
                descricaoCompleta.append(" ");
377
                if (this.getDescricao().length() > 50) {
378
                        descricaoCompleta.append(this.getDescricao().substring(0, 50));
379
                } else {
380
                        descricaoCompleta.append(this.getDescricao());
381
                }
382
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getCor())) {
383
                        descricaoCompleta.append(" (");
384
                        descricaoCompleta.append(this.getDescricaoDaCor());
385
                        descricaoCompleta.append(")");
386
                }
387
                if (VerificadorUtil.naoEstaNuloOuVazio(observacaoNotaFiscal)) {
388
                        descricaoCompleta.append(" ");
389
                        descricaoCompleta.append(observacaoNotaFiscal);
390
                }
391
                return descricaoCompleta.toString().trim();
392
        }
393
 
394
        public String getDescricaoCompleta() {
395
                StringBuilder descricaoCompleta = new StringBuilder();
396
                if (VerificadorUtil.naoEstaNuloOuVazio(getEstilo())) {
397
                        descricaoCompleta.append(getDescricaoDoEstilo());
398
                        descricaoCompleta.append(" ");
399
                }
400
                descricaoCompleta.append(getDescricao());
401
                if (VerificadorUtil.naoEstaNuloOuVazio(getCor())) {
402
                        descricaoCompleta.append(" (");
403
                        descricaoCompleta.append(getDescricaoDaCor());
404
                        descricaoCompleta.append(")");
405
                }
406
                return descricaoCompleta.toString();
407
        }
408
 
522 blopes 409
        public String getDescricaoComModeloCompleta() {
410
                StringBuilder descricaoCompleta = new StringBuilder();
411
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
412
                        descricaoCompleta.append(getDescricaoDoModelo());
413
                        descricaoCompleta.append(" - ");
414
                }
415
                descricaoCompleta.append(getDescricaoCompleta());
416
                return descricaoCompleta.toString();
417
        }
418
 
468 blopes 419
        public String getDescricaoComModeloCompletaComCodigo() {
420
                StringBuilder descricaoCompleta = new StringBuilder();
421
                descricaoCompleta.append("[");
422
                descricaoCompleta.append(getCodigoProdutoPadrao());
423
                descricaoCompleta.append("] ");
424
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
425
                        descricaoCompleta.append(getDescricaoDoModelo());
426
                        descricaoCompleta.append(" - ");
427
                }
428
                descricaoCompleta.append(getDescricaoCompleta());
429
                return descricaoCompleta.toString();
430
        }
431
 
432
        public String getDescricaoTecnicaDoModeloComParenteses() {
433
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? VerificadorUtil.naoEstaNulo(getModeloDTO().getDescricaoTecnica())? " (" + getModeloDTO().getDescricaoTecnica() + ") " : "" : "";
434
        }
435
 
436
        @Transient
437
        public String getDescricaoDaMarcaDoModelo() {
438
                return VerificadorUtil.naoEstaNulo(getMarcaDTODoModelo())? getMarcaDTODoModelo().getDescricao() : "";
439
        }
516 blopes 440
 
441
        @Override
442
        public int hashCode() {
443
                return Objects.hash(sequencial);
444
        }
445
 
446
        @Override
447
        public boolean equals(Object obj) {
448
                if (this == obj)
449
                        return true;
450
                if (obj == null)
451
                        return false;
452
                if (getClass() != obj.getClass())
453
                        return false;
454
                ProdutoDTO other = (ProdutoDTO) obj;
455
                return Objects.equals(sequencial, other.sequencial);
456
        }
468 blopes 457
 
449 blopes 458
}