Subversion Repositories Integrator Subversion

Rev

Rev 607 | Go to most recent revision | 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
 
468 blopes 92
        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 93
                        + "e.ativo, "
462 blopes 94
                        + " (SELECT mo.descricao FROM Modelo mo WHERE mo.sequencial = e.modelo.sequencial), "
95
                        + " (SELECT m.descricao FROM Marca m WHERE m.sequencial = e.modelo.marca.sequencial)";
96
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto,
522 blopes 97
                        String generoProduto, Boolean ativo, String descricaoModelo, String descricaoMarca) {
462 blopes 98
                super();
99
                this.sequencial = sequencial;
100
                this.codigo = codigo;
101
                this.codigoEAN = codigoEAN;
102
                this.descricao = descricao;
103
                this.tipo = tipoProduto;
104
                this.estilo= estiloProduto;
105
                this.cor = corProduto;
468 blopes 106
                this.genero = generoProduto;
522 blopes 107
                this.ativo = ativo;
462 blopes 108
                this.modeloDTO = new ModeloDTO(null, descricaoModelo, new MarcaDTO(null, descricaoMarca));
109
        }
110
 
111
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto) {
112
                super();
113
                this.sequencial = sequencial;
114
                this.codigo = codigo;
115
                this.codigoEAN = codigoEAN;
116
                this.descricao = descricao;
117
                this.tipo = tipoProduto;
118
                this.estilo= estiloProduto;
119
                this.cor = corProduto;
120
        }
121
 
449 blopes 122
        public ProdutoDTO(Long sequencialProduto, String codigo,
123
                        String codigoEAN, String codigoEANTributado, String descricao, String tipoProduto, String estiloProduto,
124
                        String cor) {
125
                this.codigo = codigo;
126
                this.codigoEAN = codigoEAN;
127
                this.codigoEANTributado = codigoEANTributado;
128
                this.descricao = descricao;
129
                this.tipo = tipoProduto;
130
                this.estilo = estiloProduto;
131
                this.cor = cor;
132
        }
133
 
500 blopes 134
        public ProdutoDTO(Long sequencial, String codigo, String tipo, ModeloDTO modeloDTO, String estilo, String descricao, String cor, String codigoEAN) {
468 blopes 135
                this.sequencial = sequencial;
136
                this.codigo = codigo;
137
                this.tipo = tipo;
138
                this.modeloDTO = modeloDTO;
139
                this.estilo = estilo;
140
                this.descricao = descricao;
141
                this.cor = cor;
500 blopes 142
                this.codigoEAN = codigoEAN;
468 blopes 143
        }
144
 
616 blopes 145
        public ProdutoDTO(Long sequencial, String codigo, String descricao, Long sequencialSubtipoProduto, String descricaoSubtipoProduto) {
146
                this.sequencial = sequencial;
147
                this.codigo = codigo;
148
                this.descricao = descricao;
149
                this.subtipoProdutoDTO = new SubtipoProdutoDTO(sequencialSubtipoProduto, descricaoSubtipoProduto);
150
        }
151
 
516 blopes 152
        public ProdutoDTO(Long sequencial, String codigo, String descricao) {
153
                this.sequencial = sequencial;
154
                this.codigo = codigo;
155
                this.descricao = descricao;
156
        }
157
 
158
        public ProdutoDTO(Long sequencial) {
159
                this.sequencial = sequencial;
160
        }
161
 
449 blopes 162
        /*
163
        public static String CONSULTA_DTO_COMPLETA = "e.sequencial, e.notaFiscal.sequencial, e.produto.sequencial, "
164
                        + "e.quantidade";
165
        public ProdutoDTO(Long sequencial, Long sequencialNotaFiscal, Long sequencialProduto, Integer quantidade) {
166
                super();
167
                this.sequencial = sequencial;
168
                this.sequencialNotaFiscal = sequencialNotaFiscal;
169
                this.sequencialProduto = sequencialProduto;
170
                this.quantidade = quantidade;
171
        }
172
*/
173
 
174
        public Long getSequencial() {
175
                return sequencial;
176
        }
177
        public void setSequencial(Long sequencial) {
178
                this.sequencial = sequencial;
179
        }
180
 
181
        public String getCodigo() {
182
                return codigo;
183
        }
184
        public void setCodigo(String codigo) {
185
                this.codigo = codigo;
186
        }
521 blopes 187
 
188
        public String getCodigoRapido() {
189
                return codigoRapido;
190
        }
191
        public void setCodigoRapido(String codigoRapido) {
192
                this.codigoRapido = codigoRapido;
193
        }
