Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
200 espaco 1
package br.com.ec.domain.dto.nfce;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
5
import java.util.List;
6
 
7
import br.com.ec.core.util.StringUtil;
8
import br.com.ec.core.util.VerificadorUtil;
9
import br.com.ec.domain.model.Loja;
10
import br.com.ec.domain.model.NotaFiscal;
11
import br.com.ec.domain.model.NotaFiscalProduto;
12
import br.com.ec.domain.model.Pessoa;
13
import br.com.ec.web.converters.FormatarUtil;
14
import br.com.ec.web.util.DataUtil;
15
 
16
public class NotaFiscalRemessaDTO implements Serializable {
17
 
18
        private static final long serialVersionUID = 1L;
19
 
20
        private Long sequencialNotaFiscal;
21
 
22
        private Loja lojaEmitente;
23
        private Loja lojaDestino;
24
 
25
        private Pessoa pessoaEmitente;
26
        private Pessoa pessoaDestinatario;
27
        private List<NotaFiscalProduto> itens = new ArrayList<NotaFiscalProduto>();
28
 
29
//      private List<NfceItemDTO> itens = new ArrayList<NfceItemDTO>();
30
 
31
        private String numero = "";
32
        private String serie = "";
33
        private String dataHoraEmissao = "";
34
        private String chave = "";
35
        private String protocoloAutorizacao = "";
36
        private String cpfCnpjConsumidor = "";
37
        private String caminhoQrCode = "";
38
 
39
        private NotaFiscal notaFiscal;
40
 
41
        public NotaFiscalRemessaDTO() {}
42
 
43
        /*
44
        public NotaFiscalRemessaDTO(Venda venda) {
45
                this.venda = venda;
46
                if (VerificadorUtil.naoEstaNulo(venda.getCliente())) {
47
                        this.setCpfCnpjConsumidor(venda.getCliente().getCpfCnpj());
48
                } else {
49
                        this.setCpfCnpjConsumidor("NÃO INFORMADO");
50
                }
51
        }
52
 
53
        public NotaFiscalRemessaDTO(NotaFiscal notaFiscal) {
54
                this.setVenda(notaFiscal.getVenda());
55
                this.setNumero("" + notaFiscal.getNumeroNotaFiscal());
56
                this.setSerie(notaFiscal.getSerie());
57
                this.setChave(notaFiscal.getChave());
58
                this.setCaminhoQrCode(notaFiscal.getCaminhoQrcode());
59
                if (VerificadorUtil.naoEstaNulo(notaFiscal.getVenda().getCliente())) {
60
                        this.setCpfCnpjConsumidor(notaFiscal.getVenda().getCliente().getCpfCnpj());
61
                } else {
62
                        this.setCpfCnpjConsumidor("NÃO INFORMADO");
63
                }
64
        this.setDataHoraEmissao(DataUtil.retornarDataFormatadaEmFormatoTexto("yyyy-MM-dd HH:mm:ss", notaFiscal.getDataHoraEmissao()));
65
        this.setProtocoloAutorizacao(notaFiscal.getProtocoloAutorizacao());
66
        }
67
         */
68
 
69
        public Long getSequencialNotaFiscal() {
70
                return sequencialNotaFiscal;
71
        }
72
        public void setSequencialNotaFiscal(Long sequencialNotaFiscal) {
73
                this.sequencialNotaFiscal = sequencialNotaFiscal;
74
        }
75
 
76
        public Loja getLojaEmitente() {
77
                return lojaEmitente;
78
        }
79
        public void setLojaEmitente(Loja lojaEmitente) {
80
                this.lojaEmitente = lojaEmitente;
81
        }
82
 
83
        public Loja getLojaDestino() {
84
                return lojaDestino;
85
        }
86
        public void setLojaDestino(Loja lojaDestino) {
87
                this.lojaDestino = lojaDestino;
88
        }
89
 
90
        public Pessoa getPessoaEmitente() {
91
                return pessoaEmitente;
92
        }
93
        public void setPessoaEmitente(Pessoa pessoaEmitente) {
94
                this.pessoaEmitente = pessoaEmitente;
95
        }
96
 
97
        public Pessoa getPessoaDestinatario() {
98
                return pessoaDestinatario;
99
        }
100
        public void setPessoaDestinatario(Pessoa pessoaDestinatario) {
101
                this.pessoaDestinatario = pessoaDestinatario;
102
        }
103
 
104
        public List<NotaFiscalProduto> getItens() {
105
                return itens;
106
        }
107
        public void setItens(List<NotaFiscalProduto> itens) {
108
                this.itens = itens;
109
        }
110
 
111
        public String getNumero() {
112
                return numero;
113
        }
114
        public void setNumero(String numero) {
115
                this.numero = numero;
116
        }
117
 
118
        public String getSerie() {
119
                return serie;
120
        }
121
        public void setSerie(String serie) {
122
                this.serie = serie;
123
        }
124
 
125
        public String getDataHoraEmissao() {
126
                return dataHoraEmissao;
127
        }
128
        public void setDataHoraEmissao(String dataHoraEmissao) {
129
                this.dataHoraEmissao = dataHoraEmissao;
130
        }
131
 
132
        public String getChave() {
133
                return chave;
134
        }
135
        public void setChave(String chave) {
136
                this.chave = formatarChave(chave);
137
        }
138
 
139
        public String getProtocoloAutorizacao() {
140
                return protocoloAutorizacao;
141
        }
142
        public void setProtocoloAutorizacao(String protocoloAutorizacao) {
143
                this.protocoloAutorizacao = protocoloAutorizacao;
144
        }
145
 
146
        public String getCpfCnpjConsumidor() {
147
                if (VerificadorUtil.estaNulo(cpfCnpjConsumidor)) {
148
                        return "NÃO INFORMADO";
149
                }
150
                return cpfCnpjConsumidor;
151
        }
152
        public void setCpfCnpjConsumidor(String cpfCnpjConsumidor) {
153
                this.cpfCnpjConsumidor = cpfCnpjConsumidor;
154
        }
155
 
156
        public String getCpfCnpjConsumidorFormatado() {
157
                if (VerificadorUtil.estaNulo(cpfCnpjConsumidor)) {
158
                        return "NÃO INFORMADO";
159
                }
160
                return FormatarUtil.retornarCpfCnpjFormatado(cpfCnpjConsumidor);
161
        }
162
 
163
        public String getCaminhoQrCode() {
164
                return caminhoQrCode;
165
        }
166
        public void setCaminhoQrCode(String caminhoQrCode) {
167
                this.caminhoQrCode = caminhoQrCode;
168
        }
169
 
170
        public NotaFiscal getNotaFiscal() {
171
                return notaFiscal;
172
        }
173
        public void setNotaFiscal(NotaFiscal notaFiscal) {
174
                this.notaFiscal = notaFiscal;
175
        }
176
 
177
        /*******************************************************************/
178
 
179
        public String getRazaoSocialDaLoja() {
180
                return VerificadorUtil.naoEstaNulo(getPessoaEmitente())? getPessoaEmitente().getRazaoSocial() : "";
181
        }
182
 
183
        public String getCnpjDaLoja() {
184
                return VerificadorUtil.naoEstaNulo(getPessoaEmitente())? StringUtil.formatarCnpj(getPessoaEmitente().getCpfCnpj()) : "";
185
        }
186
        /*
187
        public String getEnderecoDoEmitente() {
188
                return getEnderecoEmitente().getLogradouro() + ", " + getEnderecoEmitente().getNumero() + ", " + getEnderecoEmitente().getComplemento() + ", " +
189
                                getEnderecoEmitente().getBairro() + ", " + getEnderecoEmitente().getMunicipio() + ", " + getEnderecoEmitente().getUnidadeFederativa();
190
        }
191
        */
192
        /*
193
        public void preencherItens(List<Lancamento> lancamentos) {
194
                Integer sequencial = 1;
195
                for (Lancamento lancamento : lancamentos) {
196
                        NfceItemDTO item = new NfceItemDTO();
197
                        item.setSequencial(sequencial);
198
                        item.setSequencialProduto(lancamento.getProduto().getSequencial());
199
                        item.setDescricao(montagemDescricaoDoItem(lancamento));
200
                        item.setQuantidade(1);
201
                        item.setValorUnitario(lancamento.getValorVenda());
202
                        getItens().add(item);
203
                        sequencial++;
204
                }
205
        }
206
 
207
        public String montagemDescricaoDoItem(Lancamento lancamento) {
208
                StringBuilder descricaoCompleta = new StringBuilder();
209
                descricaoCompleta.append(lancamento.getProduto().getCodigo());
210
                descricaoCompleta.append(" - ");
211
                descricaoCompleta.append(lancamento.getDescricaoNotaFiscal());
212
                descricaoCompleta.append("  1 UN X ");
213
                descricaoCompleta.append(formatarValor(lancamento.getValorVenda()));
214
                descricaoCompleta.append("  ");
215
                descricaoCompleta.append(formatarValor(lancamento.getValorVenda() * 1));
216
                return descricaoCompleta.toString();
217
        }
218
 
219
        public void preencherPagamentos(List<VendaFormaPagamento> pagamentos) {
220
                for (VendaFormaPagamento vendaFormaPagamento : pagamentos) {
221
                        NfcePagamentoDTO pagamento = new NfcePagamentoDTO();
222
                        String formaDePagamento = vendaFormaPagamento.getFormaPagamento().getDescricao();
223
                        if (VerificadorUtil.naoEstaNulo(vendaFormaPagamento.getBandeiraCartao())) {
224
                                formaDePagamento = formaDePagamento + " (" + vendaFormaPagamento.getBandeiraCartao().getDescricao() + ") ";
225
                        }
226
                        pagamento.setFormaDePagamento(formaDePagamento);
227
                        pagamento.setValor(formatarValor(vendaFormaPagamento.getValorPagamento()));
228
                        getPagamentos().add(pagamento);
229
                }
230
        }
231
 
232
        public String getValorTotal() {
233
                Double total = 0.0;
234
                if (!VerificadorUtil.isListaNulaOuVazia(getItens())) {
235
                        for (NfceItemDTO item : getItens()) {
236
                                total = total + item.getValorTotal();
237
                        }
238
                }
239
                return formatarValor(total);
240
        }
241
        */
242
        public String formatarChave(String chaveAcessoNF) {
243
                chaveAcessoNF = chaveAcessoNF.replace("NFe", "");
244
                return chaveAcessoNF.substring(0, 4) + " " +
245
                           chaveAcessoNF.substring(4, 8) + " " +
246
                           chaveAcessoNF.substring(8, 12) + " " +
247
                           chaveAcessoNF.substring(12, 16) + " " +
248
                           chaveAcessoNF.substring(16, 20) + " " +
249
                           chaveAcessoNF.substring(20, 24) + " " +
250
                           chaveAcessoNF.substring(24, 28) + " " +
251
                           chaveAcessoNF.substring(28, 32) + " " +
252
                           chaveAcessoNF.substring(32, 36) + " " +
253
                           chaveAcessoNF.substring(36, 40) + " " +
254
                           chaveAcessoNF.substring(40, 44);
255
        }
256
 
257
//      Número: 1 Série: 1 Emissão: 25/03/2018 16:28:40
258
//      Protocolo de Autorização: 327180000056573   25/03/2018 16:28:42
259
//      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
260
 
261
        /*
262
        public String getNumeroSerieEmissao() {
263
                StringBuilder numeroSerieEmissao = new StringBuilder();
264
                numeroSerieEmissao.append("NÚMERO: ");
265
                numeroSerieEmissao.append(getNumero());
266
                numeroSerieEmissao.append(" SÉRIE: ");
267
                numeroSerieEmissao.append(getSerie());
268
                numeroSerieEmissao.append(" EMISSÃO: ");
269
                numeroSerieEmissao.append(getDataHoraEmissao());
270
                return numeroSerieEmissao.toString();
271
        }
272
 
273
        public String getProtocoloAutorizacaoDataHoraEmissao() {
274
                return "PROTOCOLO DE AUTORIZAÇÃO: " + getProtocoloAutorizacao();
275
        }
276
        */
277
        private String formatarValor(Double valor) {
278
                return String.format("%.2f", valor);
279
        }
280
 
281
        public void preencherDadosNotaFiscal(NotaFiscal nf) {
282
                if (VerificadorUtil.naoEstaNulo(nf.getNumeroNotaFiscal())) {
283
                        this.setNumero(nf.getNumeroNotaFiscal().toString());
284
                }
285
                this.setSerie(nf.getSerie());
286
                this.setDataHoraEmissao(DataUtil.retornarDataFormatadaEmFormatoTexto("yyyy-MM-dd'T'HH:mm:ss'-03:00'", nf.getDataHoraEmissao()));
287
                this.setPessoaEmitente(nf.getPessoaEmitente());
288
                this.setPessoaDestinatario(nf.getPessoaDestinatario());
289
                if (VerificadorUtil.naoEstaNulo(nf.getListaNFRemessaProdutos())) {
290
                        this.setItens(nf.getListaNFRemessaProdutos());
291
                }
292
                this.setNotaFiscal(nf);
293
        }
294
 
295
        /*
296
        @Transient
297
        public Double getTotalLancamentos() {
298
                Double total = 0.0;
299
                if (!VerificadorUtil.isListaNulaOuVazia(getListaLancamento())) {
300
                        for (Lancamento lancamento : getListaLancamento()) {
301
                                total = total + lancamento.getValorVenda();
302
                        }
303
                }
304
                return total;  
305
        }
306
 
307
        @Transient
308
        public Double getTotalPago() {
309
                Double total = 0.0;
310
                if (!VerificadorUtil.isListaNulaOuVazia(getListaFormaPagamento())) {
311
                        for (VendaFormaPagamento vendaFormaPagamento : getListaFormaPagamento()) {
312
                                total = total + vendaFormaPagamento.getValorPagamento();
313
                        }
314
                }
315
                return total;  
316
        }
317
        */
318
 
319
}