Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
106 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.BufferedReader;
4
import java.io.IOException;
5
import java.io.InputStreamReader;
6
import java.io.Serializable;
7
import java.util.ArrayList;
8
import java.util.Calendar;
9
import java.util.Date;
10
import java.util.List;
11
 
12
import javax.inject.Inject;
13
import javax.inject.Named;
14
 
15
import org.apache.commons.lang.time.DateUtils;
16
import org.primefaces.event.FileUploadEvent;
17
import org.primefaces.model.UploadedFile;
18
import org.springframework.context.annotation.Scope;
19
 
195 espaco 20
import br.com.ec.core.generic.GenericService;
21
import br.com.ec.core.util.DataUtils;
22
import br.com.ec.core.util.StringUtil;
23
import br.com.ec.core.util.VerificadorUtil;
106 espaco 24
import br.com.ec.domain.dto.CartaoBandeiraDTO;
25
import br.com.ec.domain.dto.CartaoDTO;
26
import br.com.ec.domain.dto.CartaoDataDTO;
27
import br.com.ec.domain.dto.CartaoResumoDTO;
28
import br.com.ec.domain.model.FormaPagamento;
29
import br.com.ec.domain.model.Maquineta;
30
import br.com.ec.domain.model.VendaFormaPagamento;
31
import br.com.ec.domain.model.tipos.TipoCartao;
32
import br.com.ec.domain.service.bandeiracartao.BandeiraCartaoService;
33
import br.com.ec.domain.service.formapagamento.FormaPagamentoService;
34
import br.com.ec.domain.service.parcela.ParcelaService;
35
import br.com.ec.domain.service.vendaformapagamento.VendaFormaPagamentoService;
36
import br.com.ec.domain.shared.ConstantesSEC;
37
import br.com.ec.domain.shared.Ordenador;
38
import br.com.ec.domain.shared.OrdenadorImpl;
195 espaco 39
import br.com.ec.web.exception.VerificadorLancamentoException;
40
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
41
import br.com.ec.web.generic.AbstractBean;
42
import br.com.ec.web.message.LancadorMensagem;
43
import br.com.ec.web.util.DataUtil;
106 espaco 44
 
