Subversion Repositories Integrator Subversion

Rev

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