Subversion Repositories Integrator Subversion

Rev

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