45
@Named
46
@Scope("view")
47
public class CartoesGerenciadorBean_old extends AbstractBean<CartaoDTO> implements Serializable {
48
 
49
        private static final long serialVersionUID = 1L;
50
 
51
        private ParcelaService parcelaService;
52
        private VendaFormaPagamentoService vendaFormaPagamentoService;
53
        private BandeiraCartaoService bandeiraCartaoService;
54
        private FormaPagamentoService formaPagamentoService;
55
 
56
        private List<CartaoDTO> cartoes;
57
        private List<CartaoDTO> cartoesGerados;
58
        private CartaoResumoDTO cartaoResumo;
59
 
60
        private Date dataVendas;
61
        private Date dataVendasSelecionada;
62
        private List<VendaFormaPagamento> listaVendaFormaPagamento;
63
        private List<CartaoDataDTO> listaDatas;
64
 
65
        private Double valorTotalBrutoCartoes;
66
        private Double valorTotalBrutoCartoesDebito;
67
        private Double valorTotalBrutoCartoesCredito1x;
68
        private Double valorTotalBrutoCartoesCreditoParcelado;
69
 
70
        private Double valorTotalBrutoImportadoCartoes;
71
        private Double valorTotalBrutoImportadoCartoesDebito;
72
        private Double valorTotalBrutoImportadoCartoesCredito1x;
73
        private Double valorTotalBrutoImportadoCartoesCreditoParcelado;
74
 
75
        private Double valorTotalLiquidoCartoesGerados;
76
        private Double valorTotalLiquidoCartoesGeradosDebito;
77
        private Double valorTotalLiquidoCartoesGeradosCredito1x;
78
        private Double valorTotalLiquidoCartoesGeradosCreditoParcelado;
79
 
80
        private List<Maquineta> maquinetasSelecionadas;
81
        private String tipoArquivoSelecionado = ConstantesSEC.ArquivoBanco.ARQUIVO_BANCO_REDE_1;
82
 
83
        private List<String> linhas;
84
        private UploadedFile arquivoParaUpload;
85
        private Ordenador ordenador;
86
 
87
        @Inject
88
        public CartoesGerenciadorBean_old(ParcelaService parcelaService, VendaFormaPagamentoService vendaFormaPagamentoService,
89
                        BandeiraCartaoService bandeiraCartaoService, FormaPagamentoService formaPagamentoService) {
90
                this.parcelaService = parcelaService;
91
                this.vendaFormaPagamentoService = vendaFormaPagamentoService;
92
                this.bandeiraCartaoService = bandeiraCartaoService;
93
                this.formaPagamentoService = formaPagamentoService;
94
                this.ordenador = new OrdenadorImpl();
95
        }      
96
 
97
        @Override
98
        public void preCarregamento() {
99
                setDataVendas(DataUtils.getDataAtual());
100
        }
101
 
102
        @Override
103
        public void limparEntidade() {
104
                setEntidade(new CartaoDTO());
105
                setCartoes(null);
106
                setCartoesGerados(null);
107
                setCartaoResumo(null);
108
                setValorTotalBrutoCartoes(new Double(0.0));
109
                setValorTotalBrutoCartoesDebito(new Double(0.0));
110
                setValorTotalBrutoCartoesCredito1x(new Double(0.0));
111
                setValorTotalBrutoCartoesCreditoParcelado(new Double(0.0));
112
                setValorTotalBrutoImportadoCartoes(new Double(0.0));
113
                setValorTotalBrutoImportadoCartoesDebito(new Double(0.0));
114
                setValorTotalBrutoImportadoCartoesCredito1x(new Double(0.0));
115
                setValorTotalBrutoImportadoCartoesCreditoParcelado(new Double(0.0));
116
                setValorTotalLiquidoCartoesGerados(new Double(0.0));
117
                setValorTotalLiquidoCartoesGeradosDebito(new Double(0.0));
118
                setValorTotalLiquidoCartoesGeradosCredito1x(new Double(0.0));
119
                setValorTotalLiquidoCartoesGeradosCreditoParcelado(new Double(0.0));
120
        }
121
 
122
        @Override
123
        public GenericService<CartaoDTO> getService() {
124
                return null;
125
        }
126
 
127
        @Override
128
        public CartaoDTO getEntidade() {
129
                return entidade;
130
        }
131
 
132
        @Override
133
        public CartaoDTO getId() {
134
                return getEntidade();
135
        }
136
 
137
        public List<CartaoDTO> getCartoes() {
138
                return cartoes;
139
        }
140
        public void setCartoes(List<CartaoDTO> cartoes) {
141
                this.cartoes = cartoes;
142
        }
143
 
144
        public List<CartaoDTO> getCartoesGerados() {
145
                return cartoesGerados;
146
        }
147
        public void setCartoesGerados(List<CartaoDTO> cartoesGerados) {
148
                this.cartoesGerados = cartoesGerados;
149
        }
150
 
151
        public CartaoResumoDTO getCartaoResumo() {
152
                return cartaoResumo;
153
        }
154
        public void setCartaoResumo(CartaoResumoDTO cartaoResumo) {
155
                this.cartaoResumo = cartaoResumo;
156
        }
157
 
158
        public Date getDataVendas() {
159
                return dataVendas;
160
        }
161
        public void setDataVendas(Date dataVendas) {
162
                this.dataVendas = dataVendas;
163
        }
164
 
165
        public Date getDataVendasSelecionada() {
166
                return dataVendasSelecionada;
167
        }
168
        public void setDataVendasSelecionada(Date dataVendasSelecionada) {
169
                this.dataVendasSelecionada = dataVendasSelecionada;
170
        }
171
 
172
        public List<VendaFormaPagamento> getListaVendaFormaPagamento() {
173
                return listaVendaFormaPagamento;
174
        }
175
        public void setListaVendaFormaPagamento(List<VendaFormaPagamento> listaVendaFormaPagamento) {
176
                this.listaVendaFormaPagamento = listaVendaFormaPagamento;
177
        }
178
 
179
        public List<CartaoDataDTO> getListaDatas() {
180
                return listaDatas;
181
        }
182
        public void setListaDatas(List<CartaoDataDTO> listaDatas) {
183
                this.listaDatas = listaDatas;
184
        }
185
 
186
        public Double getValorTotalBrutoCartoes() {
187
                return valorTotalBrutoCartoes;
188
        }
189
        public void setValorTotalBrutoCartoes(Double valorTotalBrutoCartoes) {
190
                this.valorTotalBrutoCartoes = valorTotalBrutoCartoes;
191
        }
192
 
193
        public Double getValorTotalBrutoCartoesDebito() {
194
                return valorTotalBrutoCartoesDebito;
195
        }
196
        public void setValorTotalBrutoCartoesDebito(Double valorTotalBrutoCartoesDebito) {
197
                this.valorTotalBrutoCartoesDebito = valorTotalBrutoCartoesDebito;
198
        }
199
 
200
        public Double getValorTotalBrutoCartoesCredito() {
201
                return getValorTotalBrutoCartoesCredito1x() + getValorTotalBrutoCartoesCreditoParcelado();
202
        }
203
 
204
        public Double getValorTotalBrutoImportadoCartoesCredito() {
205
                return getValorTotalBrutoImportadoCartoesCredito1x() + getValorTotalBrutoImportadoCartoesCreditoParcelado();
206
        }
207
 
208
        public String getCorValoresConciliadosCartoesCredito() {
209
                return getValorTotalBrutoCartoesCredito().equals(getValorTotalBrutoImportadoCartoesCredito())? "green" : "red";
210
        }
211
 
212
        public Double getValorTotalBrutoCartoesCredito1x() {
213
                return valorTotalBrutoCartoesCredito1x;
214
        }
215
        public void setValorTotalBrutoCartoesCredito1x(Double valorTotalBrutoCartoesCredito1x) {
216
                this.valorTotalBrutoCartoesCredito1x = valorTotalBrutoCartoesCredito1x;
217
        }
218
 
219
        public Double getValorTotalBrutoCartoesCreditoParcelado() {
220
                return valorTotalBrutoCartoesCreditoParcelado;
221
        }
222
        public void setValorTotalBrutoCartoesCreditoParcelado(Double valorTotalBrutoCartoesCreditoParcelado) {
223
                this.valorTotalBrutoCartoesCreditoParcelado = valorTotalBrutoCartoesCreditoParcelado;
224
        }
225
 
226
        public Double getValorTotalBrutoImportadoCartoes() {
227
                return valorTotalBrutoImportadoCartoes;
228
        }
229
        public void setValorTotalBrutoImportadoCartoes(Double valorTotalBrutoImportadoCartoes) {
230
                this.valorTotalBrutoImportadoCartoes = valorTotalBrutoImportadoCartoes;
231
        }
232
 
233
        public Double getValorTotalBrutoImportadoCartoesDebito() {
234
                return valorTotalBrutoImportadoCartoesDebito;
235
        }
236
        public void setValorTotalBrutoImportadoCartoesDebito(Double valorTotalBrutoImportadoCartoesDebito) {
237
                this.valorTotalBrutoImportadoCartoesDebito = valorTotalBrutoImportadoCartoesDebito;
238
        }
239
 
240
        public String getCorValoresConciliadosCartoesDebito() {
241
                return getValorTotalBrutoCartoesDebito().equals(getValorTotalBrutoImportadoCartoesDebito())? "green" : "red";
242
        }
243
 
244
        public Double getValorTotalBrutoImportadoCartoesCredito1x() {
245
                return valorTotalBrutoImportadoCartoesCredito1x;
246
        }
247
        public void setValorTotalBrutoImportadoCartoesCredito1x(Double valorTotalBrutoImportadoCartoesCredito1x) {
248
                this.valorTotalBrutoImportadoCartoesCredito1x = valorTotalBrutoImportadoCartoesCredito1x;
249
        }
250
 
251
        public String getCorValoresConciliadosCartoesCredito1x() {
252
                return getValorTotalBrutoCartoesCredito1x().equals(getValorTotalBrutoImportadoCartoesCredito1x())? "green" : "red";
253
        }
254
 
255
        public Double getValorTotalBrutoImportadoCartoesCreditoParcelado() {
256
                return valorTotalBrutoImportadoCartoesCreditoParcelado;
257
        }
258
        public void setValorTotalBrutoImportadoCartoesCreditoParcelado(Double valorTotalBrutoImportadoCartoesCreditoParcelado) {
259
                this.valorTotalBrutoImportadoCartoesCreditoParcelado = valorTotalBrutoImportadoCartoesCreditoParcelado;
260
        }
261
 
262
        public String getCorValoresConciliadosCartoesCreditoParcelado() {
263
                return getValorTotalBrutoCartoesCreditoParcelado().equals(getValorTotalBrutoImportadoCartoesCreditoParcelado())? "green" : "red";
264
        }
265
 
266
        public void somarValoresBruto(Double valor, FormaPagamento formaDePagamento) {
267
                valorTotalBrutoCartoes = valorTotalBrutoCartoes + valor;
268
                if (formaDePagamento.formaPagamentoEhDebito()) {
269
                        valorTotalBrutoCartoesDebito = valorTotalBrutoCartoesDebito + valor;
270
                }
271
                if (formaDePagamento.formaPagamentoEhCredito()) {
272
                        if (formaDePagamento.formaPagamentoEh1x()) {
273
                                valorTotalBrutoCartoesCredito1x = valorTotalBrutoCartoesCredito1x + valor;
274
                        } else {
275
                                valorTotalBrutoCartoesCreditoParcelado = valorTotalBrutoCartoesCreditoParcelado + valor;
276
                        }
277
                }
278
        }
279
 
280
        public void somarValoresBrutoImportado(Double valor, FormaPagamento formaDePagamento) {
281
                valorTotalBrutoImportadoCartoes = valorTotalBrutoImportadoCartoes + valor;
282
                if (formaDePagamento.formaPagamentoEhDebito()) {
283
                        valorTotalBrutoImportadoCartoesDebito = valorTotalBrutoImportadoCartoesDebito + valor;
284
                }
285
                if (formaDePagamento.formaPagamentoEhCredito()) {
286
                        if (formaDePagamento.formaPagamentoEh1x()) {
287
                                valorTotalBrutoImportadoCartoesCredito1x = valorTotalBrutoImportadoCartoesCredito1x + valor;
288
                        } else {
289
                                valorTotalBrutoImportadoCartoesCreditoParcelado = valorTotalBrutoImportadoCartoesCreditoParcelado + valor;
290
                        }
291
                }
292
        }
293
 
294
        public Double getValorTotalLiquidoCartoesGerados() {
295
                return valorTotalLiquidoCartoesGerados;
296
        }
297
        public void setValorTotalLiquidoCartoesGerados(Double valorTotalLiquidoCartoesGerados) {
298
                this.valorTotalLiquidoCartoesGerados = valorTotalLiquidoCartoesGerados;
299
        }
300
 
301
        public Double getValorTotalLiquidoCartoesGeradosDebito() {
302
                return valorTotalLiquidoCartoesGeradosDebito;
303
        }
304
        public void setValorTotalLiquidoCartoesGeradosDebito(Double valorTotalLiquidoCartoesGeradosDebito) {
305
                this.valorTotalLiquidoCartoesGeradosDebito = valorTotalLiquidoCartoesGeradosDebito;
306
        }
307
 
308
        public Double getValorTotalLiquidoCartoesGeradosCredito() {
309
                return getValorTotalLiquidoCartoesGeradosCredito1x() + getValorTotalLiquidoCartoesGeradosCreditoParcelado();
310
        }
311
 
312
        public Double getValorTotalLiquidoCartoesGeradosCredito1x() {
313
                return valorTotalLiquidoCartoesGeradosCredito1x;
314
        }
315
        public void setValorTotalLiquidoCartoesGeradosCredito1x(Double valorTotalLiquidoCartoesGeradosCredito1x) {
316
                this.valorTotalLiquidoCartoesGeradosCredito1x = valorTotalLiquidoCartoesGeradosCredito1x;
317
        }
318
 
319
        public Double getValorTotalLiquidoCartoesGeradosCreditoParcelado() {
320
                return valorTotalLiquidoCartoesGeradosCreditoParcelado;
321
        }
322
        public void setValorTotalLiquidoCartoesGeradosCreditoParcelado(Double valorTotalLiquidoCartoesGeradosCreditoParcelado) {
323
                this.valorTotalLiquidoCartoesGeradosCreditoParcelado = valorTotalLiquidoCartoesGeradosCreditoParcelado;
324
        }
325
 
326
        public List<Maquineta> getMaquinetasSelecionadas() {
327
                return maquinetasSelecionadas;
328
        }
329
        public void setMaquinetasSelecionadas(List<Maquineta> maquinetasSelecionadas) {
330
                this.maquinetasSelecionadas = maquinetasSelecionadas;
331
        }
332
        public String maquinetasSelecionadasDescricao() {
333
                String descricao = "";
334
                for (Maquineta m : getMaquinetasSelecionadas()) {
335
                        descricao = descricao + m.getEmpresaAdquirente().getDescricao() + ": " + m.getDescricao() + "; ";
336
                }
337
                return descricao;
338
        }
339
 
340
        public String getTipoArquivoSelecionado() {
341
                return tipoArquivoSelecionado;
342
        }
343
        public void setTipoArquivoSelecionado(String tipoArquivoSelecionado) {
344
                this.tipoArquivoSelecionado = tipoArquivoSelecionado;
345
        }
346
 
347
        public void somarValoresLiquido(List<CartaoDTO> cartoesGerados) {
348
                for (CartaoDTO cartaoGerado : cartoesGerados) {
349
                        valorTotalLiquidoCartoesGerados = valorTotalLiquidoCartoesGerados + cartaoGerado.getParcela().getValor();
350
                        if (VerificadorUtil.naoEstaNulo(cartaoGerado.getFormaDePagamento())) {
351
                                if (cartaoGerado.getFormaDePagamento().formaPagamentoEhDebito()) {
352
                                        valorTotalLiquidoCartoesGeradosDebito = valorTotalLiquidoCartoesGeradosDebito + cartaoGerado.getParcela().getValor();
353
                                }
354
                                if (cartaoGerado.getFormaDePagamento().formaPagamentoEhCredito()) {
355
                                        if (cartaoGerado.getFormaDePagamento().formaPagamentoEh1x()) {
356
                                                valorTotalLiquidoCartoesGeradosCredito1x = valorTotalLiquidoCartoesGeradosCredito1x + cartaoGerado.getParcela().getValor();
357
                                        } else {
358
                                                valorTotalLiquidoCartoesGeradosCreditoParcelado = valorTotalLiquidoCartoesGeradosCreditoParcelado + cartaoGerado.getParcela().getValor();
359
                                        }
360
                                }
361
                        }
362
                }
363
        }
364
 
365
        public List<String> getLinhas() {
366
                return linhas;
367
        }
368
        public void setLinhas(List<String> linhas) {
369
                this.linhas = linhas;
370
        }
371
 
372
        public UploadedFile getArquivoParaUpload() {
373
                return arquivoParaUpload;
374
        }
375
        public void setArquivoParaUpload(UploadedFile arquivoParaUpload) {
376
                this.arquivoParaUpload = arquivoParaUpload;
377
        }
378
 
379
        public void atualizarConsultaComArquivo() {
380
                limparEntidade();
381
                consultarComArquivo();
382
        }
383
 
384
        public void uploadArquivoCsvRede(final FileUploadEvent e) {
385
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
386
                        public void execute() {
387
                                limparEntidade();
388
                                BufferedReader reader = null;
389
                                List<String> linhas = new ArrayList<String>();
390
                                try {
391
                                        reader = new BufferedReader(new InputStreamReader(e.getFile().getInputstream()));
392
                                        String linha = reader.readLine();
393
                                        cartaoResumo = new CartaoResumoDTO();
394
                                while ((linha = reader.readLine()) != null) {
395
                                        linhas.add(linha);
396
                                }
397
                                } catch (Exception ex) {
398
                                        ex.printStackTrace();
399
                                } finally {
400
                                        try {
401
                                                reader.close();
402
                                        } catch (IOException exc) {
403
                                                exc.printStackTrace();
404
                                        }
405
                                }
406
                                setLinhas(linhas);
407
                                consultarComArquivo();
408
                        }
409
                });
