Subversion Repositories Integrator Subversion

Rev

Rev 468 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 espaco 1
package br.com.ec.domain.dto;
2
 
3
import java.io.Serializable;
468 blopes 4
import java.util.Date;
259 espaco 5
 
467 blopes 6
import br.com.ec.domain.model.NotaFiscal;
478 blopes 7
import br.com.ec.web.util.DataUtil;
467 blopes 8
 
259 espaco 9
public class NotaFiscalDTO implements Serializable {
10
 
11
        private static final long serialVersionUID = 1L;
12
 
462 blopes 13
        private Long sequencialNotaFiscal;
14
        private String chave;
478 blopes 15
        private Long numero;
468 blopes 16
        private Date dataHoraEmissao;
462 blopes 17
 
259 espaco 18
        /*
19
        private Venda venda;
20
 
21
        private Pessoa pessoaJuridica;
22
        private Endereco enderecoEmitente;
23
        private List<NfceItemDTO> itens = new ArrayList<NfceItemDTO>();
24
        private List<NfcePagamentoDTO> pagamentos = new ArrayList<NfcePagamentoDTO>();
25
 
26
        private String numero = "";
27
        private String serie = "";
28
        private String dataHoraEmissao = "";
29
        private String protocoloAutorizacao = "";
30
        private String cpfCnpjConsumidor = "";
31
        private String caminhoQrCode = "";
32
        */
33
 
462 blopes 34
        public NotaFiscalDTO() {
35
                setChave("");
36
        }
37
 
467 blopes 38
        public NotaFiscalDTO(NotaFiscal notaFiscal) {
39
                /*
40
                this.setVenda(notaFiscal.getVenda());
41
                this.setNumero("" + notaFiscal.getNumeroNotaFiscal());
42
                this.setSerie(notaFiscal.getSerie());
43
                this.setChave(notaFiscal.getChave());
44
                this.setCaminhoQrCode(notaFiscal.getCaminhoQrcode());
45
//              this.setCpfCnpjConsumidor("NÃO INFORMADO");
46
                if (VerificadorUtil.naoEstaNulo(notaFiscal.getVenda())) {
47
                        if (VerificadorUtil.naoEstaNulo(notaFiscal.getVenda().getCliente())) {
48
                                this.setCpfCnpjConsumidor(notaFiscal.getVenda().getCliente().getCpfCnpj());
49
                        }
50
                }
51
        this.setDataHoraEmissao(DataUtil.retornarDataFormatadaEmFormatoTexto("yyyy-MM-dd HH:mm:ss", notaFiscal.getDataHoraEmissao()));
52
        this.setProtocoloAutorizacao(notaFiscal.getProtocoloAutorizacao());
53
        */
54
        }
55
 
478 blopes 56
        public static String CONSULTA_DTO_SIMPLES = "e.sequencial, e.chave, e.numero, e.dataHoraEmissao";
57
        public NotaFiscalDTO(Long sequencial, String chave, Long numero, Date dataHoraEmissao) {
462 blopes 58
                this.sequencialNotaFiscal = sequencial;
59
                this.chave = chave;
478 blopes 60
                this.numero = numero;
61
                this.dataHoraEmissao = dataHoraEmissao;
462 blopes 62
        }
63
 
468 blopes 64
        public NotaFiscalDTO(Long sequencial, String chave, Date dataHoraEmissao) {
65
                this.sequencialNotaFiscal = sequencial;
66
                this.chave = chave;
67
                this.dataHoraEmissao = dataHoraEmissao;
68
        }
69
 
462 blopes 70
        public Long getSequencialNotaFiscal() {
71
                return sequencialNotaFiscal;
72
        }
73
        public void setSequencialNotaFiscal(Long sequencialNotaFiscal) {
74
                this.sequencialNotaFiscal = sequencialNotaFiscal;
75
        }
76
 
77
        public String getChave() {
78
                return chave;
79
        }
80
        public void setChave(String chave) {
81
                this.chave = chave;
82
        }
83
 
478 blopes 84
        public Long getNumero() {
85
                return numero;
86
        }
87
        public void setNumero(Long numero) {
88
                this.numero = numero;
89
        }
90
 
468 blopes 91
        public Date getDataHoraEmissao() {
92
                return dataHoraEmissao;
93
        }
94
        public void setDataHoraEmissao(Date dataHoraEmissao) {
95
                this.dataHoraEmissao = dataHoraEmissao;
96
        }
478 blopes 97
 
98
        public String getDataEmissaoFormatada() {
99
                return DataUtil.retornarDataFormatadaEmFormatoTexto("dd/MM/yyyy", dataHoraEmissao);
100
        }
468 blopes 101
 
259 espaco 102
        /*
103
        public NotaFiscalDTO(Venda venda) {
104
                this.venda = venda;
105
                if (VerificadorUtil.naoEstaNulo(venda.getCliente())) {
106
                        this.setCpfCnpjConsumidor(venda.getCliente().getCpfCnpj());
107
                } else {
108
                        this.setCpfCnpjConsumidor("NÃO INFORMADO");
109
                }
110
        }
111
 
112
        public NotaFiscalDTO(TNfeProc nfeProc, Venda vendaCompleta) {
113
                Pessoa pessoaJuridica = new Pessoa();
114
                pessoaJuridica.setCpfCnpj(nfeProc.getNFe().getInfNFe().getEmit().getCNPJ());
115
                this.setPessoaJuridica(pessoaJuridica);
116
 
117
                Endereco enderecoEmitente = new Endereco();
118
                enderecoEmitente.setLogradouro(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXLgr());
119
                enderecoEmitente.setNumero(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getNro());
120
                enderecoEmitente.setComplemento(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXCpl());
121
                enderecoEmitente.setBairro(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXBairro());
122
                enderecoEmitente.setMunicipio(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXMun());
123
                enderecoEmitente.setUnidadeFederativa(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getUF().name());
124
                this.setEnderecoEmitente(enderecoEmitente);
125
 
126
                List<NfceItemDTO> itens = new ArrayList<NfceItemDTO>();
127
                for (nfce.java.TNFe.InfNFe.Det detalhe : nfeProc.getNFe().getInfNFe().getDet()) {
128
                        NfceItemDTO item = new NfceItemDTO();
129
                        item.setSequencial(new Integer(detalhe.getNItem()));
130
 
131
                        StringBuilder descricaoCompleta = new StringBuilder();
132
                        descricaoCompleta.append(detalhe.getProd().getCProd());
133
                        descricaoCompleta.append(" - ");
134
                        descricaoCompleta.append(detalhe.getProd().getXProd());
135
                        descricaoCompleta.append(" 1 UN X R$");
136
                        descricaoCompleta.append(formatarValor(new Double(detalhe.getProd().getVUnCom())));
137
                        descricaoCompleta.append(" R$");
138
                        descricaoCompleta.append(formatarValor(new Double(detalhe.getProd().getVProd())));
139
                        item.setDescricao(descricaoCompleta.toString());
140
                        item.setQuantidade(new Integer(detalhe.getProd().getQCom().substring(0, detalhe.getProd().getQCom().indexOf("."))));
141
                        item.setValorUnitario(new Double(detalhe.getProd().getVUnCom()));
142
                        itens.add(item);
143
                }
144
                this.setItens(itens);
145
 
146
                // TODO: AINDA PREENCHENDO COM PAGAMENTOS DA VENDA
147
                this.preencherPagamentos(vendaCompleta.getVendaFormaPagamentos());
148
 
149
                this.setNumero(nfeProc.getNFe().getInfNFe().getIde().getNNF());
150
                this.setSerie(nfeProc.getNFe().getInfNFe().getIde().getSerie());
151
                this.setChave(nfeProc.getProtNFe().getInfProt().getChNFe());
152
                this.setCaminhoQrCode(nfeProc.getNFe().getInfNFeSupl().getQrCode());
153
                this.setCpfCnpjConsumidor("NÃO INFORMADO");
154
 
155
                if (VerificadorUtil.naoEstaNulo(nfeProc.getNFe().getInfNFe().getDest())) {
156
                        String cpfCnpjFormatado = "";
157
                        if (VerificadorUtil.naoEstaNuloOuVazio(nfeProc.getNFe().getInfNFe().getDest().getCPF())) {
158
                                cpfCnpjFormatado = StringUtil.formatarCpf(nfeProc.getNFe().getInfNFe().getDest().getCPF());
159
                        } else if (VerificadorUtil.naoEstaNuloOuVazio(nfeProc.getNFe().getInfNFe().getDest().getCNPJ())) {
160
                                cpfCnpjFormatado = StringUtil.formatarCnpj(nfeProc.getNFe().getInfNFe().getDest().getCNPJ());
161
                        }
162
                        this.setCpfCnpjConsumidor(cpfCnpjFormatado);
163
                }
164
                Date data;
165
                try {
166
                        data = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'-03:00'").parse(nfeProc.getNFe().getInfNFe().getIde().getDhEmi());
167
                        this.setDataHoraEmissao(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(data));
168
                } catch (ParseException e) {
169
                        e.printStackTrace();
170
                }
171
        this.setProtocoloAutorizacao(nfeProc.getProtNFe().getInfProt().getNProt());
172
        }
173
 
174
        public Long getSequencialNotaFiscal() {
175
                return sequencialNotaFiscal;
176
        }
177
        public void setSequencialNotaFiscal(Long sequencialNotaFiscal) {
178
                this.sequencialNotaFiscal = sequencialNotaFiscal;
179
        }
180
 
181
        public Venda getVenda() {
182
                return venda;
183
        }
184
        public void setVenda(Venda venda) {
185
                this.venda = venda;
186
        }
187
        public Long getSequencialDaVenda() {
188
                return VerificadorUtil.naoEstaNulo(getVenda())? getVenda().getSequencial() : null;
189
        }
190
 
191
        public Pessoa getPessoaJuridica() {
192
                return pessoaJuridica;
193
        }
194
        public void setPessoaJuridica(Pessoa pessoaJuridica) {
195
                this.pessoaJuridica = pessoaJuridica;
196
        }
197
 
198
        public Endereco getEnderecoEmitente() {
199
                return enderecoEmitente;
200
        }
201
        public void setEnderecoEmitente(Endereco enderecoEmitente) {
202
                this.enderecoEmitente = enderecoEmitente;
203
        }
204
 
205
        public List<NfceItemDTO> getItens() {
206
                return itens;
207
        }
208
        public void setItens(List<NfceItemDTO> itens) {
209
                this.itens = itens;
210
        }
211
 
212
        public List<NfcePagamentoDTO> getPagamentos() {
213
                return pagamentos;
214
        }
215
        public void setPagamentos(List<NfcePagamentoDTO> pagamentos) {
216
                this.pagamentos = pagamentos;
217
        }
218
 
219
        public String getNumero() {
220
                return numero;
221
        }
222
        public void setNumero(String numero) {
223
                this.numero = numero;
224
        }
225
 
226
        public String getSerie() {
227
                return serie;
228
        }
229
        public void setSerie(String serie) {
230
                this.serie = serie;
231
        }
232
 
233
        public String getDataHoraEmissao() {
234
                return dataHoraEmissao;
235
        }
236
        public void setDataHoraEmissao(String dataHoraEmissao) {
237
                this.dataHoraEmissao = dataHoraEmissao;
238
        }
239
 
240
        public String getChave() {
241
                return chave;
242
        }
243
        public void setChave(String chave) {
244
                this.chave = formatarChave(chave);
245
        }
246
 
247
        public String getProtocoloAutorizacao() {
248
                return protocoloAutorizacao;
249
        }
250
        public void setProtocoloAutorizacao(String protocoloAutorizacao) {
251
                this.protocoloAutorizacao = protocoloAutorizacao;
252
        }
253
 
254
        public String getCpfCnpjConsumidor() {
255
                if (VerificadorUtil.estaNulo(cpfCnpjConsumidor)) {
256
                        return "NÃO INFORMADO";
257
                }
258
                return cpfCnpjConsumidor;
259
        }
260
        public void setCpfCnpjConsumidor(String cpfCnpjConsumidor) {
261
                this.cpfCnpjConsumidor = cpfCnpjConsumidor;
262
        }
263
 
264
        public String getCpfCnpjConsumidorFormatado() {
265
                if (VerificadorUtil.estaNulo(cpfCnpjConsumidor)) {
266
                        return "NÃO INFORMADO";
267
                }
268
                return FormatarUtil.retornarCpfCnpjFormatado(StringUtil.retornarApenasNumeros(cpfCnpjConsumidor));
269
        }
270
 
271
        public String getCaminhoQrCode() {
272
                return caminhoQrCode;
273
        }
274
        public void setCaminhoQrCode(String caminhoQrCode) {
275
                this.caminhoQrCode = caminhoQrCode;
276
        }
277
        */
278
        /*******************************************************************/
279
        /*
280
        public String getRazaoSocialDaLoja() {
281
                return VerificadorUtil.naoEstaNulo(getPessoaJuridica())? getPessoaJuridica().getRazaoSocial() : "";
282
        }
283
 
284
        public String getCnpjDaLoja() {
285
                return VerificadorUtil.naoEstaNulo(getPessoaJuridica())? StringUtil.formatarCnpj(getPessoaJuridica().getCpfCnpj()) : "";
286
        }
287
 
288
        public String getCnpjMatrizDaLojaSemAcentos() {
289
                String cnpjMatriz = VerificadorUtil.naoEstaNulo(getPessoaJuridica())? getPessoaJuridica().getCpfCnpj() : "";
290
                return VerificadorUtil.naoEstaNuloOuVazio(cnpjMatriz)? cnpjMatriz.substring(0, 8) : "";
291
        }
292
 
293
        //TODO: ALTERAÇÃO PROVISÓRIA
294
        public String getEnderecoDoEmitente() {
295
                String numero = getEnderecoEmitente().getNumero();
296
                if (numero.equals("2650")) {
297
                        numero = "2990";
298
                }
299
                return getEnderecoEmitente().getLogradouro() + ", " + numero + ", " + getEnderecoEmitente().getComplemento() + ", " +
300
                                getEnderecoEmitente().getBairro() + ", " + getEnderecoEmitente().getMunicipio() + ", " + getEnderecoEmitente().getUnidadeFederativa();
301
        }
302
 
303
        public void preencherItens(List<Lancamento> lancamentos) {
304
                Integer sequencial = 1;
305
                for (Lancamento lancamento : lancamentos) {
306
                        NfceItemDTO item = new NfceItemDTO();
307
                        item.setSequencial(sequencial);
308
                        item.setSequencialProduto(lancamento.getProduto().getSequencial());
309
                        item.setDescricao(montagemDescricaoDoItem(lancamento));
310
                        item.setQuantidade(1);
311
                        item.setValorUnitario(lancamento.getValorVenda());
312
                        getItens().add(item);
313
                        sequencial++;
314
                }
315
        }
316
 
317
        public String montagemDescricaoDoItem(Lancamento lancamento) {
318
                StringBuilder descricaoCompleta = new StringBuilder();
319
                descricaoCompleta.append(lancamento.getProduto().getCodigo());
320
                descricaoCompleta.append(" - ");
321
                descricaoCompleta.append(lancamento.getDescricaoNotaFiscal());
322
                descricaoCompleta.append("  1 UN X ");
323
                descricaoCompleta.append(formatarValor(lancamento.getValorVenda()));
324
                descricaoCompleta.append("  R$");
325
                descricaoCompleta.append(formatarValor(lancamento.getValorVenda() * 1));
326
                return descricaoCompleta.toString();
327
        }
328
 
329
        public void preencherItensComanda(List<Lancamento> lancamentos) {
330
                Integer sequencial = 1;
331
                for (Lancamento lancamento : lancamentos) {
332
                        NfceItemDTO item = new NfceItemDTO();
333
                        item.setSequencial(sequencial);
334
                        item.setSequencialProduto(lancamento.getProduto().getSequencial());
335
                        item.setDescricao(montagemDescricaoDoItemComanda(lancamento));
336
                        item.setQuantidade(1);
337
                        item.setValorUnitario(lancamento.getValorVenda());
338
                        getItens().add(item);
339
                        sequencial++;
340
                }
341
        }
342
 
343
        public String montagemDescricaoDoItemComanda(Lancamento lancamento) {
344
                StringBuilder descricaoCompleta = new StringBuilder();
345
                descricaoCompleta.append(lancamento.getDescricaoComanda());
346
                descricaoCompleta.append("  R$");
347
                descricaoCompleta.append(formatarValor(lancamento.getValorVenda()));
348
                return descricaoCompleta.toString();
349
        }
350
 
351
        public void preencherPagamentos(List<VendaFormaPagamento> pagamentos) {
352
                for (VendaFormaPagamento vendaFormaPagamento : pagamentos) {
353
                        NfcePagamentoDTO pagamento = new NfcePagamentoDTO();
354
                        String formaDePagamento = vendaFormaPagamento.getFormaPagamento().getDescricao();
355
                        if (VerificadorUtil.naoEstaNulo(vendaFormaPagamento.getBandeiraCartao())) {
356
                                formaDePagamento = formaDePagamento + " (" + vendaFormaPagamento.getBandeiraCartao().getDescricao() + ") ";
357
                        }
358
                        pagamento.setFormaDePagamento(formaDePagamento);
359
                        pagamento.setValor(formatarValor(vendaFormaPagamento.getValorPagamento()));
360
                        getPagamentos().add(pagamento);
361
                }
362
        }
363
 
364
        public String getValorTotal() {
365
                Double total = 0.0;
366
                if (!VerificadorUtil.isListaNulaOuVazia(getItens())) {
367
                        for (NfceItemDTO item : getItens()) {
368
                                total = total + item.getValorTotal();
369
                        }
370
                }
371
                return formatarValor(total);
372
        }
373
 
374
        public String formatarChave(String chaveAcessoNF) {
375
                chaveAcessoNF = chaveAcessoNF.replace("NFe", "");
376
                return chaveAcessoNF.substring(0, 4) + " " +
377
                           chaveAcessoNF.substring(4, 8) + " " +
378
                           chaveAcessoNF.substring(8, 12) + " " +
379
                           chaveAcessoNF.substring(12, 16) + " " +
380
                           chaveAcessoNF.substring(16, 20) + " " +
381
                           chaveAcessoNF.substring(20, 24) + " " +
382
                           chaveAcessoNF.substring(24, 28) + " " +
383
                           chaveAcessoNF.substring(28, 32) + " " +
384
                           chaveAcessoNF.substring(32, 36) + " " +
385
                           chaveAcessoNF.substring(36, 40) + " " +
386
                           chaveAcessoNF.substring(40, 44);
387
        }
388
 
389
//      Número: 1 Série: 1 Emissão: 25/03/2018 16:28:40
390
//      Protocolo de Autorização: 327180000056573   25/03/2018 16:28:42
391
//      http://nfce.sefaz.al.gov.br/QRCode/consultarNFCe.jsp?chNFe=27180321494821000100650010000000011000000011&nVersao=100&tpAmb=2&cDest=06256954459&dhEmi=323031382d30332d32355431363a32383a34302d30333a3030&vNF=11.50&vICMS=0.00&digVal=4e35376b3876386a4d3931483269386843546f4a767443354d41453d&cIdToken=000002&cHashQRCode=A0FC7AB12F30E66649C3FFFB275323FCD2AA0AD7
392
        */
393
        /*
394
        public String getNumeroSerieEmissao() {
395
                StringBuilder numeroSerieEmissao = new StringBuilder();
396
                numeroSerieEmissao.append("NÚMERO: ");
397
                numeroSerieEmissao.append(getNumero());
398
                numeroSerieEmissao.append(" SÉRIE: ");
399
                numeroSerieEmissao.append(getSerie());
400
                numeroSerieEmissao.append(" EMISSÃO: ");
401
                numeroSerieEmissao.append(getDataHoraEmissao());
402
                return numeroSerieEmissao.toString();
403
        }
404
 
405
        public String getProtocoloAutorizacaoDataHoraEmissao() {
406
                return "PROTOCOLO DE AUTORIZAÇÃO: " + getProtocoloAutorizacao();
407
        }
408
        */
409
        /*
410
        private String formatarValor(Double valor) {
411
                return String.format("%.2f", valor);
412
        }
413
        */
414
        /*
415
        @Transient
416
        public Double getTotalLancamentos() {
417
                Double total = 0.0;
418
                if (!VerificadorUtil.isListaNulaOuVazia(getListaLancamento())) {
419
                        for (Lancamento lancamento : getListaLancamento()) {
420
                                total = total + lancamento.getValorVenda();
421
                        }
422
                }
423
                return total;  
424
        }
425
 
426
        @Transient
427
        public Double getTotalPago() {
428
                Double total = 0.0;
429
                if (!VerificadorUtil.isListaNulaOuVazia(getListaFormaPagamento())) {
430
                        for (VendaFormaPagamento vendaFormaPagamento : getListaFormaPagamento()) {
431
                                total = total + vendaFormaPagamento.getValorPagamento();
432
                        }
433
                }
434
                return total;  
435
        }
436
        */
437
 
438
}