Subversion Repositories Integrator Subversion

Rev

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