410
    }
411
 
412
        public void consultarComArquivo() {
413
                valorTotalBrutoImportadoCartoes = new Double(0.0);
414
                try {
415
                        cartaoResumo = new CartaoResumoDTO();
416
                        if (getTipoArquivoSelecionado().equals(ConstantesSEC.ArquivoBanco.ARQUIVO_BANCO_REDE_1)) {
417
                                arquivoBancoRede();
418
                        }
419
                        if (getTipoArquivoSelecionado().equals(ConstantesSEC.ArquivoBanco.ARQUIVO_BANCO_SAFRA_2)) {
420
                                arquivoBancoSafra();
421
                        }
422
 
423
                // PREENCHER COM DADOS DAS VENDAS
424
                List<VendaFormaPagamento> preLancamentos = new ArrayList<VendaFormaPagamento>();
425
                        preLancamentos = vendaFormaPagamentoService.consultarLancamentosCartoesNoPeriodo(getDataVendasSelecionada(), getDataVendasSelecionada(), null, getMaquinetasSelecionadas());
426
                        setListaVendaFormaPagamento(preLancamentos);
427
                        valorTotalBrutoCartoes = new Double(0.0);
428
                        for (VendaFormaPagamento vendaFormaPagamento : preLancamentos) {
429
                                somarValoresBruto(vendaFormaPagamento.getValorPagamento(), vendaFormaPagamento.getFormaPagamento());
430
 
431
                                CartaoBandeiraDTO cartaoFormaDePagamento = new CartaoBandeiraDTO();
432
                                cartaoFormaDePagamento.setBandeira(vendaFormaPagamento.getBandeiraCartao());
433
                                cartaoFormaDePagamento.setBruto(vendaFormaPagamento.getValorPagamento());
434
                                cartaoFormaDePagamento.setFormaPagamento(vendaFormaPagamento.getFormaPagamento());
435
                                cartaoResumo.adicionarPagamento(cartaoFormaDePagamento);
436
                        }
437
                        cartaoResumo.setCartoesPorBandeira((List<CartaoBandeiraDTO>) ordenador.ordenar(cartaoResumo.getCartoesPorBandeira()));
438
                } catch (Exception e) {
439
                        e.printStackTrace();
440
                } finally {
441
                        cartaoResumo.setCartoesPorBandeira((List<CartaoBandeiraDTO>) ordenador.ordenar(cartaoResumo.getCartoesPorBandeira()));
442
                }
443
        }
