Subversion Repositories Integrator Subversion

Rev

Rev 375 | Rev 377 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
281 espaco 1
package br.com.ec.controller;
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.List;
9
 
10
import javax.inject.Inject;
11
import javax.inject.Named;
12
 
13
import org.primefaces.model.file.UploadedFile;
14
import org.springframework.context.annotation.Scope;
15
 
16
import br.com.ec.core.exception.NegocioException;
17
import br.com.ec.core.generic.GenericService;
18
import br.com.ec.core.util.DataUtils;
19
import br.com.ec.core.util.VerificadorUtil;
20
import br.com.ec.domain.dto.ConciliacaoBancariaDTO;
21
import br.com.ec.domain.dto.ConciliacaoBancariaLancamentoDTO;
22
import br.com.ec.domain.dto.ConciliacaoBancariaRecebiveisDTO;
23
import br.com.ec.domain.dto.EmpresaDTO;
296 espaco 24
import br.com.ec.domain.dto.ExtratoBancarioArquivoDTO;
281 espaco 25
import br.com.ec.domain.dto.ParcelaDTO;
26
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
27
import br.com.ec.domain.service.ConciliacaoBancariaService;
296 espaco 28
import br.com.ec.domain.service.ExtratoBancoService;
281 espaco 29
import br.com.ec.domain.shared.ConstantesSEC;
30
import br.com.ec.web.exception.VerificadorLancamentoException;
31
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
32
import br.com.ec.web.generic.AbstractBean;
294 espaco 33
import br.com.ec.web.message.LancadorMensagem;
281 espaco 34
 
35
@Named
36
@Scope("view")
37
public class ConciliacaoBancariaBean extends AbstractBean<ConciliacaoBancariaDTO> implements Serializable {
38
 
39
        private static final long serialVersionUID = 1L;
40
 
41
        private List<EmpresaDTO> empresasDTO;
42
 
296 espaco 43
        private ExtratoBancarioArquivoDTO arquivoExtratoBancarioDTO;
281 espaco 44
 
45
        private ConciliacaoBancariaService conciliacaoBancariaService;
296 espaco 46
        private ExtratoBancoService extratoBancoService;
281 espaco 47
 
48
        @Inject
296 espaco 49
        public ConciliacaoBancariaBean(ConciliacaoBancariaService conciliacaoBancariaService, ExtratoBancoService extratoBancoService) {
281 espaco 50
                this.conciliacaoBancariaService = conciliacaoBancariaService;
296 espaco 51
                this.extratoBancoService = extratoBancoService;
281 espaco 52
        }
53
 
54
        @Override
55
        public GenericService<ConciliacaoBancariaDTO> getService() {
56
                return null;
57
        }
58
 
59
        @Override
60
        public ConciliacaoBancariaDTO getId() {
61
                return null;
62
        }
63
 
64
        @Override
65
        public void preCarregamento() {
66
                limparEntidade();
67
        }
68
 
69
        @Override
70
        public void limparEntidade() {
71
                setEntidade(new ConciliacaoBancariaDTO());
296 espaco 72
                setArquivoExtratoBancarioDTO(new ExtratoBancarioArquivoDTO());
281 espaco 73
        }
74
 
75
        public TipoExtratoBancarioCsv[] getTiposExtratosBancariosCsv() {
76
                return TipoExtratoBancarioCsv.values();
77
        }
78
 
296 espaco 79
        public ExtratoBancarioArquivoDTO getArquivoExtratoBancarioDTO() {
281 espaco 80
                return arquivoExtratoBancarioDTO;
81
        }
296 espaco 82
        public void setArquivoExtratoBancarioDTO(ExtratoBancarioArquivoDTO arquivoExtratoBancarioDTO) {
281 espaco 83
                this.arquivoExtratoBancarioDTO = arquivoExtratoBancarioDTO;
84
        }
85
 
86
        public List<EmpresaDTO> getEmpresasDTO() {
87
                if (VerificadorUtil.isListaNulaOuVazia(empresasDTO)) {
88
                        List<EmpresaDTO> empresasDTO = new ArrayList<EmpresaDTO>();
89
                        empresasDTO.add(new EmpresaDTO(ConstantesSEC.Empresa.CODIGO_EMPRESA_ESPACO_CASE_1, ConstantesSEC.Empresa.DESCRICAO_EMPRESA_ESPACO_CASE));
90
                        empresasDTO.add(new EmpresaDTO(ConstantesSEC.Empresa.CODIGO_EMPRESA_CASA_DAS_CAPAS_4, ConstantesSEC.Empresa.DESCRICAO_EMPRESA_CASA_DAS_CAPAS));
91
                        setEmpresasDTO(empresasDTO);
92
                }
93
                return empresasDTO;
94
        }
95
        public void setEmpresasDTO(List<EmpresaDTO> empresasDTO) {
96
                this.empresasDTO = empresasDTO;
97
        }
98
 
99
        /*******************************************/
296 espaco 100
 
101
        public void consultarConciliacaoBancaria() {
102
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
103
                        public void execute() {
104
                                if (VerificadorUtil.estaNulo(getEntidade().getVigenciaDTO())) {
105
                                        throw new NegocioException("SELECIONE A VIGÊNCIA");
376 espaco 106
                                }      
296 espaco 107
                                setEntidade(conciliacaoBancariaService.preencherValores(getEntidade()));
108
                        }
109
                });
