Subversion Repositories Integrator Subversion

Rev

Rev 516 | Rev 522 | 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
 
449 blopes 39
        /*
40
        private String codigoRapido;
41
        private String descricaoEtiqueta;
42
        private String descricaoParaNotaFiscal;
43
        private String genero;
44
        private String observacao;
45
        private Double valorCompra;
46
        private Double valorVarejo;
47
        private Double valorVarejoPromocional;
48
        private Double valorVarejoMaximo;
49
        private Double valorVarejoPopular;
50
        private Double valorAtacado;
51
        private Date dataOnline;
52
        private Date dataOnlineShoplog;
53
        private Date dataOnlineMercadoLivre;
54
        private Boolean indicadorFavorito;
55
        private Boolean indicadorComissionado;
56
        private Boolean indicadorPersonalizavel;
57
        private Boolean indicadorEmissaoNotaFiscal;
58
 
59
//      private Modelo modelo;
60
//      private Tributacao tributacao;
61
 
62
        private Double valorVarejoSimulacao;
482 blopes 63
 
449 blopes 64
        private Double aliquotaIPI;
65
        private Double aliquotaIPINotaFiscal;
66
        private Double aliquotaIcms;
67
        private Double aliquotaIcmsNotaFiscal;
68
        private Double aliquotaIcmsST;
69
        private Double aliquotaFecoep;
70
        private Boolean ativo;
71
 
72
 
73
        private Set<ProdutoPedidoCompra> pedidosCompra;
74
        private Set<ProdutoLoja> estoques;
75
        private Set<FornecedorProduto> fornecedores;
76
        private Set<ProdutoRelacionado> relacionados;
77
        private Set<ProdutoRelacionado> relacionadosReverse;
78
 
79
        private List<TransferenciaProduto> transferenciasAbertas = new ArrayList<TransferenciaProduto>();
80
        private List<PedidoProduto> pedidosPendentes = new ArrayList<PedidoProduto>();
81
 
82
        private Boolean indicadorOnline;
83
        private Boolean indicadorOnlineShoplog;
84
        private Boolean indicadorOnlineMercadoLivre;
85
        private Date dataUltimaVenda;*/
86
 
462 blopes 87
        public ProdutoDTO() {}
88
 
468 blopes 89
        public static String CONSULTA_DTO_SIMPLES_COM_MODELO = "e.sequencial, e.codigo, e.codigoEAN, e.descricao, e.tipo, e.estilo, e.cor, e.genero, "
462 blopes 90
                        + " (SELECT mo.descricao FROM Modelo mo WHERE mo.sequencial = e.modelo.sequencial), "
91
                        + " (SELECT m.descricao FROM Marca m WHERE m.sequencial = e.modelo.marca.sequencial)";
92
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto,
468 blopes 93
                        String generoProduto, String descricaoModelo, String descricaoMarca) {
462 blopes 94
                super();
95
                this.sequencial = sequencial;
96
                this.codigo = codigo;
97
                this.codigoEAN = codigoEAN;
98
                this.descricao = descricao;
99
                this.tipo = tipoProduto;
100
                this.estilo= estiloProduto;
101
                this.cor = corProduto;
468 blopes 102
                this.genero = generoProduto;
462 blopes 103
                this.modeloDTO = new ModeloDTO(null, descricaoModelo, new MarcaDTO(null, descricaoMarca));
104
        }
105
 
106
        public ProdutoDTO(Long sequencial, String codigo, String codigoEAN, String descricao, String tipoProduto, String estiloProduto, String corProduto) {
107
                super();
108
                this.sequencial = sequencial;
109
                this.codigo = codigo;
110
                this.codigoEAN = codigoEAN;
111
                this.descricao = descricao;
112
                this.tipo = tipoProduto;
113
                this.estilo= estiloProduto;
114
                this.cor = corProduto;
115
        }
116
 
449 blopes 117
        public ProdutoDTO(Long sequencialProduto, String codigo,
118
                        String codigoEAN, String codigoEANTributado, String descricao, String tipoProduto, String estiloProduto,
119
                        String cor) {
120
                this.codigo = codigo;
121
                this.codigoEAN = codigoEAN;
122
                this.codigoEANTributado = codigoEANTributado;
123
                this.descricao = descricao;
124
                this.tipo = tipoProduto;
125
                this.estilo = estiloProduto;
126
                this.cor = cor;
127
        }
128
 
500 blopes 129
        public ProdutoDTO(Long sequencial, String codigo, String tipo, ModeloDTO modeloDTO, String estilo, String descricao, String cor, String codigoEAN) {
468 blopes 130
                this.sequencial = sequencial;
131
                this.codigo = codigo;
132
                this.tipo = tipo;
133
                this.modeloDTO = modeloDTO;
134
                this.estilo = estilo;
135
                this.descricao = descricao;
136
                this.cor = cor;
500 blopes 137
                this.codigoEAN = codigoEAN;
468 blopes 138
        }
