Subversion Repositories Integrator Subversion

Rev

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