110
        }
281 espaco 111
 
296 espaco 112
        public void conciliar(final ConciliacaoBancariaLancamentoDTO conciliacaoBancariaLancamentoDTO) {
281 espaco 113
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
114
                        public void execute() {
296 espaco 115
                                conciliacaoBancariaService.realizarConciliacao(conciliacaoBancariaLancamentoDTO);
116
                                consultarConciliacaoBancaria();
117
                                LancadorMensagem.lancarSucesso("CONCILIAÇÃO REALIZADA COM SUCESSO");
118
                        }
119
                });
120
        }
121
 
122
        public void conciliarExtratosComArquivos() {
123
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
124
                        public void execute() {
125
                                if (VerificadorUtil.estaNulo(getEntidade().getVigenciaDTO())) {
126
                                        throw new NegocioException("SELECIONE A VIGÊNCIA");
281 espaco 127
                                }
296 espaco 128
                                extratoBancoService.conciliarExtratosComArquivos(getEntidade().getLancamentosDTO());
129
                                consultarConciliacaoBancaria();
130
                                LancadorMensagem.lancarSucesso("EXTRATOS ATUALIZADOS COM SUCESSO");
131
                        }
132
                });
133
        }
134
 
135
        public void conciliarExtratosComArquivos(final ConciliacaoBancariaLancamentoDTO conciliacaoBancariaLancamentoDTO) {
136
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
137
                        public void execute() {
138
                                if (VerificadorUtil.estaNulo(getEntidade().getVigenciaDTO())) {
139
                                        throw new NegocioException("SELECIONE A VIGÊNCIA");
281 espaco 140
                                }
296 espaco 141
                                List<ConciliacaoBancariaLancamentoDTO> conciliacoes = new ArrayList<ConciliacaoBancariaLancamentoDTO>();
142
                                conciliacoes.add(conciliacaoBancariaLancamentoDTO);
143
                                extratoBancoService.conciliarExtratosComArquivos(conciliacoes);
144
                                consultarConciliacaoBancaria();
145
                                LancadorMensagem.lancarSucesso("EXTRATOS ATUALIZADOS COM SUCESSO");
281 espaco 146
                        }
147
                });
148
        }
149
 
296 espaco 150
        public void uploadArquivoExtratoBancario() {
294 espaco 151
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
152
                        public void execute() {
296 espaco 153
                                ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO = conciliacaoBancariaService.uploadArquivoExtratoBancario(getArquivoExtratoBancarioDTO());
154
                                getEntidade().getArquivosExtratoBancarioDTO().add(extratoBancarioArquivoDTO);
155
                                setArquivoExtratoBancarioDTO(new ExtratoBancarioArquivoDTO());
156
                                LancadorMensagem.lancarSucesso(extratoBancarioArquivoDTO.getArquivoExtratoBancario().getFileName() + " FOI ADICIONADO COM SUCESSO!");
157
                        }
158
                });
159
        }
160
 
161
        public void removerArquivoExtratoBancarioAnexado(final ExtratoBancarioArquivoDTO conciliacaoBancariaArquivoExtratoDTO) {
162
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
163
                        public void execute() {
294 espaco 164
                                getEntidade().getArquivosExtratoBancarioDTO().remove(conciliacaoBancariaArquivoExtratoDTO);
165
                                LancadorMensagem.lancarSucesso("ARQUIVO REMOVIDO COM SUCESSO");
166
                        }
167
                });
168
        }
169
 