444
 
445
        private void arquivoBancoRede() {
446
                for (String linha : getLinhas()) {
447
                String[] dadosSeparados = linha.split(";");
448
                Date dataLinha = DataUtil.retornarDataApartirString("dd/MM/yyyy hh:mm:ss", dadosSeparados[0] + " " + dadosSeparados[1]);
449
                if (DataUtils.datasIguais(getDataVendasSelecionada(), dataLinha)) {
450
                                CartaoDTO cartao = new CartaoDTO();
451
                                cartao.setBandeira(StringUtil.setarUpperCaseComTrim(dadosSeparados[5]));
452
                        FormaPagamento formaPagamento = null;
453
                        String bandeira = StringUtil.setarUpperCaseComTrim(dadosSeparados[4]);
454
                        String tipoCartao = null;
455
                        if (bandeira.equals("DÉBITO") || bandeira.equals("DéBITO")) {
456
                                tipoCartao = TipoCartao.DEBITO.getValor();
457
                                formaPagamento = new FormaPagamento(ConstantesSEC.FormasDePagamento.FORMAPAGAMENTO_DEBITO);
458
                                if (cartao.getBandeira().equals("MASTERCARD")) {
459
                                        cartao.setBandeira("MAESTRO");
460
                                }
461
                        } else {
462
                                tipoCartao = TipoCartao.CREDITO.getValor();
463
                                String parcelas = dadosSeparados[3];
464
                                formaPagamento = new FormaPagamento(FormaPagamento.recuperarCodigoDaFormaDePagamento(parcelas));
465
                        }
466
                        cartao.setBrutoImportado(new Double(dadosSeparados[2].replace(".", "").replace(",", ".")));
467
                        preencherDadosArquivo(dataLinha, cartao, formaPagamento, tipoCartao);
468
                        }
469
                }
470
        }