194
 
449 blopes 195
        public String getCodigoEAN() {
196
                return codigoEAN;
197
        }
198
        public void setCodigoEAN(String codigoEAN) {
199
                this.codigoEAN = codigoEAN;
200
        }
201
 
202
        public String getCodigoEANTributado() {
203
                return codigoEANTributado;
204
        }
205
        public void setCodigoEANTributado(String codigoEANTributado) {
206
                this.codigoEANTributado = codigoEANTributado;
207
        }
208
 
209
        public String getDescricao() {
210
                return descricao;
211
        }
212
        public void setDescricao(String descricao) {
213
                this.descricao = descricao;
214
        }
215
 
216
        public String getTipo() {
217
                return tipo;
218
        }
219
        public void setTipo(String tipo) {
220
                this.tipo = tipo;
221
        }
222
 
223
        public String getEstilo() {
224
                return estilo;
225
        }
226
        public void setEstilo(String estilo) {
227
                this.estilo = estilo;
228
        }
468 blopes 229
        public String getDescricaoDoEstilo() {
230
                return VerificadorUtil.naoEstaNuloOuVazio(getEstilo())? TipoEstiloProduto.parse(getEstilo()).getDescricao() : null;
231
        }
449 blopes 232
 
233
        public String getCor() {
234
                return cor;
235
        }
236
        public void setCor(String cor) {
237
                this.cor = cor;
238
        }
468 blopes 239
        public String getDescricaoDaCor() {
240
                return VerificadorUtil.naoEstaNuloOuVazio(getCor())? TipoCorProduto.parse(getCor()).getDescricao() : null;
241
        }
242
 
243
        public String getGenero() {
244
                return genero;
245
        }
246
        public void setGenero(String genero) {
247
                this.genero = genero;
248
        }
449 blopes 249
 
250
        public String getCodigoNCM() {
251
                return codigoNCM;
252
        }
253
        public void setCodigoNCM(String codigoNCM) {
254
                this.codigoNCM = codigoNCM;
255
        }
256
 
257
        public String getCodigoEST() {
258
                return codigoEST;
259
        }
260
        public void setCodigoEST(String codigoEST) {
261
                this.codigoEST = codigoEST;
262
        }
263
 
264
        public ModeloDTO getModeloDTO() {
265
                return modeloDTO;
266
        }
267
        public void setModeloDTO(ModeloDTO modeloDTO) {
268
                this.modeloDTO = modeloDTO;
269
        }
468 blopes 270
        public String getDescricaoDoModelo() {
271
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getDescricao() : "";
272
        }
449 blopes 273
 
468 blopes 274
        public MarcaDTO getMarcaDTODoModelo() {
275
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getMarcaDTO() : null;
276
        }
277
 
616 blopes 278
        public SubtipoProdutoDTO getSubtipoProdutoDTO() {
279
                return subtipoProdutoDTO;
280
        }
281
        public void setSubtipoProdutoDTO(SubtipoProdutoDTO subtipoProdutoDTO) {
282
                this.subtipoProdutoDTO = subtipoProdutoDTO;
283
        }
284
 
482 blopes 285
        public TributacaoDTO getTributacaoDTO() {
286
                return tributacaoDTO;
287
        }
288
        public void setTributacaoDTO(TributacaoDTO tributacaoDTO) {
289
                this.tributacaoDTO = tributacaoDTO;
290
        }
291
 
292
        public String getCodigoNCMDaTributacao() {
293
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoNCM() : null;
294
        }
295
 
296
        public String getCodigoESTDaTributacao() {
297
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoEST() : null;
298
        }
299
 
300
        public Boolean getSujeitoST() {
301
                return sujeitoST;
302
        }
303
        public void setSujeitoST(Boolean sujeitoST) {
304
                this.sujeitoST = sujeitoST;
305
        }
306
 
522 blopes 307
        public Boolean getAtivo() {
308
                return ativo;
309
        }
310
        public void setAtivo(Boolean ativo) {
311
                this.ativo = ativo;
312
        }
313
 
314
        public Boolean getIndicadorRealizarTransferencia() {
315
                return indicadorRealizarTransferencia;
316
        }
317
        public void setIndicadorRealizarTransferencia(Boolean indicadorRealizarTransferencia) {
318
                this.indicadorRealizarTransferencia = indicadorRealizarTransferencia;
319
        }
320
 
462 blopes 321
        /***************************************/
322
 
468 blopes 323
        public String getCodigoProdutoPadrao() {
324
                try {
325
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
326
                } catch (Exception e) {
327
                        return "";
328
                }
329
        }
