Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
296 espaco 1
package br.com.ec.domain.dto;
2
 
379 espaco 3
import java.util.ArrayList;
296 espaco 4
import java.util.List;
5
 
6
import org.primefaces.model.file.UploadedFile;
7
 
380 espaco 8
import br.com.ec.core.util.DataUtils;
379 espaco 9
import br.com.ec.core.util.VerificadorUtil;
392 espaco 10
import br.com.ec.domain.model.tipos.TipoConciliacao;
296 espaco 11
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
379 espaco 12
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
13
import br.com.ec.web.util.DataUtil;
296 espaco 14
 
15
public class ExtratoBancarioArquivoDTO {
16
 
17
        private ContaBancariaDTO contaBancariaDTO;
18
        private String tipoExtratoBancarioCsv;
19
        private UploadedFile arquivoExtratoBancario;
20
        private List<String> linhasArquivo;
21
 
377 espaco 22
        private List<ExtratoBancoDTO> dadosExtratoBancoDTO;
380 espaco 23
        private List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO;
377 espaco 24
 
379 espaco 25
        public ExtratoBancarioArquivoDTO() {
26
                this.dadosExtratoBancoDTO = new ArrayList<ExtratoBancoDTO>();
380 espaco 27
                this.dadosExtratoBancoSemCategoriaDTO = new ArrayList<ExtratoBancoDTO>();
379 espaco 28
        }
296 espaco 29
 
30
        public ExtratoBancarioArquivoDTO(String tipoExtratoBancarioCsv, UploadedFile arquivoExtratoBancario) {
31
                super();
32
                this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv;
33
                this.arquivoExtratoBancario = arquivoExtratoBancario;
34
        }
35
 
36
        public ContaBancariaDTO getContaBancariaDTO() {
37
                return contaBancariaDTO;
38
        }
39
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
40
                this.contaBancariaDTO = contaBancariaDTO;
41
        }
42
 
43
        public String getTipoExtratoBancarioCsv() {
44
                return tipoExtratoBancarioCsv;
45
        }
46
        public void setTipoExtratoBancarioCsv(String tipoExtratoBancarioCsv) {
47
                this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv;
48
        }
49
        public String getDescricaoTipoExtratoBancarioCsv() {
379 espaco 50
                if (VerificadorUtil.naoEstaNuloOuVazio(getTipoExtratoBancarioCsv())) {
51
                        return TipoExtratoBancarioCsv.parse(getTipoExtratoBancarioCsv()).getDescricao();
52
                }
53
                return "";
296 espaco 54
        }
55
 
56
        public UploadedFile getArquivoExtratoBancario() {
57
                return arquivoExtratoBancario;
58
        }
59
        public void setArquivoExtratoBancario(UploadedFile arquivoExtratoBancario) {
60
                this.arquivoExtratoBancario = arquivoExtratoBancario;
61
        }
62
 
63
        public List<String> getLinhasArquivo() {
64
                return linhasArquivo;
65
        }
66
        public void setLinhasArquivo(List<String> linhasArquivo) {
67
                this.linhasArquivo = linhasArquivo;
68
        }
69
 
377 espaco 70
        public List<ExtratoBancoDTO> getDadosExtratoBancoDTO() {
71
                return dadosExtratoBancoDTO;
72
        }
73
        public void setDadosExtratoBancoDTO(List<ExtratoBancoDTO> dadosExtratoBancoDTO) {
74
                this.dadosExtratoBancoDTO = dadosExtratoBancoDTO;
75
        }
76
 
380 espaco 77
        public List<ExtratoBancoDTO> getDadosExtratoBancoSemCategoriaDTO() {
78
                return dadosExtratoBancoSemCategoriaDTO;
79
        }
80
        public void setDadosExtratoBancoSemCategoriaDTO(List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO) {
81
                this.dadosExtratoBancoSemCategoriaDTO = dadosExtratoBancoSemCategoriaDTO;
82
        }
83
 
379 espaco 84
        /**************************************/
85
 