281 espaco 170
        public List<String> extrairLinhasArquivo(UploadedFile arquivo) {
171
                BufferedReader reader = null;
172
                List<String> linhas = new ArrayList<String>();
173
                try {
174
                        reader = new BufferedReader(new InputStreamReader(arquivo.getInputStream()));
175
                        String linha = reader.readLine();
176
                        linha = reader.readLine();
177
                        linha = reader.readLine();
178
                while ((linha = reader.readLine()) != null) {
179
                        linhas.add(linha);
180
                }
181
                } catch (Exception ex) {
182
                        ex.printStackTrace();
183
                } finally {
184
                        try {
185
                                reader.close();
186
                        } catch (IOException exc) {
187
                                exc.printStackTrace();
188
                        }
189
                }
190
                return linhas;
191
        }
192
 
375 espaco 193
        /*******************************************************/
194
 
281 espaco 195
        public void consultarConciliacaoBancariaTeste() {
196
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
197
                        public void execute() {
296 espaco 198
                                if (VerificadorUtil.estaNulo(getEntidade().getVigenciaDTO())) {
281 espaco 199
                                        throw new NegocioException("SELECIONE A VIGÊNCIA");
200
                                }
201
                                adicionarValoresTeste();
202
                        }
203
                });
204
        }
205
 
