Subversion Repositories Integrator Subversion

Rev

Rev 668 | Go to most recent revision | Details | 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
 
6
import org.primefaces.model.file.UploadedFile;
7
 
8
import br.com.ec.core.util.DataUtils;
9
import br.com.ec.core.util.VerificadorUtil;
10
import br.com.ec.domain.model.tipos.TipoConciliacao;
11
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
12
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
13
import br.com.ec.web.util.DataUtil;
14
 
15
public class ExtratoAntecipacaoArquivoDTO {
16
 
17
        private ContaBancariaDTO contaBancariaDTO;
18
        private UploadedFile arquivoAntecipacao;
19
        private List<String> linhasArquivo;
20
 
21
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO;
22
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao;
23
 
24
        public ExtratoAntecipacaoArquivoDTO() {
25
                this.dadosExtratoAntecipacaoDTO = new ArrayList<ExtratoAntecipacaoDTO>();
26
        }
27
 
28
        public ExtratoAntecipacaoArquivoDTO(UploadedFile arquivoAntecipacao) {
29
                super();
30
                this.arquivoAntecipacao = arquivoAntecipacao;
31
        }
32
 
33
        public ContaBancariaDTO getContaBancariaDTO() {
34
                return contaBancariaDTO;
35
        }
36
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
37
                this.contaBancariaDTO = contaBancariaDTO;
38
        }
39
 
40
        public UploadedFile getArquivoAntecipacao() {
41
                return arquivoAntecipacao;
42
        }
43
        public void setArquivoAntecipacao(UploadedFile arquivoAntecipacao) {
44
                this.arquivoAntecipacao = arquivoAntecipacao;
45
        }
46
 
47
        public List<String> getLinhasArquivo() {
48
                return linhasArquivo;
49
        }
50
        public void setLinhasArquivo(List<String> linhasArquivo) {
51
                this.linhasArquivo = linhasArquivo;
52
        }
53
 
54
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTO() {
55
                return dadosExtratoAntecipacaoDTO;
56
        }
57
        public void setDadosExtratoAntecipacaoDTO(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO) {
58
                this.dadosExtratoAntecipacaoDTO = dadosExtratoAntecipacaoDTO;
59
        }
60
 
61
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTOSemConciliacao() {
62
                return dadosExtratoAntecipacaoDTOSemConciliacao;
63
        }
64
        public void setDadosExtratoAntecipacaoDTOSemConciliacao(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao) {
65
                this.dadosExtratoAntecipacaoDTOSemConciliacao = dadosExtratoAntecipacaoDTOSemConciliacao;
66
        }
67
 
68
        /**************************************/
69
 
70
        /*
71
        public Boolean todoExtratoConciliado() {
72
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
73
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
74
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
75
                                        return false;
76
                                }
77
                        }
78
                }
79
                return true;
80
        }
81
        */
82
 
83
        public void extrairDados() {
84
                List<ExtratoAntecipacaoDTO> extratoAntecipacaoDTOs = new ArrayList<ExtratoAntecipacaoDTO>();
85
//                      setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
86
//                      getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
87
                Long sequencial = new Long(1);
88
                for (String linha : this.getLinhasArquivo()) {
89
//                      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
90
//                      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
91
//                      System.out.println(linha);
92
                        String[] dadosSeparados = linha.split(";");
93
                        if (dadosSeparados.length >= 29) {
94
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
95
                                        if (dadosSeparados[29].contains("antecipada")) {
96
                                                ExtratoAntecipacaoDTO extratoAntecipacaoDTO = new ExtratoAntecipacaoDTO();
97
                                                extratoAntecipacaoDTO.setSequencial(sequencial);
98
                                                sequencial++;
99
                                                extratoAntecipacaoDTO.setDataVencimento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[2]));
100
                                                Double valor = 0.0;
101
                                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[7])) {
102
                                                        String valorLinha = dadosSeparados[7].replace("R$", "").trim();
103
                                                        valor = new Double(valorLinha.replace(".", "").replace(",", ".")        );
104
                                                }
105
                                                extratoAntecipacaoDTO.setValorLiquido(valor);
106
                                                extratoAntecipacaoDTOs.add(extratoAntecipacaoDTO);
107
//                                              [20] Débito ou Crédito
108
//                                              [21] Elo, Hipercard, Mastercard, Visa...
109
//                                              [22] Qnt de parcelas
110
//                                              [23] Número da parcela
111
//                                              [29] antecipada 758
112
                                        }
113
                                }
114
                        }
115
                }
116
 
117
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
118
                        System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido());
119
 
120
                }
121
        }
122
 
123
        public void extrairDados(List<ExtratoAntecipacaoArquivoDTO> extratosAnexadosAnteriormente) {
124
//              if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
125
//                      setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
126
//                      getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
127
//              }
128
        }
129
 