86
        public Boolean todoExtratoConciliado() {
87
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
88
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
89
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
90
                                        return false;
91
                                }
92
                        }
93
                }
94
                return true;
95
        }
96
 
380 espaco 97
        public void extrairDados(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
379 espaco 98
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
99
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
380 espaco 100
                        getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
379 espaco 101
                }
396 espaco 102
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU_PAGAMENTOS.getValor())) {
103
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
104
                        getDadosExtratoBancoDTO().addAll(extrairDadosItauPagamentos(extratosAnexadosAnteriormente));
105
                }
392 espaco 106
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_BRADESCO.getValor())) {
107
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
108
                        getDadosExtratoBancoDTO().addAll(extrairDadosBradesco(extratosAnexadosAnteriormente));
109
                }
110
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_NUBANK.getValor())) {
111
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
112
                        getDadosExtratoBancoDTO().addAll(extrairDadosNubank(extratosAnexadosAnteriormente));
113
                }
399 espaco 114
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_BNB.getValor())) {
115
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
116
                        getDadosExtratoBancoDTO().addAll(extrairDadosBnb(extratosAnexadosAnteriormente));
117
                }
379 espaco 118
        }
119
 
380 espaco 120
        private List<ExtratoBancoDTO> extrairDadosItau(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
379 espaco 121
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
380 espaco 122
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
379 espaco 123
                for (String linha : this.getLinhasArquivo()) {
124
                        String[] dadosSeparados = linha.split(";");
125
                        if (dadosSeparados.length > 0) {
126
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
127
                                        if (dadosSeparados[0].contains("/")) {
128
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
129
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
130
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
131
                                                extratoBancoDTO.setIndicadorCadastrar(false);
132
                                                if (dadosSeparados.length >= 3) {
133
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
134
                                                        Double valor = 0.0;
135
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
136
                                                                valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") );
137
                                                        }
138
                                                        extratoBancoDTO.setValorTotal(valor);
139
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
140
                                                        if (extratoBancoDTO.getDescricao().contains("DB")) {
141
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
142
                                                } else if (extratoBancoDTO.getDescricao().contains("CD") ||
143
                                                                   extratoBancoDTO.getDescricao().contains("REDE  EL ") ||
144
                                                                   extratoBancoDTO.getDescricao().contains("REDE  MC ") ||
145
                                                                   extratoBancoDTO.getDescricao().contains("REDE  VS ") ||
146
                                                                   extratoBancoDTO.getDescricao().contains("REDE  HC ") ||
147
                                                                   extratoBancoDTO.getDescricao().contains("REDE  AM ")) {
148
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
402 espaco 149
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSF ESPACO") ||
150
                                                                   extratoBancoDTO.getDescricao().contains("TRANSF  ESPACO")) {
399 espaco 151
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
152
                                                } else if ((extratoBancoDTO.getDescricao().contains("TRANSF") ||
153
                                                                   extratoBancoDTO.getDescricao().contains("PIX QRS")) &&
154
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
155
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
156
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF ESPACO")) {
379 espaco 157
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
456 blopes 158
                                                } else if (extratoBancoDTO.getDescricao().contains("REND PAGO APLIC AUT")) {
379 espaco 159
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());       
403 espaco 160
                                                } else if ((!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL") &&
456 blopes 161
                                                                   !extratoBancoDTO.getDescricao().contains("SALDO FINAL") &&
399 espaco 162
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
163
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
403 espaco 164
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG TRIBUTOS") &&
456 blopes 165
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG FORNECEDORES") &&
166
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG PAG") &&
167
                                                                   !extratoBancoDTO.getDescricao().contains("RES APLIC AUT") &&
168
                                                                   !extratoBancoDTO.getDescricao().contains("APL APLIC AUT")) ||
403 espaco 169
                                                                   (extratoBancoDTO.getDescricao().contains("SISPAG SALARIOS"))) {
379 espaco 170
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
171
                                                                if (valor < 0.0) {
172
                                                                        extratoBancoDTO.setValorTotal(valor * -1);
173
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
403 espaco 174
                                                                } else {
175
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
379 espaco 176
                                                                }
177
                                                        }
178
                                                }
392 espaco 179
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
180
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
181
                                                        } else {
182
                                                                extratosExtraidosSemCategoria.add(extratoBancoDTO);
183
                                                        }
184
                                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
185
                                                                extratoBancoDTO.setIndicadorCadastrar(false);
186
                                                        }