471
 
472
        private void arquivoBancoSafra() {
473
                for (String linha : getLinhas()) {
474
                String[] dadosSeparados = linha.split(";");
475
                Date dataLinha = DataUtil.retornarDataApartirString("dd/MM/yyyy hh.mm.ss", dadosSeparados[4] + " " + dadosSeparados[5]);
476
                if (DataUtils.datasIguais(getDataVendasSelecionada(), dataLinha)) {
477
                                CartaoDTO cartao = new CartaoDTO();
478
                                cartao.setBandeira(StringUtil.setarUpperCaseComTrim(dadosSeparados[7]));
479
                        FormaPagamento formaPagamento = null;
480
                        String bandeira = StringUtil.setarUpperCaseComTrim(dadosSeparados[9]);
481
                        String tipoCartao = null;
482
                        if (bandeira.equals("00")) {
483
                                tipoCartao = TipoCartao.DEBITO.getValor();
484
                                formaPagamento = new FormaPagamento(ConstantesSEC.FormasDePagamento.FORMAPAGAMENTO_DEBITO);
485
                                if (cartao.getBandeira().equals("MASTERCARD")) {
486
                                        cartao.setBandeira("MAESTRO");
487
                                }
488
                        } else {
489
                                String parcelas = "";
490
                                if (bandeira.substring(0, 1).equals("0")) {
491
                                        parcelas = dadosSeparados[9].substring(1);
492
                                } else {
493
                                        parcelas = dadosSeparados[9];
494
                                }
495
                                tipoCartao = TipoCartao.CREDITO.getValor();
496
                                formaPagamento = new FormaPagamento(FormaPagamento.recuperarCodigoDaFormaDePagamento(parcelas));
497
                        }
498
                        cartao.setBrutoImportado(new Double(dadosSeparados[11].replace(".", "").replace(",", ".")));
499
                        preencherDadosArquivo(dataLinha, cartao, formaPagamento, tipoCartao);
500
                        }
501
                }
502
        }
