Subversion Repositories Integrator Subversion

Rev

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