139
 
516 blopes 140
        public ProdutoDTO(Long sequencial, String codigo, String descricao) {
141
                this.sequencial = sequencial;
142
                this.codigo = codigo;
143
                this.descricao = descricao;
144
        }
145
 
146
        public ProdutoDTO(Long sequencial) {
147
                this.sequencial = sequencial;
148
        }
149
 
449 blopes 150
        /*
151
        public static String CONSULTA_DTO_COMPLETA = "e.sequencial, e.notaFiscal.sequencial, e.produto.sequencial, "
152
                        + "e.quantidade";
153
        public ProdutoDTO(Long sequencial, Long sequencialNotaFiscal, Long sequencialProduto, Integer quantidade) {
154
                super();
155
                this.sequencial = sequencial;
156
                this.sequencialNotaFiscal = sequencialNotaFiscal;
157
                this.sequencialProduto = sequencialProduto;
158
                this.quantidade = quantidade;
159
        }
160
*/
161
 
162
        public Long getSequencial() {
163
                return sequencial;
164
        }
165
        public void setSequencial(Long sequencial) {
166
                this.sequencial = sequencial;
167
        }
168
 
169
        public String getCodigo() {
170
                return codigo;
171
        }
172
        public void setCodigo(String codigo) {
173
                this.codigo = codigo;
174
        }
521 blopes 175
 
176
        public String getCodigoRapido() {
177
                return codigoRapido;
178
        }
179
        public void setCodigoRapido(String codigoRapido) {
180
                this.codigoRapido = codigoRapido;
181
        }
182
 
449 blopes 183
        public String getCodigoEAN() {
184
                return codigoEAN;
185
        }
186
        public void setCodigoEAN(String codigoEAN) {
187
                this.codigoEAN = codigoEAN;
188
        }
189
 
190
        public String getCodigoEANTributado() {
191
                return codigoEANTributado;
192
        }
193
        public void setCodigoEANTributado(String codigoEANTributado) {
194
                this.codigoEANTributado = codigoEANTributado;
195
        }
196
 
197
        public String getDescricao() {
198
                return descricao;
199
        }
200
        public void setDescricao(String descricao) {
201
                this.descricao = descricao;
202
        }
203
 
204
        public String getTipo() {
205
                return tipo;
206
        }
207
        public void setTipo(String tipo) {
208
                this.tipo = tipo;
209
        }
210
 
211
        public String getEstilo() {
212
                return estilo;
213
        }
214
        public void setEstilo(String estilo) {
215
                this.estilo = estilo;
216
        }
468 blopes 217
        public String getDescricaoDoEstilo() {
218
                return VerificadorUtil.naoEstaNuloOuVazio(getEstilo())? TipoEstiloProduto.parse(getEstilo()).getDescricao() : null;
219
        }
449 blopes 220
 
221
        public String getCor() {
222
                return cor;
223
        }
224
        public void setCor(String cor) {
225
                this.cor = cor;
226
        }
468 blopes 227
        public String getDescricaoDaCor() {
228
                return VerificadorUtil.naoEstaNuloOuVazio(getCor())? TipoCorProduto.parse(getCor()).getDescricao() : null;
229
        }
230
 
231
        public String getGenero() {
232
                return genero;
233
        }
234
        public void setGenero(String genero) {
235
                this.genero = genero;
236
        }
449 blopes 237
 
238
        public String getCodigoNCM() {
239
                return codigoNCM;
240
        }
241
        public void setCodigoNCM(String codigoNCM) {
242
                this.codigoNCM = codigoNCM;
243
        }
244
 
245
        public String getCodigoEST() {
246
                return codigoEST;
247
        }
248
        public void setCodigoEST(String codigoEST) {
249
                this.codigoEST = codigoEST;
250
        }
251
 
252
        public ModeloDTO getModeloDTO() {
253
                return modeloDTO;
254
        }
255
        public void setModeloDTO(ModeloDTO modeloDTO) {
256
                this.modeloDTO = modeloDTO;
257
        }
468 blopes 258
        public String getDescricaoDoModelo() {
259
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getDescricao() : "";
260
        }
449 blopes 261
 
468 blopes 262
        public MarcaDTO getMarcaDTODoModelo() {
263
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? getModeloDTO().getMarcaDTO() : null;
264
        }
265
 
482 blopes 266
        public TributacaoDTO getTributacaoDTO() {
267
                return tributacaoDTO;
268
        }
269
        public void setTributacaoDTO(TributacaoDTO tributacaoDTO) {
270
                this.tributacaoDTO = tributacaoDTO;
271
        }
272
 
273
        public String getCodigoNCMDaTributacao() {
274
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoNCM() : null;
275
        }
276
 
277
        public String getCodigoESTDaTributacao() {
278
                return VerificadorUtil.naoEstaNulo(getTributacaoDTO())? getTributacaoDTO().getCodigoEST() : null;
279
        }