130
        public static void main(String[] args) {
131
                String valor = "SISPAG PAG TIT BANCO 00";
132
                System.out.println(!valor.contains("SISPAG PAG"));
133
        }
134
 
135
 
136
        private List<ExtratoAntecipacaoDTO> extrairDadosItau(List<ExtratoAntecipacaoArquivoDTO> extratosAnexadosAnteriormente) {
137
                List<ExtratoAntecipacaoDTO> extratosExtraidos = new ArrayList<ExtratoAntecipacaoDTO>();
138
                List<ExtratoAntecipacaoDTO> extratosAntecipacaoDTOSemConciliacao = new ArrayList<ExtratoAntecipacaoDTO>();
139
                for (String linha : this.getLinhasArquivo()) {
140
                        String[] dadosSeparados = linha.split(";");
141
                        if (dadosSeparados.length > 0) {
142
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
143
                                        if (dadosSeparados[0].contains("/")) {
144
                                                ExtratoAntecipacaoDTO extratoBancoDTO = new ExtratoAntecipacaoDTO();
145
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
146
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
147
                                                extratoBancoDTO.setIndicadorCadastrar(false);
148
                                                if (dadosSeparados.length >= 3) {
149
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
150
                                                        Double valor = 0.0;
151
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
152
                                                                valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") );
153
                                                        }
154
                                                        extratoBancoDTO.setValorTotal(valor);
155
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
156
                                                        if (extratoBancoDTO.getDescricao().contains("DB")) {
157
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
158
                                                } else if (extratoBancoDTO.getDescricao().contains("CD") ||
159
                                                                   extratoBancoDTO.getDescricao().contains("REDE  EL ") ||
160
                                                                   extratoBancoDTO.getDescricao().contains("REDE  MC ") ||
161
                                                                   extratoBancoDTO.getDescricao().contains("REDE  VS ") ||
162
                                                                   extratoBancoDTO.getDescricao().contains("REDE  HC ") ||
163
                                                                   extratoBancoDTO.getDescricao().contains("REDE  AM ")) {
164
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
165
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSF ESPACO") ||
166
                                                                   extratoBancoDTO.getDescricao().contains("TRANSF  ESPACO")) {
167
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
168
                                                } else if ((extratoBancoDTO.getDescricao().contains("TRANSF") ||
169
                                                                   extratoBancoDTO.getDescricao().contains("PIX QRS")) &&
170
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
171
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
172
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF ESPACO")) {
173
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
174
                                                } else if (extratoBancoDTO.getDescricao().contains("REND PAGO APLIC AUT")) {
175
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());       
176
                                                } else if ((!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL") &&
177
                                                                   !extratoBancoDTO.getDescricao().contains("SALDO FINAL") &&
178
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
179
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
180
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG TRIBUTOS") &&
181
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG FORNECEDORES") &&
182
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG PAG") &&
183
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG  PAG") &&
184
                                                                   !extratoBancoDTO.getDescricao().contains("RES APLIC AUT") &&
185
                                                                   !extratoBancoDTO.getDescricao().contains("APL APLIC AUT") &&
186
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG CONSOLIDADO")) ||
187
                                                                   (extratoBancoDTO.getDescricao().contains("SISPAG SALARIOS"))) {
188
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
189
                                                                if (valor < 0.0) {
190
                                                                        extratoBancoDTO.setValorTotal(valor * -1);
191
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
192
                                                                } else {
193
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
194
                                                                }
195
                                                        }
196
                                                }
197
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
198
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
199
                                                        } else {
200
                                                                extratosAntecipacaoDTOSemConciliacao.add(extratoBancoDTO);
201
                                                        }
202
//                                                      if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
203
//                                                              extratoBancoDTO.setIndicadorCadastrar(false);
204
//                                                      }
205
                                                        extratosExtraidos.add(extratoBancoDTO);
206
                                                }
207
                                        }
208
                                }
209
                        }
210
                }
211
                setDadosExtratoAntecipacaoDTOSemConciliacao(extratosAntecipacaoDTOSemConciliacao);
212
                return extratosExtraidos;
213
        }
214
 
215
        /*
216
        private Boolean dadoExtratoBancarioEhNovo(List<AntecipacaoArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
217
                List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
218
                for (AntecipacaoArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) {
219
                        if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) {
220
                                extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO());
221
                                break;
222
                        }
223
                }
224
                for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) {
225
                        if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) &&
226
                                extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) &&
227
                                extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) {
228
                                return false;
229
                        }
230
                }
231
                return true;
232
        }
233
 
234
        public void marcarTodosDadosExtrato() {
235
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
236
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
237
                                extratoBancoDTO.setIndicadorCadastrar(true);
238
                        }
239
                }
240
        }
241
 
242
        public void desmarcarTodosDadosExtrato() {
243
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
244
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
245
                                extratoBancoDTO.setIndicadorCadastrar(false);
246
                        }
247
                }
248
        }
249
        */
250
}