Subversion Repositories Integrator Subversion

Rev

Rev 521 | 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;
11
import br.com.ec.domain.model.Tributacao;
468 blopes 12
import br.com.ec.domain.model.tipos.TipoCorProduto;
13
import br.com.ec.domain.model.tipos.TipoEstiloProduto;
14
import br.com.ec.domain.model.tipos.TipoProduto;
449 blopes 15
 
16
public class ProdutoDTO implements Serializable {
17
 
18
        private static final long serialVersionUID = 1L;
19
 
20
        private Long sequencial;
21
        private String codigo;
521 blopes 22
        private String codigoRapido;
449 blopes 23
        private String codigoEAN;
24
        private String codigoEANTributado;
25
        private String descricao;
26
        private String tipo;
27
        private String estilo;
28
        private String cor;
468 blopes 29
        private String genero;
449 blopes 30
 
31
        private String codigoNCM;
32
        private String codigoEST;
33
 
34
        private ModeloDTO modeloDTO;
482 blopes 35
        private TributacaoDTO tributacaoDTO;
449 blopes 36
 
482 blopes 37
        private Boolean sujeitoST;
38
 
522 blopes 39
        private Boolean ativo;
40
 
41
        private Boolean indicadorRealizarTransferencia;
42
 
449 blopes 43
        /*
44
        private String descricaoEtiqueta;
45
        private String descricaoParaNotaFiscal;
46
        private String genero;
47
        private String observacao;
48
        private Double valorCompra;
49
        private Double valorVarejo;
50
        private Double valorVarejoPromocional;
51
        private Double valorVarejoMaximo;
52
        private Double valorVarejoPopular;
53
        private Double valorAtacado;
54
        private Date dataOnline;
55
        private Date dataOnlineShoplog;
56
        private Date dataOnlineMercadoLivre;
57
        private Boolean indicadorFavorito;
58
        private Boolean indicadorComissionado;
59
        private Boolean indicadorPersonalizavel;
60
        private Boolean indicadorEmissaoNotaFiscal;
61
 
62
//      private Modelo modelo;
63
//      private Tributacao tributacao;
64
 
65
        private Double valorVarejoSimulacao;
482 blopes 66
 
449 blopes 67
        private Double aliquotaIPI;
68
        private Double aliquotaIPINotaFiscal;
69
        private Double aliquotaIcms;
70
        private Double aliquotaIcmsNotaFiscal;
71
        private Double aliquotaIcmsST;
72
        private Double aliquotaFecoep;
73
 
74
 
522 blopes 75
 
449 blopes 76
        private Set<ProdutoPedidoCompra> pedidosCompra;
77
        private Set<ProdutoLoja> estoques;
78
        private Set<FornecedorProduto> fornecedores;
79
        private Set<ProdutoRelacionado> relacionados;
80
        private Set<ProdutoRelacionado> relacionadosReverse;
81
 
82
        private List<TransferenciaProduto> transferenciasAbertas = new ArrayList<TransferenciaProduto>();
83
        private List<PedidoProduto> pedidosPendentes = new ArrayList<PedidoProduto>();
84
 
85
        private Boolean indicadorOnline;
86
        private Boolean indicadorOnlineShoplog;
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
 
516 blopes 145
        public ProdutoDTO(Long sequencial, String codigo, String descricao) {
146
                this.sequencial = sequencial;
147
                this.codigo = codigo;
148
                this.descricao = descricao;
149
        }
150
 
151
        public ProdutoDTO(Long sequencial) {
152
                this.sequencial = sequencial;
153
        }
154
 
449 blopes 155
        /*
156
        public static String CONSULTA_DTO_COMPLETA = "e.sequencial, e.notaFiscal.sequencial, e.produto.sequencial, "
157
                        + "e.quantidade";
158
        public ProdutoDTO(Long sequencial, Long sequencialNotaFiscal, Long sequencialProduto, Integer quantidade) {
159
                super();
160
                this.sequencial = sequencial;
161
                this.sequencialNotaFiscal = sequencialNotaFiscal;
162
                this.sequencialProduto = sequencialProduto;
163
                this.quantidade = quantidade;
164
        }
165
*/
166
 
167
        public Long getSequencial() {
168
                return sequencial;
169
        }
170
        public void setSequencial(Long sequencial) {
171
                this.sequencial = sequencial;
172
        }
173
 
174
        public String getCodigo() {
175
                return codigo;
176
        }
177
        public void setCodigo(String codigo) {
178
                this.codigo = codigo;
179
        }
521 blopes 180
 
181
        public String getCodigoRapido() {
182
                return codigoRapido;
183
        }
184
        public void setCodigoRapido(String codigoRapido) {
185
                this.codigoRapido = codigoRapido;
186
        }
187
 
449 blopes 188
        public String getCodigoEAN() {
189
                return codigoEAN;
190
        }
191
        public void setCodigoEAN(String codigoEAN) {
192
                this.codigoEAN = codigoEAN;
193
        }
194
 
195
        public String getCodigoEANTributado() {
196
                return codigoEANTributado;
197
        }
198
        public void setCodigoEANTributado(String codigoEANTributado) {
199
                this.codigoEANTributado = codigoEANTributado;
200
        }
201
 
202
        public String getDescricao() {
203
                return descricao;
204
        }
205
        public void setDescricao(String descricao) {
206
                this.descricao = descricao;
207
        }
208
 
209
        public String getTipo() {
210
                return tipo;
211
        }
212
        public void setTipo(String tipo) {
213
                this.tipo = tipo;
214
        }
215
 
216
        public String getEstilo() {
217
                return estilo;
218
        }
219
        public void setEstilo(String estilo) {
220
                this.estilo = estilo;
221
        }
468 blopes 222
        public String getDescricaoDoEstilo() {
223
                return VerificadorUtil.naoEstaNuloOuVazio(getEstilo())? TipoEstiloProduto.parse(getEstilo()).getDescricao() : null;
224
        }
449 blopes 225
 
226
        public String getCor() {
227
                return cor;
228
        }
229
        public void setCor(String cor) {
230
                this.cor = cor;
231
        }
468 blopes 232
        public String getDescricaoDaCor() {
233
                return VerificadorUtil.naoEstaNuloOuVazio(getCor())? TipoCorProduto.parse(getCor()).getDescricao() : null;
234
        }
235
 
236
        public String getGenero() {
237
                return genero;
238
        }
239
        public void setGenero(String genero) {
240
                this.genero = genero;
241
        }
449 blopes 242
 
243
        public String getCodigoNCM() {
244
                return codigoNCM;
245
        }
246
        public void setCodigoNCM(String codigoNCM) {
247
                this.codigoNCM = codigoNCM;
248
        }
249
 
250
        public String getCodigoEST() {
251
                return codigoEST;
252
        }
253
        public void setCodigoEST(String codigoEST) {
254
                this.codigoEST = codigoEST;
255
        }
256
 
257
        public ModeloDTO getModeloDTO() {
258
                return modeloDTO;
259
        }
260
        public void setModeloDTO(ModeloDTO modeloDTO) {
261
                this.modeloDTO = modeloDTO;
262
        }
468 blopes 263
        public String getDescricaoDoModelo() {
264
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getDescricao() : "";
265
        }
449 blopes 266
 
468 blopes 267
        public MarcaDTO getMarcaDTODoModelo() {
268
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getMarcaDTO() : null;
269
        }
270
 
482 blopes 271
        public TributacaoDTO getTributacaoDTO() {
272
                return tributacaoDTO;
273
        }
274
        public void setTributacaoDTO(TributacaoDTO tributacaoDTO) {
275
                this.tributacaoDTO = tributacaoDTO;
276
        }
277
 
278
        public String getCodigoNCMDaTributacao() {
279
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoNCM() : null;
280
        }
281
 
282
        public String getCodigoESTDaTributacao() {
283
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoEST() : null;
284
        }
285
 
286
        public Boolean getSujeitoST() {
287
                return sujeitoST;
288
        }
289
        public void setSujeitoST(Boolean sujeitoST) {
290
                this.sujeitoST = sujeitoST;
291
        }
292
 
522 blopes 293
        public Boolean getAtivo() {
294
                return ativo;
295
        }
296
        public void setAtivo(Boolean ativo) {
297
                this.ativo = ativo;
298
        }
299
 
300
        public Boolean getIndicadorRealizarTransferencia() {
301
                return indicadorRealizarTransferencia;
302
        }
303
        public void setIndicadorRealizarTransferencia(Boolean indicadorRealizarTransferencia) {
304
                this.indicadorRealizarTransferencia = indicadorRealizarTransferencia;
305
        }
306
 
462 blopes 307
        /***************************************/
308
 
468 blopes 309
        public String getCodigoProdutoPadrao() {
310
                try {
311
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
312
                } catch (Exception e) {
313
                        return "";
314
                }
315
        }
316
 
462 blopes 317
        public static String retornarCodigoProdutoPadrao(String codigo) {
318
                try {
319
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
320
                } catch (Exception e) {
321
                        return "";
322
                }
323
        }
324
 
468 blopes 325
        public String getDescricaoNotaFiscal(String observacaoNotaFiscal) {
326
                StringBuilder descricaoCompleta = new StringBuilder();
327
                if (this.getTipo().equals(TipoProduto.CAPA.getValor())) {
328
                        descricaoCompleta.append("CAPA");
329
                }
330
                if (!this.getTipo().equals(TipoProduto.ACESSORIO.getValor())) {
331
                        descricaoCompleta.append(" ");
332
                        descricaoCompleta.append(this.getDescricaoDoModelo());
333
                }
334
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getEstilo())) {
335
                        descricaoCompleta.append(" ");
336
                        descricaoCompleta.append(this.getDescricaoDoEstilo());
337
                }