280
 
281
        public Boolean getSujeitoST() {
282
                return sujeitoST;
283
        }
284
        public void setSujeitoST(Boolean sujeitoST) {
285
                this.sujeitoST = sujeitoST;
286
        }
287
 
462 blopes 288
        /***************************************/
289
 
468 blopes 290
        public String getCodigoProdutoPadrao() {
291
                try {
292
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
293
                } catch (Exception e) {
294
                        return "";
295
                }
296
        }
297
 
462 blopes 298
        public static String retornarCodigoProdutoPadrao(String codigo) {
299
                try {
300
                        return VerificadorUtil.naoEstaNulo(codigo) ? String.format("%06d", new Long(codigo.trim())) : "";
301
                } catch (Exception e) {
302
                        return "";
303
                }
304
        }
305
 
468 blopes 306
        public String getDescricaoNotaFiscal(String observacaoNotaFiscal) {
307
                StringBuilder descricaoCompleta = new StringBuilder();
308
                if (this.getTipo().equals(TipoProduto.CAPA.getValor())) {
309
                        descricaoCompleta.append("CAPA");
310
                }
311
                if (!this.getTipo().equals(TipoProduto.ACESSORIO.getValor())) {
312
                        descricaoCompleta.append(" ");
313
                        descricaoCompleta.append(this.getDescricaoDoModelo());
314
                }
315
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getEstilo())) {
316
                        descricaoCompleta.append(" ");
317
                        descricaoCompleta.append(this.getDescricaoDoEstilo());
318
                }
319
                descricaoCompleta.append(" ");
320
                if (this.getDescricao().length() > 50) {
321
                        descricaoCompleta.append(this.getDescricao().substring(0, 50));
322
                } else {
323
                        descricaoCompleta.append(this.getDescricao());
324
                }
325
                if (VerificadorUtil.naoEstaNuloOuVazio(this.getCor())) {
326
                        descricaoCompleta.append(" (");
327
                        descricaoCompleta.append(this.getDescricaoDaCor());
328
                        descricaoCompleta.append(")");
329
                }
330
                if (VerificadorUtil.naoEstaNuloOuVazio(observacaoNotaFiscal)) {
331
                        descricaoCompleta.append(" ");
332
                        descricaoCompleta.append(observacaoNotaFiscal);
333
                }
334
                return descricaoCompleta.toString().trim();
335
        }
336
 
337
        public String getDescricaoCompleta() {
338
                StringBuilder descricaoCompleta = new StringBuilder();
339
                if (VerificadorUtil.naoEstaNuloOuVazio(getEstilo())) {
340
                        descricaoCompleta.append(getDescricaoDoEstilo());
341
                        descricaoCompleta.append(" ");
342
                }
343
                descricaoCompleta.append(getDescricao());
344
                if (VerificadorUtil.naoEstaNuloOuVazio(getCor())) {
345
                        descricaoCompleta.append(" (");
346
                        descricaoCompleta.append(getDescricaoDaCor());
347
                        descricaoCompleta.append(")");
348
                }
349
                return descricaoCompleta.toString();
350
        }
351
 
352
        public String getDescricaoComModeloCompletaComCodigo() {
353
                StringBuilder descricaoCompleta = new StringBuilder();
354
                descricaoCompleta.append("[");
355
                descricaoCompleta.append(getCodigoProdutoPadrao());
356
                descricaoCompleta.append("] ");
357
                if (VerificadorUtil.naoEstaNuloOuVazio(getDescricaoDoModelo())) {
358
                        descricaoCompleta.append(getDescricaoDoModelo());
359
                        descricaoCompleta.append(" - ");
360
                }
361
                descricaoCompleta.append(getDescricaoCompleta());
362
                return descricaoCompleta.toString();
363
        }
364
 
365
        public String getDescricaoTecnicaDoModeloComParenteses() {
366
                return VerificadorUtil.naoEstaNulo(getModeloDTO())? VerificadorUtil.naoEstaNulo(getModeloDTO().getDescricaoTecnica())? " (" + getModeloDTO().getDescricaoTecnica() + ") " : "" : "";
367
        }
368
 
369
        @Transient
370
        public String getDescricaoDaMarcaDoModelo() {
371
                return VerificadorUtil.naoEstaNulo(getMarcaDTODoModelo())? getMarcaDTODoModelo().getDescricao() : "";
372
        }
516 blopes 373
 
374
        @Override
375
        public int hashCode() {
376
                return Objects.hash(sequencial);
377
        }
378
 
379
        @Override
380
        public boolean equals(Object obj) {
381
                if (this == obj)
382
                        return true;
383
                if (obj == null)
384
                        return false;
385
                if (getClass() != obj.getClass())
386
                        return false;
387
                ProdutoDTO other = (ProdutoDTO) obj;
388
                return Objects.equals(sequencial, other.sequencial);
389
        }
468 blopes 390
 
449 blopes 391
}