503
 
504
        private void preencherDadosArquivo(Date dataLinha, CartaoDTO cartao, FormaPagamento formaPagamento, String tipoCartao) {
505
                cartao.setFormaDePagamento(formaPagamentoService.consultarPorId(formaPagamento));
506
                cartao.setDataVenda(dataLinha);
507
 
508
                somarValoresBrutoImportado(cartao.getBrutoImportado(), cartao.getFormaDePagamento());
509
 
510
                if (VerificadorUtil.naoEstaNulo(cartao.getBandeira())) {
511
                        if (cartao.getBandeira().equals("AMEX")) {
512
                                cartao.setBandeira("AMERICAN EXPRESS");
513
                        }
514
                        if (cartao.getBandeira().equals("HIPC")) {
515
                                cartao.setBandeira("HIPERCARD");
516
                        }
517
                }
518
 
519
                CartaoBandeiraDTO cartaoFormaDePagamento = new CartaoBandeiraDTO();
520
                cartaoFormaDePagamento.setBandeira(bandeiraCartaoService.consultarBandeiraCartoao(cartao.getBandeira(), tipoCartao));
521
                if (VerificadorUtil.estaNulo(cartaoFormaDePagamento.getBandeira())) {
522
                        cartaoFormaDePagamento.setBandeira(bandeiraCartaoService.consultarBandeiraCartoao("OUTROS", tipoCartao));
523
                }
524
                cartaoFormaDePagamento.setBrutoImportado(cartao.getBrutoImportado());
525
                cartaoFormaDePagamento.setFormaPagamento(cartao.getFormaDePagamento());
526
                cartaoResumo.adicionarPagamentoImportado(cartaoFormaDePagamento);
527
        }
528
 