338
                descricaoCompleta.append(" ");
339
                if (this.getDescricao().length() > 50) {
340
                        descricaoCompleta.append(this.getDescricao().substring(0, 50));
341
                } else {
342
                        descricaoCompleta.append(this.getDescricao());
343
                }
344
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getCor())) {
345
                        descricaoCompleta.append(" (");
346
                        descricaoCompleta.append(this.getDescricaoDaCor());
347
                        descricaoCompleta.append(")");
348
                }
349
                if (VerificadorUtil.naoEstaNuloOuVazio(observacaoNotaFiscal)) {
350
                        descricaoCompleta.append(" ");
351
                        descricaoCompleta.append(observacaoNotaFiscal);
352
                }
353
                return descricaoCompleta.toString().trim();
354
        }
355
 
356
        public String getDescricaoCompleta() {
357
                StringBuilder descricaoCompleta = new StringBuilder();
358
                if (VerificadorUtil.naoEstaNuloOuVazio(getEstilo())) {
359
                        descricaoCompleta.append(getDescricaoDoEstilo());
360
                        descricaoCompleta.append(" ");
361
                }
362
                descricaoCompleta.append(getDescricao());
363
                if (VerificadorUtil.naoEstaNuloOuVazio(getCor())) {
364
                        descricaoCompleta.append(" (");
365
                        descricaoCompleta.append(getDescricaoDaCor());
366
                        descricaoCompleta.append(")");
367
                }
368
                return descricaoCompleta.toString();
369
        }
