Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
667 blopes 1
package br.com.ec.domain.dto;
2
 
3
import java.util.ArrayList;
4
import java.util.List;
5
 
668 blopes 6
import org.apache.commons.httpclient.util.DateUtil;
667 blopes 7
import org.primefaces.model.file.UploadedFile;
8
 
9
import br.com.ec.core.util.DataUtils;
668 blopes 10
import br.com.ec.core.util.StringUtil;
667 blopes 11
import br.com.ec.core.util.VerificadorUtil;
12
import br.com.ec.domain.model.tipos.TipoConciliacao;
13
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
14
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
15
import br.com.ec.web.util.DataUtil;
16
 
17
public class ExtratoAntecipacaoArquivoDTO {
18
 
19
        private ContaBancariaDTO contaBancariaDTO;
20
        private UploadedFile arquivoAntecipacao;
21
        private List<String> linhasArquivo;
22
 
23
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO;
24
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao;
25
 
26
        public ExtratoAntecipacaoArquivoDTO() {
27
                this.dadosExtratoAntecipacaoDTO = new ArrayList<ExtratoAntecipacaoDTO>();
28
        }
29
 
30
        public ExtratoAntecipacaoArquivoDTO(UploadedFile arquivoAntecipacao) {
31
                super();
32
                this.arquivoAntecipacao = arquivoAntecipacao;
33
        }
34
 
35
        public ContaBancariaDTO getContaBancariaDTO() {
36
                return contaBancariaDTO;
37
        }
38
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
39
                this.contaBancariaDTO = contaBancariaDTO;
40
        }
41
 
42
        public UploadedFile getArquivoAntecipacao() {
43
                return arquivoAntecipacao;
44
        }
45
        public void setArquivoAntecipacao(UploadedFile arquivoAntecipacao) {
46
                this.arquivoAntecipacao = arquivoAntecipacao;
47
        }
48
 
49
        public List<String> getLinhasArquivo() {
50
                return linhasArquivo;
51
        }
52
        public void setLinhasArquivo(List<String> linhasArquivo) {
53
                this.linhasArquivo = linhasArquivo;
54
        }
55
 
56
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTO() {
57
                return dadosExtratoAntecipacaoDTO;
58
        }
59
        public void setDadosExtratoAntecipacaoDTO(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO) {
60
                this.dadosExtratoAntecipacaoDTO = dadosExtratoAntecipacaoDTO;
61
        }
62
 
63
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTOSemConciliacao() {
64
                return dadosExtratoAntecipacaoDTOSemConciliacao;
65
        }
66
        public void setDadosExtratoAntecipacaoDTOSemConciliacao(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao) {
67
                this.dadosExtratoAntecipacaoDTOSemConciliacao = dadosExtratoAntecipacaoDTOSemConciliacao;
68
        }
69
 
70
        /**************************************/
71
 
72
        /*
73
        public Boolean todoExtratoConciliado() {
74
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
75
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
76
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
77
                                        return false;
78
                                }
79
                        }
80
                }
81
                return true;
82
        }
83
        */
84
 
85
        public void extrairDados() {
86
                List<ExtratoAntecipacaoDTO> extratoAntecipacaoDTOs = new ArrayList<ExtratoAntecipacaoDTO>();
87
//                      setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
88
//                      getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
89
                Long sequencial = new Long(1);
90
                for (String linha : this.getLinhasArquivo()) {
91
//                      10/10/2024;29/08/2024;29/05/2025;R$ 60,00;R$ 60,00;2,30%;R$ 1,38;R$ 58,62;Livre;100,0000%;21769086;-;-;0548980;93849763;ESPACO CASE;81704828;546479******1520;não;-;Crédito;Mastercard;10;9;ITAÚ UNIBANCO S.A.;7951;998611;-;-;antecipada
92
//                      10/10/2024;05/08/2024;05/06/2025;R$ 41,50;R$ 41,50;2,30%;R$ 0,95;R$ 40,55;Livre;100,0000%;32994398;-;-;0086277;62449554;ESPACO CASE;81704828;485464******4098;não;-;Crédito;Visa;10;10;ITAÚ UNIBANCO S.A.;7951;998611;-;-;antecipada
93
//                      System.out.println(linha);
94
                        String[] dadosSeparados = linha.split(";");
95
                        if (dadosSeparados.length >= 29) {
96
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
97
                                        if (dadosSeparados[29].contains("antecipada")) {
98
                                                ExtratoAntecipacaoDTO extratoAntecipacaoDTO = new ExtratoAntecipacaoDTO();
99
                                                extratoAntecipacaoDTO.setSequencial(sequencial);
100
                                                sequencial++;
101
                                                extratoAntecipacaoDTO.setDataVencimento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[2]));
102
                                                Double valor = 0.0;
103
                                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[7])) {
104
                                                        String valorLinha = dadosSeparados[7].replace("R$", "").trim();
105
                                                        valor = new Double(valorLinha.replace(".", "").replace(",", ".")        );
106
                                                }