529
        /*
530
    public static void main(String[] args) throws Exception {
531
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\arquivo.csv")));
532
        String linha = reader.readLine();
533
 
534
        List<CartaoDTO> cartoes = new ArrayList<CartaoDTO>();
535
                CartaoResumoDTO cartaoResumo = new CartaoResumoDTO();
536
                Double valorTotalBrutoCartoes = new Double(0.0);
537
        while ((linha = reader.readLine()) != null) {
538
                String[] dadosSeparados = linha.split(";");
539
                        CartaoDTO cartao = new CartaoDTO();
540
                        cartao.setBandeira(StringUtil.setarUpperCaseComTrim(dadosSeparados[5]));
541
                FormaPagamento formaPagamento = null;
542
                String bandeira = StringUtil.setarUpperCaseComTrim(dadosSeparados[4]);
543
                String tipoCartao = null;
544
                if (bandeira.equals("DÉBITO")) {
545
                        tipoCartao = TipoCartao.DEBITO.getValor();
546
                        formaPagamento = new FormaPagamento(ConstantesSEC.FormasDePagamento.FORMAPAGAMENTO_DEBITO);
547
                } else {
548
                        tipoCartao = TipoCartao.CREDITO.getValor();
549
                        String parcelas = dadosSeparados[3];
550
                        formaPagamento = new FormaPagamento(FormaPagamento.recuperarCodigoDaFormaDePagamento(parcelas));
551
                }
552
                cartao.setFormaDePagamento(formaPagamento);
553
                        cartao.setBruto(new Double(dadosSeparados[2]));
554
                        cartao.setDataVenda(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
555
 
556
                        cartoes.add(cartao);
557
//                              somarValoresBruto(vendaFormaPagamento.getValorPagamento(), vendaFormaPagamento.getFormaPagamento());
558
//                              somarValoresBruto(cartao.getBruto(), cartao.getFormaDePagamento());
559
 
560
                        CartaoBandeiraDTO cartaoFormaDePagamento = new CartaoBandeiraDTO();
561
 
562
                        BandeiraCartao bandeiraCartao = bandeiraCartaoService.consultarBandeiraCartoao(cartao.getBandeira(), tipoCartao);
563
                        cartaoFormaDePagamento.setBandeira(bandeiraCartao);
564
                        cartaoFormaDePagamento.setBruto(cartao.getBruto());
565
                        cartaoFormaDePagamento.setFormaPagamento(cartao.getFormaDePagamento());
566
                        cartaoResumo.adicionarPagamento(cartaoFormaDePagamento);
567
                }
568
        reader.close();
569
//            System.out.println(Arrays.toString(dadosSeparados));
570
//            System.out.println("Nome: " + dadosSeparados[0]);
571
//            System.out.println("País: " + dadosSeparados[1]);
572
//            System.out.println("Fórum: " + dadosSeparados[2]);
573
//            System.out.println("--------------------------");
574
    }
575
        */
576
        /***************************************************************/
577
 
578
        public void verificarLancamentos() {
579
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
580
                        public void execute() {
581
                                limparEntidade();
582
                                List<VendaFormaPagamento> preLancamentos = new ArrayList<VendaFormaPagamento>();
583
                                preLancamentos = vendaFormaPagamentoService.consultarLancamentosCartoesNoPeriodo(dataVendas, dataVendas, null, getMaquinetasSelecionadas());
584
                                setListaVendaFormaPagamento(preLancamentos);
585
 
586
                                cartoes = new ArrayList<CartaoDTO>();
587
                                cartaoResumo = new CartaoResumoDTO();
588
                                valorTotalBrutoCartoes = new Double(0.0);
589
                                for (VendaFormaPagamento vendaFormaPagamento : preLancamentos) {
590
                                        if (VerificadorUtil.estaNulo(vendaFormaPagamento.getCupom())) {
591
                                                CartaoDTO cartao = new CartaoDTO();
592
                                                cartao.setBandeira(vendaFormaPagamento.getBandeiraCartao().getDescricao());
593
                                                cartao.setFormaDePagamento(vendaFormaPagamento.getFormaPagamento());
594
                                                cartao.setBruto(vendaFormaPagamento.getValorPagamento());
595
                                                cartao.setDataVenda(vendaFormaPagamento.getVenda().getDataVenda());
596
 
597
                                                if (parcelaService.verificarPossuiParcelaAberta(vendaFormaPagamento.getVenda())) {
598
                                                        cartao.setParcelaGerada(true);
599
                                                        cartao.setGerarParcela(false);
600
                                                } else {
601
                                                        cartao.setParcelaGerada(false);
602
                                                        cartao.setGerarParcela(true);
603
                                                }
604
                                                cartao.setVendaFormaPagamento(vendaFormaPagamento);
605
                                                cartoes.add(cartao);
606
                                                somarValoresBruto(vendaFormaPagamento.getValorPagamento(), vendaFormaPagamento.getFormaPagamento());
607
 
608
                                                CartaoBandeiraDTO cartaoFormaDePagamento = new CartaoBandeiraDTO();
609
                                                cartaoFormaDePagamento.setBandeira(vendaFormaPagamento.getBandeiraCartao());
610
                                                cartaoFormaDePagamento.setBruto(vendaFormaPagamento.getValorPagamento());
611
                                                cartaoFormaDePagamento.setFormaPagamento(vendaFormaPagamento.getFormaPagamento());
612
                                                cartaoResumo.adicionarPagamento(cartaoFormaDePagamento);
613
                                        }
614
                                }
615
 
616
                                cartoes = (List<CartaoDTO>) ordenador.ordenar(cartoes);
617
                                cartaoResumo.setCartoesPorBandeira((List<CartaoBandeiraDTO>) ordenador.ordenar(cartaoResumo.getCartoesPorBandeira()));
618
                        }
619
                });