206
        public void adicionarValoresTeste() {
207
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
208
                        public void execute() {
209
                                ConciliacaoBancariaDTO conciliacaoCompleta = new ConciliacaoBancariaDTO();
296 espaco 210
                                conciliacaoCompleta.setVigenciaDTO(getEntidade().getVigenciaDTO());
281 espaco 211
                                conciliacaoCompleta.setArquivosExtratoBancarioDTO(getEntidade().getArquivosExtratoBancarioDTO());
212
 
213
                                List<ConciliacaoBancariaLancamentoDTO> lancamentos = new ArrayList<ConciliacaoBancariaLancamentoDTO>();
214
 
215
                                ConciliacaoBancariaLancamentoDTO lancamento = new ConciliacaoBancariaLancamentoDTO();
216
                                lancamento.setDataConciliacao(DataUtils.converterStringParaData("01/07/2021"));
217
                                lancamento.setValorDebitoBanco(4139.36);
218
                                lancamento.setValorDebitoSistema(4139.49);
219
                                lancamento.setValorCreditoBanco(4884.52);
220
                                lancamento.setValorCreditoSistema(4844.68);
221
 
222
                                List<ConciliacaoBancariaRecebiveisDTO> recebiveisDebitos = new ArrayList<ConciliacaoBancariaRecebiveisDTO>();
223
 
224
                                // BRADESCO: DÉBITOS ESPAÇO CASE
225
                                ConciliacaoBancariaRecebiveisDTO recebivelDEC = new ConciliacaoBancariaRecebiveisDTO();
226
                                recebivelDEC.setObservacao("BRADESCO: DÉBITOS ESPAÇO CASE");
227
                                ParcelaDTO parcela1 = new ParcelaDTO();
228
                                parcela1.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
229
                                parcela1.setObservacao("REDE MASTER DÉBITO REDECARD S A");
230
                                parcela1.setValor(1331.58);
296 espaco 231
                                recebivelDEC.getParcelasExtratoParaConciliar().add(parcela1);
281 espaco 232
                                ParcelaDTO parcela2 = new ParcelaDTO();
233
                                parcela2.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
234
                                parcela2.setObservacao("REDE HIPER DÉBITO REDECARD S A");
235
                                parcela2.setValor(97.95);
296 espaco 236
                                recebivelDEC.getParcelasExtratoParaConciliar().add(parcela2);
281 espaco 237
 
238
                                ParcelaDTO parcela3 = new ParcelaDTO();
239
                                parcela3.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
240
                                parcela3.setObservacao("DÉBITO DA VENDA 241629");
241
                                parcela3.setValor(1331.52);
242
                                recebivelDEC.getParcelasSistema().add(parcela3);
243
                                ParcelaDTO parcela4 = new ParcelaDTO();
244
                                parcela4.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
245
                                parcela4.setObservacao("DÉBITO DA VENDA 214511");
246
                                parcela4.setValor(97.90);
247
                                recebivelDEC.getParcelasSistema().add(parcela4);
248
                                recebiveisDebitos.add(recebivelDEC);
249
 
250
                                // BRADESCO: DÉBITOS CASA DAS CAPAS
251
                                ConciliacaoBancariaRecebiveisDTO recebivelDCC = new ConciliacaoBancariaRecebiveisDTO();
252
                                recebivelDCC.setObservacao("BRADESCO: DÉBITOS CASA DAS CAPAS");
253
                                ParcelaDTO parcela5 = new ParcelaDTO();
254
                                parcela5.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
255
                                parcela5.setObservacao("REDE MASTER DÉBITO REDECARD S A");
256
                                parcela5.setValor(31.00);
296 espaco 257
                                recebivelDCC.getParcelasExtratoParaConciliar().add(parcela5);
281 espaco 258
                                ParcelaDTO parcela6 = new ParcelaDTO();
259
                                parcela6.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
260
                                parcela6.setObservacao("REDE HIPER DÉBITO REDECARD S A");
261
                                parcela6.setValor(7.95);
296 espaco 262
                                recebivelDCC.getParcelasExtratoParaConciliar().add(parcela6);
281 espaco 263
 
264
                                ParcelaDTO parcela7 = new ParcelaDTO();
265
                                parcela7.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
266
                                parcela7.setObservacao("DÉBITO DA VENDA 123124");
267
                                parcela7.setValor(31.20);
268
                                recebivelDCC.getParcelasSistema().add(parcela7);
269
                                ParcelaDTO parcela8 = new ParcelaDTO();
270
                                parcela8.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
271
                                parcela8.setObservacao("DÉBITO DA VENDA 123132");
272
                                parcela8.setValor(7.05);
273
                                recebivelDCC.getParcelasSistema().add(parcela8);
274
                                recebiveisDebitos.add(recebivelDCC);
275
 
276
                                lancamento.setParcelasRecebiveisDebitos(recebiveisDebitos);
277
 
278
                                List<ConciliacaoBancariaRecebiveisDTO> recebiveisCreditos = new ArrayList<ConciliacaoBancariaRecebiveisDTO>();
279
                                ConciliacaoBancariaRecebiveisDTO recebivelCEC = new ConciliacaoBancariaRecebiveisDTO();
280
                                // BRADESCO: CRÉDITOS ESPAÇO CASE
281
                                recebivelCEC.setObservacao("BRADESCO: CRÉDITOS ESPAÇO CASE");
282
                                ParcelaDTO parcela9 = new ParcelaDTO();
283
                                parcela9.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
284
                                parcela9.setObservacao("REDE MASTER CRÉDITO REDECARD S A");
285
                                parcela9.setValor(2331.58);
296 espaco 286
                                recebivelCEC.getParcelasExtratoParaConciliar().add(parcela9);
281 espaco 287
                                ParcelaDTO parcela10 = new ParcelaDTO();
288
                                parcela10.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
289
                                parcela10.setObservacao("REDE HIPER CRÉDITO REDECARD S A");
290
                                parcela10.setValor(107.95);
296 espaco 291
                                recebivelCEC.getParcelasExtratoParaConciliar().add(parcela10);
281 espaco 292
 
293
                                ParcelaDTO parcela11 = new ParcelaDTO();
294
                                parcela11.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
295
                                parcela11.setObservacao("CRÉDITO 6/6 DA VENDA 241629");
296
                                parcela11.setValor(1831.02);
297
                                recebivelCEC.getParcelasSistema().add(parcela11);
298
                                ParcelaDTO parcela12 = new ParcelaDTO();
299
                                parcela12.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
300
                                parcela12.setObservacao("CRÉDITO 1/1 DA VENDA 214511");
301
                                parcela12.setValor(2007.00);
302
                                recebivelCEC.getParcelasSistema().add(parcela12);
303
                                recebiveisCreditos.add(recebivelCEC);
304
 
305
                                // BRADESCO: DÉBITOS CASA DAS CAPAS
306
                                ConciliacaoBancariaRecebiveisDTO recebivelCCC = new ConciliacaoBancariaRecebiveisDTO();
307
                                recebivelCCC.setObservacao("BRADESCO: CRÉDITOS CASA DAS CAPAS");
308
                                ParcelaDTO parcela13 = new ParcelaDTO();
309
                                parcela13.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
310
                                parcela13.setObservacao("REDE MASTER CRÉDITO REDECARD S A");
311
                                parcela13.setValor(310.00);
296 espaco 312
                                recebivelCCC.getParcelasExtratoParaConciliar().add(parcela13);
281 espaco 313
                                ParcelaDTO parcela14 = new ParcelaDTO();
314
                                parcela14.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
315
                                parcela14.setObservacao("REDE HIPER CRÉDITO REDECARD S A");
316
                                parcela14.setValor(70.25);
296 espaco 317
                                recebivelCCC.getParcelasExtratoParaConciliar().add(parcela14);
281 espaco 318
 
319
                                ParcelaDTO parcela15 = new ParcelaDTO();
320
                                parcela15.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
321
                                parcela15.setObservacao("CRÉDITO 1/1 DA VENDA 123124");
322
                                parcela15.setValor(33.20);
323
                                recebivelCCC.getParcelasSistema().add(parcela15);
324
                                ParcelaDTO parcela16 = new ParcelaDTO();
325
                                parcela16.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
326
                                parcela16.setObservacao("CRÉDITO 2/3 DA VENDA 123132");
327
                                parcela16.setValor(70.15);
328
                                recebivelCCC.getParcelasSistema().add(parcela16);
329
                                recebiveisCreditos.add(recebivelCCC);
330
 
331
                                lancamento.setParcelasRecebiveisCreditos(recebiveisCreditos);
332
 
333
                                ParcelaDTO parcela = new ParcelaDTO();
334
                                parcela.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
335
                                parcela.setObservacao("PARCELA OPERACAO CREDITO");
336
                                parcela.setValor(8164.70);
337
                                lancamento.getParcelasPagamentosBanco().add(parcela);
338
 
339
                                ParcelaDTO parcelaa = new ParcelaDTO();
340
                                parcelaa.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
341
                                parcelaa.setObservacao("PAGTO ELETRON COBRANCA");
342
                                parcelaa.setValor(1504.80);
343
                                lancamento.getParcelasPagamentosBanco().add(parcelaa);
344
 
345
                                ParcelaDTO parcelaPagamento = new ParcelaDTO();
346
                                parcelaPagamento.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
347
                                parcelaPagamento.setObservacao("BNDES");
348
                                parcelaPagamento.setValor(8164.70);
349
                                lancamento.getParcelasPagamentos().add(parcelaPagamento);
350
 
351
                                ParcelaDTO parcelaPagamento2 = new ParcelaDTO();
352
                                parcelaPagamento2.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
353
                                parcelaPagamento2.setObservacao("CUSTAS");
354
                                parcelaPagamento2.setValor(1504.80);
355
                                lancamento.getParcelasPagamentos().add(parcelaPagamento2);
356
 
357
                                List<ParcelaDTO> parcelasConciliacoesPagamentos = new ArrayList<ParcelaDTO>();
358
                                ParcelaDTO parcelaConciliacao = new ParcelaDTO();
359
                                parcelaConciliacao.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
360
                                parcelaConciliacao.setObservacao("MAQUINETA REDE");
361
                                parcelaConciliacao.setValor(350.0);
362
                                parcelasConciliacoesPagamentos.add(parcelaConciliacao);
363
                                lancamento.setParcelasPagamentosConciliacoes(parcelasConciliacoesPagamentos);
364
 
365
                                List<ParcelaDTO> parcelasConciliacoesRecebimentos = new ArrayList<ParcelaDTO>();
366
                                ParcelaDTO parcelaConciliacao2 = new ParcelaDTO();
367
                                parcelaConciliacao2.setDataPagamento(DataUtils.converterStringParaData("01/07/2021"));
368
                                parcelaConciliacao2.setObservacao("CONCILIAÇÃO");
369
                                parcelaConciliacao2.setValor(40.0);
370
                                parcelasConciliacoesRecebimentos.add(parcelaConciliacao2);
371
                                lancamento.setParcelasRecebimentosConciliacoes(parcelasConciliacoesRecebimentos);
372
 
373
                                lancamentos.add(lancamento);
374
 
375
                                lancamento = new ConciliacaoBancariaLancamentoDTO();
376
                                lancamento.setDataConciliacao(DataUtils.converterStringParaData("02/07/2021"));
377
                                lancamento.setValorDebitoBanco(4708.98);
378
                                lancamento.setValorDebitoSistema(4708.98);
379
                                lancamento.setValorCreditoBanco(3846.88);
380
                                lancamento.setValorCreditoSistema(3854.27);
381
 
382
                                lancamentos.add(lancamento);
383
 
384
                                conciliacaoCompleta.setLancamentosDTO(lancamentos);
385
 
386
                                setEntidade(conciliacaoCompleta);
387
                        }
388
                });
389
        }
390
 
391
}