330
 
462 blopes 331
        public static String retornarCodigoProdutoPadrao(String codigo) {
332
                try {
333
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
334
                } catch (Exception e) {
335
                        return "";
336
                }
337
        }
338
 
468 blopes 339
        public String getDescricaoNotaFiscal(String observacaoNotaFiscal) {
340
                StringBuilder descricaoCompleta = new StringBuilder();
341
                if (this.getTipo().equals(TipoProduto.CAPA.getValor())) {
342
                        descricaoCompleta.append("CAPA");
343
                }
344
                if (!this.getTipo().equals(TipoProduto.ACESSORIO.getValor())) {
345
                        descricaoCompleta.append(" ");
346
                        descricaoCompleta.append(this.getDescricaoDoModelo());
347
                }
348
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getEstilo())) {
349
                        descricaoCompleta.append(" ");
350
                        descricaoCompleta.append(this.getDescricaoDoEstilo());
351
                }
352
                descricaoCompleta.append(" ");
353
                if (this.getDescricao().length() > 50) {
354
                        descricaoCompleta.append(this.getDescricao().substring(0, 50));
355
                } else {
356
                        descricaoCompleta.append(this.getDescricao());
357
                }
358
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getCor())) {
359
                        descricaoCompleta.append(" (");
360
                        descricaoCompleta.append(this.getDescricaoDaCor());
361
                        descricaoCompleta.append(")");
362
                }
363
                if (VerificadorUtil.naoEstaNuloOuVazio(observacaoNotaFiscal)) {
364
                        descricaoCompleta.append(" ");
365
                        descricaoCompleta.append(observacaoNotaFiscal);
366
                }
367
                return descricaoCompleta.toString().trim();
368
        }
369
 
370
        public String getDescricaoCompleta() {
371
                StringBuilder descricaoCompleta = new StringBuilder();
372
                if (VerificadorUtil.naoEstaNuloOuVazio(getEstilo())) {
373
                        descricaoCompleta.append(getDescricaoDoEstilo());
374
                        descricaoCompleta.append(" ");
375
                }
376
                descricaoCompleta.append(getDescricao());
377
                if (VerificadorUtil.naoEstaNuloOuVazio(getCor())) {
378
                        descricaoCompleta.append(" (");
379
                        descricaoCompleta.append(getDescricaoDaCor());
380
                        descricaoCompleta.append(")");
381
                }
382
                return descricaoCompleta.toString();
383
        }
384
 
522 blopes 385
        public String getDescricaoComModeloCompleta() {
386
                StringBuilder descricaoCompleta = new StringBuilder();
387
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
388
                        descricaoCompleta.append(getDescricaoDoModelo());
389
                        descricaoCompleta.append(" - ");
390
                }
391
                descricaoCompleta.append(getDescricaoCompleta());
392
                return descricaoCompleta.toString();
393
        }
394
 
468 blopes 395
        public String getDescricaoComModeloCompletaComCodigo() {
396
                StringBuilder descricaoCompleta = new StringBuilder();
397
                descricaoCompleta.append("[");
398
                descricaoCompleta.append(getCodigoProdutoPadrao());
399
                descricaoCompleta.append("] ");
400
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
401
                        descricaoCompleta.append(getDescricaoDoModelo());
402
                        descricaoCompleta.append(" - ");
403
                }
404
                descricaoCompleta.append(getDescricaoCompleta());
405
                return descricaoCompleta.toString();
406
        }
407
 
408
        public String getDescricaoTecnicaDoModeloComParenteses() {
409
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? VerificadorUtil.naoEstaNulo(getModeloDTO().getDescricaoTecnica())? " (" + getModeloDTO().getDescricaoTecnica() + ") " : "" : "";
410
        }
411
 
412
        @Transient
413
        public String getDescricaoDaMarcaDoModelo() {
414
                return VerificadorUtil.naoEstaNulo(getMarcaDTODoModelo())? getMarcaDTODoModelo().getDescricao() : "";
415
        }
516 blopes 416
 
417
        @Override
418
        public int hashCode() {
419
                return Objects.hash(sequencial);
420
        }
421
 
422
        @Override
423
        public boolean equals(Object obj) {
424
                if (this == obj)
425
                        return true;
426
                if (obj == null)
427
                        return false;
428
                if (getClass() != obj.getClass())
429
                        return false;
430
                ProdutoDTO other = (ProdutoDTO) obj;
431
                return Objects.equals(sequencial, other.sequencial);
432
        }
468 blopes 433
 
449 blopes 434
}