620
        }
621
 
622
        public void consultarLancamentos() {
623
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
624
                        public void execute() {
625
                                limparEntidade();
626
                                List<CartaoDTO> cartoesGerados = parcelaService.consultarContasDosCartoes(dataVendas, dataVendas);
627
                                adicionarDatasGeradas(cartoesGerados);
628
                                setCartoesGerados(cartoesGerados);
629
                                somarValoresLiquido(cartoesGerados);
630
                                LancadorMensagem.lancarSucesso("PARCELAS GERADAS COM SUCESSO");
631
                        }
632
                });
633
        }
634
 
635
        public void gerarLancamentos() {
636
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
637
                        public void execute() {
638
                                listaVendaFormaPagamento = new ArrayList<VendaFormaPagamento>();
639
                                for (CartaoDTO cartao : cartoes) {
640
                                        if (cartao.getGerarParcela()) {
641
                                                listaVendaFormaPagamento.add(cartao.getVendaFormaPagamento());
642
                                        }
643
                                }
644
                                limparEntidade();
645
                                List<CartaoDTO> cartoesGerados = parcelaService.gerarContasDosCartoes(listaVendaFormaPagamento);
646
                                adicionarDatasGeradas(cartoesGerados);
647
                                setCartoesGerados(cartoesGerados);
648
                                somarValoresLiquido(cartoesGerados);
649
                                LancadorMensagem.lancarSucesso("PARCELAS GERADAS COM SUCESSO");
650
                        }
651
 
652
                });
653
        }
654
 
655
        private void adicionarDatasGeradas(List<CartaoDTO> cartoesGerados) {
656
                listaDatas = new ArrayList<CartaoDataDTO>();
657
                for (CartaoDTO cartaoGerado : cartoesGerados) {
658
                        CartaoDataDTO cartaoDataDTO = new CartaoDataDTO();
659
                        cartaoDataDTO.setDataVenda(DateUtils.truncate(cartaoGerado.getParcela().getDataVencimento(), Calendar.DATE));
660
                        cartaoDataDTO.setDataNovaVenda(DateUtils.truncate(cartaoGerado.getParcela().getDataVencimento(), Calendar.DATE));
661
                        boolean adicionar = true;
662
                        for (CartaoDataDTO dataAdicionada : listaDatas) {
663
                                if (dataAdicionada.getDataVenda().equals(cartaoDataDTO.getDataVenda())) {
664
                                        adicionar = false;
665
                                        break;
666
                                }
667
                        }
668
                        if (adicionar) {
669
                                listaDatas.add(cartaoDataDTO);
670
                        }
671
                }
672
        }
673
 
674
        public void atualizarDatasCartoes() {
675
                for (CartaoDTO cartaoGerado : getCartoesGerados()) {
676
                        for (CartaoDataDTO dataAdicionada : getListaDatas()) {
677
                                Date dataTruncada = DateUtils.truncate(cartaoGerado.getParcela().getDataVencimento(), Calendar.DATE);
678
                                if (dataAdicionada.getDataVenda().equals(dataTruncada)) {
679
                                        Date novaData = atualizarParaNovaData(cartaoGerado.getParcela().getDataVencimento(), dataAdicionada.getDataNovaVenda());
680
                                        cartaoGerado.getParcela().setDataVencimento(novaData);
681
                                }
682
                        }
683
                }
684
                adicionarDatasGeradas(getCartoesGerados());
685
                salvarAlteracoesCartoes();
686
        }
687
 
688
        private Date atualizarParaNovaData(Date data, Date novaData) {
689
            Calendar c = Calendar.getInstance();
690
            c.setTime(data);
691
 
692
            Calendar cal = Calendar.getInstance();
693
            cal.setTime(novaData);
694
            c.set(Calendar.DATE, cal.get(Calendar.DATE));
695
            c.set(Calendar.MONTH, cal.get(Calendar.MONTH));
696
            c.set(Calendar.YEAR, cal.get(Calendar.YEAR));
697
            return c.getTime();
698
        }
699
 
700
        public void salvarAlteracoesCartoes() {
701
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
702
                        public void execute() {
703
                                for (CartaoDTO cartao : getCartoesGerados()) {
704
                                        parcelaService.alterar(cartao.getParcela());
705
                                }
706
                                LancadorMensagem.lancarSucesso("PARCELAS ATUALIZADAS COM SUCESSO");
707
                        }
708
                });
709
        }
710
 
711
}