187
                                                        extratosExtraidos.add(extratoBancoDTO);
379 espaco 188
                                                }
392 espaco 189
                                        }
190
                                }
191
                        }
192
                }
193
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
194
                return extratosExtraidos;
195
        }
196
 
396 espaco 197
        private List<ExtratoBancoDTO> extrairDadosItauPagamentos(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
198
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
199
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
200
                for (String linha : this.getLinhasArquivo()) {
201
                        String[] dadosSeparados = linha.split(";");
202
                        if (dadosSeparados.length > 4) {
203
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
204
                                        if (dadosSeparados[4].contains("/")) {
205
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
206
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
207
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[4]));
208
                                                extratoBancoDTO.setIndicadorCadastrar(false);
209
                                                if (dadosSeparados.length >= 7) {
399 espaco 210
                                                        StringBuilder descricao = new StringBuilder(dadosSeparados[2]);
211
                                                        descricao.append(" (");
212
                                                        descricao.append(dadosSeparados[0]);
213
                                                        descricao.append(" : ");
214
                                                        descricao.append(dadosSeparados[1]);
215
                                                        descricao.append(") ");
216
                                                        descricao.append(dadosSeparados[3]);
217
                                                        extratoBancoDTO.setDescricao(descricao.toString().replace("(- : -)", "").replace(" : -)", ")"));
396 espaco 218
                                                        Double valor = 0.0;
219
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[5])) {
220
                                                                valor = new Double(dadosSeparados[5].replace(".", "").replace(",", ".") );
221
                                                        }
407 espaco 222
                                                        if (valor < 0.0) {
223
                                                                valor = valor * -1;
224
                                                        }
396 espaco 225
                                                        extratoBancoDTO.setValorTotal(valor);
226
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
227
                                                        if (extratoBancoDTO.getDescricao().contains("PIX") &&
399 espaco 228
                                                                extratoBancoDTO.getDescricao().contains("21.494.821")) {
456 blopes 229
                                                                if (valor < 0.0) {
230
                                                                        valor = valor * -1;
231
                                                                }
407 espaco 232
                                                                extratoBancoDTO.setValorTotal(valor);
396 espaco 233
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
234
                                                } else if (!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL")) {
235
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
407 espaco 236
                                                                extratoBancoDTO.setValorTotal(valor);
396 espaco 237
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
238
                                                        }
239
                                                }
240
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
241
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
242
                                                        } else {
243
                                                                extratosExtraidosSemCategoria.add(extratoBancoDTO);
244
                                                        }
245
                                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
246
                                                                extratoBancoDTO.setIndicadorCadastrar(false);
247
                                                        }
248
                                                        extratosExtraidos.add(extratoBancoDTO);
249
                                                }
250
                                        }
251
                                }
252
                        }
253
                }
254
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
255
                return extratosExtraidos;
256
        }
257
 