107
                                                extratoAntecipacaoDTO.setValorLiquido(valor);
668 blopes 108
                                                extratoAntecipacaoDTO.setBandeira(StringUtil.setarUpperCaseComTrim(dadosSeparados[21]));
109
                                                extratoAntecipacaoDTO.setQuantidadeParcelas(new Integer(dadosSeparados[22]));
110
                                                extratoAntecipacaoDTO.setNumeroDaParcela(new Integer(dadosSeparados[23]));
667 blopes 111
                                                extratoAntecipacaoDTOs.add(extratoAntecipacaoDTO);
112
//                                              [20] Débito ou Crédito
113
//                                              [21] Elo, Hipercard, Mastercard, Visa...
114
//                                              [22] Qnt de parcelas
115
//                                              [23] Número da parcela
116
//                                              [29] antecipada 758
117
                                        }
118
                                }
119
                        }
120
                }
121
 
668 blopes 122
                StringBuilder sqlConsulta = new StringBuilder();
123
                sqlConsulta.append("SELECT * FROM sc_sec.sec_parcela ");
124
                sqlConsulta.append("WHERE dat_pagamento IS NULL AND (");
667 blopes 125
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
668 blopes 126
//                      System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido() + " : " + extratoAntecipacaoDTO.getBandeira() + " : " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas());
127
                        Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
128
                        Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
129
                        sqlConsulta.append("(dat_vencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
130
                        sqlConsulta.append("val_valor >= " + valorInicial + " AND val_valor <= " + valorFinal + " AND ");
131
                        sqlConsulta.append("dsc_observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
132
                        sqlConsulta.append("OR ");
667 blopes 133
                }
668 blopes 134
                sqlConsulta.append(")");
135
                System.out.println(sqlConsulta.toString().replace("OR )", ")"));
136
 
137
                /*
138
                StringBuilder sqlConsulta = new StringBuilder();
139
                sqlConsulta.append("SELECT * FROM Parcela p");
140
                sqlConsulta.append("WHERE p.dataPagamento IS NULL AND (");
141
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
142
//                      System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido() + " : " + extratoAntecipacaoDTO.getBandeira() + " : " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas());
143
                        Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
144
                        Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
145
                        sqlConsulta.append("(p.dataVencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
146
                        sqlConsulta.append("p.valor >= " + valorInicial + " AND p.valor <= " + valorFinal + " AND ");
147
                        sqlConsulta.append("p.observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
148
                        sqlConsulta.append("OR ");
149
                }
150
                sqlConsulta.append(")");
151
                System.out.println(sqlConsulta.toString().replace("OR )", ")"));
152
                */
153
 
154
                // CONSULTA COM AS PARCELAS
155
 
156
                // IDENTIFICAÇÃO DAS PARCELAS
157
 
158
                // CONCILIAÇÃO
667 blopes 159
        }
160
 
161
        public void extrairDados(List<ExtratoAntecipacaoArquivoDTO> extratosAnexadosAnteriormente) {
162
//              if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
163
//                      setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
164
//                      getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
165
//              }
166
        }
167
 
168
        public static void main(String[] args) {
169
                String valor = "SISPAG PAG TIT BANCO 00";
170
                System.out.println(!valor.contains("SISPAG PAG"));
171
        }
172
 
173
 
