Subversion Repositories Integrator Subversion

Rev

Rev 671 | Rev 679 | 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;
671 blopes 4
import java.util.Date;
667 blopes 5
import java.util.List;
6
 
668 blopes 7
import org.apache.commons.httpclient.util.DateUtil;
667 blopes 8
import org.primefaces.model.file.UploadedFile;
9
 
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.web.util.DataUtil;
13
 
14
public class ExtratoAntecipacaoArquivoDTO {
15
 
671 blopes 16
        private Date dataRecebimento;
667 blopes 17
        private ContaBancariaDTO contaBancariaDTO;
18
        private UploadedFile arquivoAntecipacao;
19
        private List<String> linhasArquivo;
669 blopes 20
        private String sqlConsultaParcelas;
671 blopes 21
        private String sqlAtualizacaoParcelas;
667 blopes 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
 
671 blopes 35
        public Date getDataRecebimento() {
36
                return dataRecebimento;
37
        }
38
        public void setDataRecebimento(Date dataRecebimento) {
39
                this.dataRecebimento = dataRecebimento;
40
        }
41
 
667 blopes 42
        public ContaBancariaDTO getContaBancariaDTO() {
43
                return contaBancariaDTO;
44
        }
45
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
46
                this.contaBancariaDTO = contaBancariaDTO;
47
        }
48
 
49
        public UploadedFile getArquivoAntecipacao() {
50
                return arquivoAntecipacao;
51
        }
52
        public void setArquivoAntecipacao(UploadedFile arquivoAntecipacao) {
53
                this.arquivoAntecipacao = arquivoAntecipacao;
54
        }
55
 
56
        public List<String> getLinhasArquivo() {
57
                return linhasArquivo;
58
        }
59
        public void setLinhasArquivo(List<String> linhasArquivo) {
60
                this.linhasArquivo = linhasArquivo;
61
        }
62
 
669 blopes 63
        public String getSqlConsultaParcelas() {
64
                return sqlConsultaParcelas;
65
        }
66
        public void setSqlConsultaParcelas(String sqlConsultaParcelas) {
67
                this.sqlConsultaParcelas = sqlConsultaParcelas;
68
        }
69
 
671 blopes 70
        public String getSqlAtualizacaoParcelas() {
71
                return sqlAtualizacaoParcelas;
72
        }
73
        public void setSqlAtualizacaoParcelas(String sqlAtualizacaoParcelas) {
74
                this.sqlAtualizacaoParcelas = sqlAtualizacaoParcelas;
75
        }
76
 
667 blopes 77
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTO() {
78
                return dadosExtratoAntecipacaoDTO;
79
        }
80
        public void setDadosExtratoAntecipacaoDTO(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO) {
81
                this.dadosExtratoAntecipacaoDTO = dadosExtratoAntecipacaoDTO;
82
        }
83
 
84
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTOSemConciliacao() {
85
                return dadosExtratoAntecipacaoDTOSemConciliacao;
86
        }
87
        public void setDadosExtratoAntecipacaoDTOSemConciliacao(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao) {
88
                this.dadosExtratoAntecipacaoDTOSemConciliacao = dadosExtratoAntecipacaoDTOSemConciliacao;
89
        }
90
 
91
        /**************************************/
92
 
93
        /*
94
        public Boolean todoExtratoConciliado() {
95
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
96
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
97
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
98
                                        return false;
99
                                }
100
                        }
101
                }
102
                return true;
103
        }
104
        */
105
 
671 blopes 106
        public void extrairDadosArquivo() {
667 blopes 107
                List<ExtratoAntecipacaoDTO> extratoAntecipacaoDTOs = new ArrayList<ExtratoAntecipacaoDTO>();
108
//                      setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
109
//                      getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
110
                Long sequencial = new Long(1);
111
                for (String linha : this.getLinhasArquivo()) {
112
//                      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
113
//                      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
114
//                      System.out.println(linha);
115
                        String[] dadosSeparados = linha.split(";");
116
                        if (dadosSeparados.length >= 29) {
117
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
118
                                        if (dadosSeparados[29].contains("antecipada")) {
119
                                                ExtratoAntecipacaoDTO extratoAntecipacaoDTO = new ExtratoAntecipacaoDTO();
120
                                                extratoAntecipacaoDTO.setSequencial(sequencial);
121
                                                sequencial++;
671 blopes 122
                                                extratoAntecipacaoDTO.setDataRecebimento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
678 blopes 123
                                                extratoAntecipacaoDTO.setDataVenda(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[1]));
667 blopes 124
                                                extratoAntecipacaoDTO.setDataVencimento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[2]));
125
                                                Double valor = 0.0;
126
                                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[7])) {
127
                                                        String valorLinha = dadosSeparados[7].replace("R$", "").trim();
128
                                                        valor = new Double(valorLinha.replace(".", "").replace(",", ".")        );
129
                                                }
670 blopes 130
                                                String bandeira = StringUtil.setarUpperCaseComTrim(dadosSeparados[21]);
131
                                                if (bandeira.equals("AMEX")) {
132
                                                        bandeira = "AMERICAN EXPRESS";
133
                                                }
134
                                                extratoAntecipacaoDTO.setBandeira(bandeira);