392 espaco 258
        private List<ExtratoBancoDTO> extrairDadosBradesco(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
259
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
260
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
261
                for (String linha : this.getLinhasArquivo()) {
262
                        String[] dadosSeparados = linha.split(";");
263
                        if (dadosSeparados.length > 0) {
264
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
265
                                        if (dadosSeparados[0].contains("/")) {
266
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
267
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
268
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
269
                                                extratoBancoDTO.setIndicadorCadastrar(false);
270
                                                if (dadosSeparados.length >= 4) {
271
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
272
                                                        Double valor = 0.0;
273
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[3])) {
274
                                                                valor = new Double(dadosSeparados[3].replace(".", "").replace(",", "."));
275
                                                        } else if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[4])) {
276
                                                                valor = new Double(dadosSeparados[4].replace(".", "").replace(",", "."));
277
                                                        }
278
                                                        extratoBancoDTO.setValorTotal(valor);
279
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
280
                                                        if (extratoBancoDTO.getDescricao().contains("DEBITO REDECARD\"")) {
281
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
282
                                                } else if (extratoBancoDTO.getDescricao().contains("CRED REDECARD") ||
283
                                                        extratoBancoDTO.getDescricao().contains("CREDITO REDECARD") ||
284
                                                        extratoBancoDTO.getDescricao().contains("AMEX REDECARD") ||
285
                                                        extratoBancoDTO.getDescricao().contains("RECEBIMENTO FORNECEDOR") ||
286
                                                        extratoBancoDTO.getDescricao().contains("ANTECIPACAO REDECARD") ||
287
                                                        extratoBancoDTO.getDescricao().contains("REDE ATECIPACAO")) {
288
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
396 espaco 289
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSFERENCIA PIX") &&
402 espaco 290
                                                                (extratoBancoDTO.getDescricao().contains("21.494.821") ||
291
                                                                extratoBancoDTO.getDescricao().contains("ESPACO CASE"))) {
396 espaco 292
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
399 espaco 293
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSFERENCIA PIX") &&
402 espaco 294
                                                                !extratoBancoDTO.getDescricao().contains("21.494.821") &&
295
                                                                !extratoBancoDTO.getDescricao().contains("ESPACO CASE")) {
392 espaco 296
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
297
                                                } else if (!extratoBancoDTO.getDescricao().contains("RESGATE INVEST FACIL") &&
298
                                                        !extratoBancoDTO.getDescricao().contains("APLIC.INVEST FACIL") &&
299
                                                        !extratoBancoDTO.getDescricao().contains("APLICACAO AUTOMATICA") &&
456 blopes 300
                                                        !extratoBancoDTO.getDescricao().contains("BAIXA AUTOMATICA FUNDOS") &&
301
                                                        !extratoBancoDTO.getDescricao().contains("SALDO ANTERIOR")) {
392 espaco 302
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
303
                                                                if (valor < 0.0) {
399 espaco 304
                                                                        extratoBancoDTO.setValorTotal(valor);
392 espaco 305
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
403 espaco 306
                                                                } else {
307
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
392 espaco 308
                                                                }
309
                                                        }
310
                                                }
311
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
312
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
313
                                                        } else {
314
                                                                extratosExtraidosSemCategoria.add(extratoBancoDTO);
315
                                                        }
316
                                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
317
                                                                extratoBancoDTO.setIndicadorCadastrar(false);
318
                                                        }
319
                                                        extratosExtraidos.add(extratoBancoDTO);
379 espaco 320
                                                }
392 espaco 321
                                        }
322
                                }
323
                        }
324
                }
325
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
326
                return extratosExtraidos;
327
        }
328
 
329
        private List<ExtratoBancoDTO> extrairDadosNubank(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
330
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
331
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
332
                for (String linha : this.getLinhasArquivo()) {
333
                        String[] dadosSeparados = linha.split(",");
334
                        if (dadosSeparados.length > 0) {
335
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
336
                                        if (dadosSeparados[0].contains("/")) {
337
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
338
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
339
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
340
                                                extratoBancoDTO.setIndicadorCadastrar(false);
341
                                                if (dadosSeparados.length >= 4) {
342
                                                        extratoBancoDTO.setDescricao(dadosSeparados[3]);
343
                                                        Double valor = 0.0;
344
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[1])) {
345
                                                                valor = new Double(dadosSeparados[1]);
346
                                                        }
347
                                                        extratoBancoDTO.setValorTotal(valor);
348
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
399 espaco 349
                                                        if (extratoBancoDTO.getDescricao().contains("TRANSFER") &&
350
                                                                extratoBancoDTO.getDescricao().contains("21.494.821")) {
351
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
352
                                                        } else if (extratoBancoDTO.getDescricao().contains("RECEBIDA PELO PIX") ||
393 espaco 353
                                                        extratoBancoDTO.getDescricao().contains("NCIA RECEBIDA")) {
392 espaco 354
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
355
                                                } else if (VerificadorUtil.naoEstaNulo(valor)) {
356
                                                        if (valor < 0.0) {
399 espaco 357
                                                                extratoBancoDTO.setValorTotal(valor);
392 espaco 358
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
403 espaco 359
                                                        } else {
360
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
392 espaco 361
                                                        }
362
                                                }
363
                                                if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
364
                                                        extratoBancoDTO.setIndicadorCadastrar(true);
365
                                                } else {
366
                                                        extratosExtraidosSemCategoria.add(extratoBancoDTO);
367
                                                }
368
                                                if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
369
                                                        extratoBancoDTO.setIndicadorCadastrar(false);
370
                                                }
371
                                                extratosExtraidos.add(extratoBancoDTO);
380 espaco 372
                                                }