174
        private List<ExtratoAntecipacaoDTO> extrairDadosItau(List<ExtratoAntecipacaoArquivoDTO> extratosAnexadosAnteriormente) {
175
                List<ExtratoAntecipacaoDTO> extratosExtraidos = new ArrayList<ExtratoAntecipacaoDTO>();
176
                List<ExtratoAntecipacaoDTO> extratosAntecipacaoDTOSemConciliacao = new ArrayList<ExtratoAntecipacaoDTO>();
177
                for (String linha : this.getLinhasArquivo()) {
178
                        String[] dadosSeparados = linha.split(";");
179
                        if (dadosSeparados.length > 0) {
180
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
181
                                        if (dadosSeparados[0].contains("/")) {
182
                                                ExtratoAntecipacaoDTO extratoBancoDTO = new ExtratoAntecipacaoDTO();
183
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
184
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
185
                                                extratoBancoDTO.setIndicadorCadastrar(false);
186
                                                if (dadosSeparados.length >= 3) {
187
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
188
                                                        Double valor = 0.0;
189
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
190
                                                                valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") );
191
                                                        }
192
                                                        extratoBancoDTO.setValorTotal(valor);
193
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
194
                                                        if (extratoBancoDTO.getDescricao().contains("DB")) {
195
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
196
                                                } else if (extratoBancoDTO.getDescricao().contains("CD") ||
197
                                                                   extratoBancoDTO.getDescricao().contains("REDE  EL ") ||
198
                                                                   extratoBancoDTO.getDescricao().contains("REDE  MC ") ||
199
                                                                   extratoBancoDTO.getDescricao().contains("REDE  VS ") ||
200
                                                                   extratoBancoDTO.getDescricao().contains("REDE  HC ") ||
201
                                                                   extratoBancoDTO.getDescricao().contains("REDE  AM ")) {
202
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
203
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSF ESPACO") ||
204
                                                                   extratoBancoDTO.getDescricao().contains("TRANSF  ESPACO")) {
205
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
206
                                                } else if ((extratoBancoDTO.getDescricao().contains("TRANSF") ||
207
                                                                   extratoBancoDTO.getDescricao().contains("PIX QRS")) &&
208
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
209
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
210
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF ESPACO")) {
211
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
212
                                                } else if (extratoBancoDTO.getDescricao().contains("REND PAGO APLIC AUT")) {
213
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());       
214
                                                } else if ((!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL") &&
215
                                                                   !extratoBancoDTO.getDescricao().contains("SALDO FINAL") &&
216
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
217
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
218
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG TRIBUTOS") &&
219
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG FORNECEDORES") &&
220
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG PAG") &&
221
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG  PAG") &&
222
                                                                   !extratoBancoDTO.getDescricao().contains("RES APLIC AUT") &&
223
                                                                   !extratoBancoDTO.getDescricao().contains("APL APLIC AUT") &&
224
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG CONSOLIDADO")) ||
225
                                                                   (extratoBancoDTO.getDescricao().contains("SISPAG SALARIOS"))) {
226
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
227
                                                                if (valor < 0.0) {
228
                                                                        extratoBancoDTO.setValorTotal(valor * -1);
229
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
230
                                                                } else {
231
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
232
                                                                }
233
                                                        }
234
                                                }
235
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
236
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
237
                                                        } else {
238
                                                                extratosAntecipacaoDTOSemConciliacao.add(extratoBancoDTO);
239
                                                        }
240
//                                                      if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
241
//                                                              extratoBancoDTO.setIndicadorCadastrar(false);
242
//                                                      }
243
                                                        extratosExtraidos.add(extratoBancoDTO);
244
                                                }
245
                                        }
246
                                }
247
                        }
248
                }
249
                setDadosExtratoAntecipacaoDTOSemConciliacao(extratosAntecipacaoDTOSemConciliacao);
250
                return extratosExtraidos;
251
        }
252
 
253
        /*
254
        private Boolean dadoExtratoBancarioEhNovo(List<AntecipacaoArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
255
                List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
256
                for (AntecipacaoArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) {
257
                        if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) {
258
                                extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO());
259
                                break;
260
                        }
261
                }
262
                for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) {
263
                        if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) &&
264
                                extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) &&
265
                                extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) {
266
                                return false;
267
                        }
268
                }
269
                return true;
270
        }
271
 
272
        public void marcarTodosDadosExtrato() {
273
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
274
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
275
                                extratoBancoDTO.setIndicadorCadastrar(true);
276
                        }
277
                }
278
        }
279
 
280
        public void desmarcarTodosDadosExtrato() {
281
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
282
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
283
                                extratoBancoDTO.setIndicadorCadastrar(false);
284
                        }
285
                }
286
        }
287
        */
288
}