370
 
522 blopes 371
        public String getDescricaoComModeloCompleta() {
372
                StringBuilder descricaoCompleta = new StringBuilder();
373
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
374
                        descricaoCompleta.append(getDescricaoDoModelo());
375
                        descricaoCompleta.append(" - ");
376
                }
377
                descricaoCompleta.append(getDescricaoCompleta());
378
                return descricaoCompleta.toString();
379
        }
380
 
468 blopes 381
        public String getDescricaoComModeloCompletaComCodigo() {
382
                StringBuilder descricaoCompleta = new StringBuilder();
383
                descricaoCompleta.append("[");
384
                descricaoCompleta.append(getCodigoProdutoPadrao());
385
                descricaoCompleta.append("] ");
386
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
387
                        descricaoCompleta.append(getDescricaoDoModelo());
388
                        descricaoCompleta.append(" - ");
389
                }
390
                descricaoCompleta.append(getDescricaoCompleta());
391
                return descricaoCompleta.toString();
392
        }
393
 
394
        public String getDescricaoTecnicaDoModeloComParenteses() {
395
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? VerificadorUtil.naoEstaNulo(getModeloDTO().getDescricaoTecnica())? " (" + getModeloDTO().getDescricaoTecnica() + ") " : "" : "";
396
        }
397
 
398
        @Transient
399
        public String getDescricaoDaMarcaDoModelo() {
400
                return VerificadorUtil.naoEstaNulo(getMarcaDTODoModelo())? getMarcaDTODoModelo().getDescricao() : "";
401
        }
516 blopes 402
 
403
        @Override
404
        public int hashCode() {
405
                return Objects.hash(sequencial);
406
        }
407
 
408
        @Override
409
        public boolean equals(Object obj) {
410
                if (this == obj)
411
                        return true;
412
                if (obj == null)
413
                        return false;
414
                if (getClass() != obj.getClass())
415
                        return false;
416
                ProdutoDTO other = (ProdutoDTO) obj;
417
                return Objects.equals(sequencial, other.sequencial);
418
        }
468 blopes 419
 
449 blopes 420
}