667 blopes 135
                                                extratoAntecipacaoDTO.setValorLiquido(valor);
668 blopes 136
                                                extratoAntecipacaoDTO.setQuantidadeParcelas(new Integer(dadosSeparados[22]));
137
                                                extratoAntecipacaoDTO.setNumeroDaParcela(new Integer(dadosSeparados[23]));
667 blopes 138
                                                extratoAntecipacaoDTOs.add(extratoAntecipacaoDTO);
139
//                                              [20] Débito ou Crédito
140
//                                              [21] Elo, Hipercard, Mastercard, Visa...
141
//                                              [22] Qnt de parcelas
142
//                                              [23] Número da parcela
143
//                                              [29] antecipada 758
144
                                        }
145
                                }
146
                        }
147
                }
148
 
669 blopes 149
                /*
668 blopes 150
                StringBuilder sqlConsulta = new StringBuilder();
151
                sqlConsulta.append("SELECT * FROM sc_sec.sec_parcela ");
152
                sqlConsulta.append("WHERE dat_pagamento IS NULL AND (");
667 blopes 153
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
668 blopes 154
//                      System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido() + " : " + extratoAntecipacaoDTO.getBandeira() + " : " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas());
155
                        Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
156
                        Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
157
                        sqlConsulta.append("(dat_vencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
158
                        sqlConsulta.append("val_valor >= " + valorInicial + " AND val_valor <= " + valorFinal + " AND ");
159
                        sqlConsulta.append("dsc_observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
160
                        sqlConsulta.append("OR ");
667 blopes 161
                }
668 blopes 162
                sqlConsulta.append(")");
669 blopes 163
//              System.out.println(sqlConsulta.toString().replace("OR )", ")"));
164
                setSqlConsultaParcelas(sqlConsulta.toString().replace("OR )", ")"));
165
                */
668 blopes 166
 
167
                /*
168
                StringBuilder sqlConsulta = new StringBuilder();
169
                sqlConsulta.append("SELECT * FROM Parcela p");
170
                sqlConsulta.append("WHERE p.dataPagamento IS NULL AND (");
171
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
172
//                      System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido() + " : " + extratoAntecipacaoDTO.getBandeira() + " : " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas());
173
                        Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
174
                        Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
175
                        sqlConsulta.append("(p.dataVencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
176
                        sqlConsulta.append("p.valor >= " + valorInicial + " AND p.valor <= " + valorFinal + " AND ");
177
                        sqlConsulta.append("p.observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
178
                        sqlConsulta.append("OR ");
179
                }
180
                sqlConsulta.append(")");
181
                System.out.println(sqlConsulta.toString().replace("OR )", ")"));
182
                */
183
 
669 blopes 184
                StringBuilder sqlConsulta = new StringBuilder();
185
                sqlConsulta.append("SELECT new br.com.ec.domain.dto.ParcelaDTO(");
186
                sqlConsulta.append(ParcelaDTO.CONSULTA_SEM_CATEGORIA_DTO);
187
                sqlConsulta.append(") FROM Parcela e ");
188
                sqlConsulta.append("WHERE e.indicadorAtivo IS TRUE AND e.dataPagamento IS NULL AND (");
189
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
190
                        Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
191
                        Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
192
                        sqlConsulta.append("(e.dataVencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
193
                        sqlConsulta.append("e.valor >= " + valorInicial + " AND e.valor <= " + valorFinal + " AND ");
194
                        sqlConsulta.append("e.observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
195
                        sqlConsulta.append("OR ");
196
                }
197
                sqlConsulta.append(")");
198
//              System.out.println(sqlConsulta.toString().replace("OR )", ")"));
668 blopes 199
 
669 blopes 200
                setDadosExtratoAntecipacaoDTOSemConciliacao(extratoAntecipacaoDTOs);
201
                setSqlConsultaParcelas(sqlConsulta.toString().replace("OR )", ")"));
667 blopes 202
        }
203
 
204
        public void extrairDados(List<ExtratoAntecipacaoArquivoDTO> extratosAnexadosAnteriormente) {
205
//              if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
206
//                      setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
207
//                      getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
208
//              }
209
        }
210
 
211
        public static void main(String[] args) {
212
                String valor = "SISPAG PAG TIT BANCO 00";
213
                System.out.println(!valor.contains("SISPAG PAG"));
214
        }
215
 
216
        /*
217
        private Boolean dadoExtratoBancarioEhNovo(List<AntecipacaoArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
218
                List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
219
                for (AntecipacaoArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) {
220
                        if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) {
221
                                extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO());
222
                                break;
223
                        }
224
                }
225
                for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) {
226
                        if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) &&
227
                                extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) &&
228
                                extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) {
229
                                return false;
230
                        }
231
                }
232
                return true;
233
        }
234
 
235
        public void marcarTodosDadosExtrato() {
236
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
237
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
238
                                extratoBancoDTO.setIndicadorCadastrar(true);
239
                        }
240
                }
241
        }
242
 
243
        public void desmarcarTodosDadosExtrato() {
244
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
245
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
246
                                extratoBancoDTO.setIndicadorCadastrar(false);
247
                        }
248
                }
249
        }
250
        */
251
}