379 espaco 373
                                        }
374
                                }
375
                        }
376
                }
380 espaco 377
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
379 espaco 378
                return extratosExtraidos;
379
        }
380
 
399 espaco 381
        private List<ExtratoBancoDTO> extrairDadosBnb(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
382
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
383
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
384
                for (String linha : this.getLinhasArquivo()) {
385
                        String[] dadosSeparados = linha.split(";");
386
                        if (dadosSeparados.length > 0) {
387
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
388
                                        if (dadosSeparados[0].contains("31")) {
389
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
390
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
391
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[3]));
392
                                                extratoBancoDTO.setIndicadorCadastrar(false);
393
                                                if (dadosSeparados.length >= 8) {
394
                                                        extratoBancoDTO.setDescricao(dadosSeparados[5]);
395
                                                        Double valor = 0.0;
396
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[8])) {
397
                                                                valor = new Double(dadosSeparados[8].replace(".", "").replace(",", "."));
398
                                                        }
399
                                                        extratoBancoDTO.setValorTotal(valor);
400
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
401
                                                        if (extratoBancoDTO.getDescricao().contains("VIA PIX") &&
402
                                                                extratoBancoDTO.getDescricao().contains("ESPACO CASE")) {
403
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
404
                                                        } else if (extratoBancoDTO.getDescricao().contains("VIA PIX")) {
405
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
406
                                                } else if (VerificadorUtil.naoEstaNulo(valor)) {
407
                                                        if (valor < 0.0) {
408
                                                                extratoBancoDTO.setValorTotal(valor);
409
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
410
                                                        }
411
                                                }
412
                                                if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
413
                                                        extratoBancoDTO.setIndicadorCadastrar(true);
414
                                                } else {
415
                                                        extratosExtraidosSemCategoria.add(extratoBancoDTO);
416
                                                }
417
                                                if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
418
                                                        extratoBancoDTO.setIndicadorCadastrar(false);
419
                                                }
420
                                                extratosExtraidos.add(extratoBancoDTO);
421
                                                }
422
                                        }
423
                                }
424
                        }
425
                }
426
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
427
                return extratosExtraidos;
428
        }
429
 
380 espaco 430
        private Boolean dadoExtratoBancarioEhNovo(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
431
                List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
432
                for (ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) {
433
                        if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) {
434
                                extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO());
435
                                break;
436
                        }
437
                }
438
                for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) {
439
                        if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) &&
440
                                extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) &&
441
                                extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) {
442
                                return false;
443
                        }
444
                }
445
                return true;
446
        }
447
 
448
        public void marcarTodosDadosExtrato() {
379 espaco 449
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
450
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
380 espaco 451
                                extratoBancoDTO.setIndicadorCadastrar(true);
379 espaco 452
                        }
453
                }
454
        }
455
 
380 espaco 456
        public void desmarcarTodosDadosExtrato() {
457
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
458
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
459
                                extratoBancoDTO.setIndicadorCadastrar(false);
460
                        }
461
                }
462
        }
463
 
296 espaco 464
}