Subversion Repositories Integrator Subversion

Rev

Rev 728 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.dto;

import java.util.ArrayList;
import java.util.List;

import org.primefaces.model.file.UploadedFile;

import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.tipos.TipoConciliacao;
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
import br.com.ec.web.util.DataUtil;

public class ExtratoBancarioArquivoDTO {
       
        private ContaBancariaDTO contaBancariaDTO;
        private String tipoExtratoBancarioCsv;
        private UploadedFile arquivoExtratoBancario;
        private List<String> linhasArquivo;
       
        private List<ExtratoBancoDTO> dadosExtratoBancoDTO;
        private List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO;
       
        public ExtratoBancarioArquivoDTO() {
                this.dadosExtratoBancoDTO = new ArrayList<ExtratoBancoDTO>();
                this.dadosExtratoBancoSemCategoriaDTO = new ArrayList<ExtratoBancoDTO>();
        }
       
        public ExtratoBancarioArquivoDTO(String tipoExtratoBancarioCsv, UploadedFile arquivoExtratoBancario) {
                super();
                this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv;
                this.arquivoExtratoBancario = arquivoExtratoBancario;
        }
       
        public ContaBancariaDTO getContaBancariaDTO() {
                return contaBancariaDTO;
        }
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
                this.contaBancariaDTO = contaBancariaDTO;
        }

        public String getTipoExtratoBancarioCsv() {
                return tipoExtratoBancarioCsv;
        }
        public void setTipoExtratoBancarioCsv(String tipoExtratoBancarioCsv) {
                this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv;
        }
        public String getDescricaoTipoExtratoBancarioCsv() {
                if (VerificadorUtil.naoEstaNuloOuVazio(getTipoExtratoBancarioCsv())) {
                        return TipoExtratoBancarioCsv.parse(getTipoExtratoBancarioCsv()).getDescricao();
                }
                return "";
        }

        public UploadedFile getArquivoExtratoBancario() {
                return arquivoExtratoBancario;
        }
        public void setArquivoExtratoBancario(UploadedFile arquivoExtratoBancario) {
                this.arquivoExtratoBancario = arquivoExtratoBancario;
        }
       
        public List<String> getLinhasArquivo() {
                return linhasArquivo;
        }
        public void setLinhasArquivo(List<String> linhasArquivo) {
                this.linhasArquivo = linhasArquivo;
        }
       
        public List<ExtratoBancoDTO> getDadosExtratoBancoDTO() {
                return dadosExtratoBancoDTO;
        }
        public void setDadosExtratoBancoDTO(List<ExtratoBancoDTO> dadosExtratoBancoDTO) {
                this.dadosExtratoBancoDTO = dadosExtratoBancoDTO;
        }
       
        public List<ExtratoBancoDTO> getDadosExtratoBancoSemCategoriaDTO() {
                return dadosExtratoBancoSemCategoriaDTO;
        }
        public void setDadosExtratoBancoSemCategoriaDTO(List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO) {
                this.dadosExtratoBancoSemCategoriaDTO = dadosExtratoBancoSemCategoriaDTO;
        }
       
        /**************************************/
       
        public Boolean todoExtratoConciliado() {
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
                                        return false;
                                }
                        }
                }
                return true;
        }
       
        public void extrairDados(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
                        getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
                }
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU_PAGAMENTOS.getValor())) {
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
                        getDadosExtratoBancoDTO().addAll(extrairDadosItauPagamentos(extratosAnexadosAnteriormente));
                }
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_BRADESCO.getValor())) {
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
                        getDadosExtratoBancoDTO().addAll(extrairDadosBradesco(extratosAnexadosAnteriormente));
                }
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_NUBANK.getValor())) {
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
                        getDadosExtratoBancoDTO().addAll(extrairDadosNubank(extratosAnexadosAnteriormente));
                }
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_BNB.getValor())) {
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
                        getDadosExtratoBancoDTO().addAll(extrairDadosBnb(extratosAnexadosAnteriormente));
                }
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_INTER.getValor())) {
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
                        getDadosExtratoBancoDTO().addAll(extrairDadosInter(extratosAnexadosAnteriormente));
                }
        }
       
        public static void main(String[] args) {
                String valor = "SISPAG PAG TIT BANCO 00";
                System.out.println(!valor.contains("SISPAG PAG"));
        }
       
       
        private List<ExtratoBancoDTO> extrairDadosItau(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
                for (String linha : this.getLinhasArquivo()) {
                        String[] dadosSeparados = linha.split(";");
                        if (dadosSeparados.length > 0) {
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
                                        if (dadosSeparados[0].contains("/")) {
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                if (dadosSeparados.length >= 3) {
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
                                                        Double valor = 0.0;
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
                                                                valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") );
                                                        }
                                                        extratoBancoDTO.setValorTotal(valor);
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                        if (extratoBancoDTO.getDescricao().contains("DB")) {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
                                                } else if (extratoBancoDTO.getDescricao().contains("CD") ||
                                                                   extratoBancoDTO.getDescricao().contains("REDE  EL ") ||
                                                                   extratoBancoDTO.getDescricao().contains("REDE  MC ") ||
                                                                   extratoBancoDTO.getDescricao().contains("REDE  VS ") ||
                                                                   extratoBancoDTO.getDescricao().contains("REDE  HC ") ||
                                                                   extratoBancoDTO.getDescricao().contains("REDE  AM ") ||
                                                                   extratoBancoDTO.getDescricao().contains("AT00")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSF ESPACO") ||
                                                                   extratoBancoDTO.getDescricao().contains("TRANSF  ESPACO")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
                                                } else if ((extratoBancoDTO.getDescricao().contains("TRANSF") ||
                                                                   extratoBancoDTO.getDescricao().contains("PIX QRS") ||
                                                                   extratoBancoDTO.getDescricao().contains("PIX QRP")) &&
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF ESPACO")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
                                                } else if (extratoBancoDTO.getDescricao().contains("REND PAGO APLIC AUT")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());       
                                                } else if ((!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL") &&
                                                                   !extratoBancoDTO.getDescricao().contains("SALDO FINAL") &&
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.24318-2") &&
                                                                   !extratoBancoDTO.getDescricao().contains("TRANSF 7951.99861-1") &&
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG TRIBUTOS") &&
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG FORNECEDORES") &&
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG PAG") &&
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG  PAG") &&
                                                                   !extratoBancoDTO.getDescricao().contains("RES APLIC AUT") &&
                                                                   !extratoBancoDTO.getDescricao().contains("APL APLIC AUT") &&
                                                                   !extratoBancoDTO.getDescricao().contains("TBI") &&
                                                                   !extratoBancoDTO.getDescricao().contains("SISPAG CONSOLIDADO")) ||
                                                                   (extratoBancoDTO.getDescricao().contains("SISPAG SALARIOS"))) {
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
                                                                if (valor < 0.0) {
                                                                        extratoBancoDTO.setValorTotal(valor * -1);
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
                                                                } else {
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
                                                                }
                                                        }
                                                }
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
                                                        } else {
                                                                extratosExtraidosSemCategoria.add(extratoBancoDTO);
                                                        }
                                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
                                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                        }
                                                        extratosExtraidos.add(extratoBancoDTO);
                                                }
                                        }
                                }
                        }
                }
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
                return extratosExtraidos;
        }
       
        private List<ExtratoBancoDTO> extrairDadosItauPagamentos(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
                for (String linha : this.getLinhasArquivo()) {
                        String[] dadosSeparados = linha.split(";");
                        if (dadosSeparados.length > 4) {
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
                                        if (dadosSeparados[4].contains("/")) {
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[4]));
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                if (dadosSeparados.length >= 7) {
                                                        StringBuilder descricao = new StringBuilder(dadosSeparados[2]);
                                                        descricao.append(" (");
                                                        descricao.append(dadosSeparados[0]);
                                                        descricao.append(" : ");
                                                        descricao.append(dadosSeparados[1]);
                                                        descricao.append(") ");
                                                        descricao.append(dadosSeparados[3]);
                                                        extratoBancoDTO.setDescricao(descricao.toString().replace("(- : -)", "").replace(" : -)", ")"));
                                                        Double valor = 0.0;
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[5])) {
                                                                valor = new Double(dadosSeparados[5].replace(".", "").replace(",", ".") );
                                                        }
                                                        if (valor < 0.0) {
                                                                valor = valor * -1;
                                                        }
                                                        extratoBancoDTO.setValorTotal(valor);
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                        if (extratoBancoDTO.getDescricao().contains("PIX") &&
                                                                extratoBancoDTO.getDescricao().contains("21.494.821")) {
                                                                if (valor > 0.0) {
                                                                        valor = valor * -1;
                                                                }
                                                                extratoBancoDTO.setValorTotal(valor);
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
                                                } else if (!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL")) {
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
                                                                extratoBancoDTO.setValorTotal(valor);
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
                                                        }
                                                }
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[6])) {
                                                                if (!dadosSeparados[6].equals("Efetuado")) {
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                                }
                                                        }
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
                                                        } else {
                                                                extratosExtraidosSemCategoria.add(extratoBancoDTO);
                                                        }
                                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
                                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                        }
                                                        extratosExtraidos.add(extratoBancoDTO);
                                                }
                                        }
                                }
                        }
                }
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
                return extratosExtraidos;
        }
       
        private List<ExtratoBancoDTO> extrairDadosBradesco(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
                for (String linha : this.getLinhasArquivo()) {
                        String[] dadosSeparados = linha.split(";");
                        if (dadosSeparados.length > 0) {
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
                                        if (dadosSeparados[0].contains("/")) {
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                if (dadosSeparados.length >= 4) {
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
                                                        Double valor = 0.0;
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[3])) {
                                                                valor = new Double(dadosSeparados[3].replace(".", "").replace(",", "."));
                                                        } else if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[4])) {
                                                                valor = new Double(dadosSeparados[4].replace(".", "").replace(",", "."));
                                                        }
                                                        extratoBancoDTO.setValorTotal(valor);
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                        if (verificarSeEhDebitoBradesco(extratoBancoDTO.getDescricao())) {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
                                                } else if (verificarSeEhCreditoBradesco(extratoBancoDTO.getDescricao())) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
                                                } else if (verificarSeEhTransferenciaEntreContasBradesco(extratoBancoDTO.getDescricao())) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
                                                } else if (verificarSeEhTransferenciaBradesco(extratoBancoDTO.getDescricao())) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
                                                } else if (!extratoBancoDTO.getDescricao().contains("RESGATE INVEST FACIL") &&
                                                        !extratoBancoDTO.getDescricao().contains("APLIC.INVEST FACIL") &&
                                                        !extratoBancoDTO.getDescricao().contains("APLICACAO AUTOMATICA") &&
                                                        !extratoBancoDTO.getDescricao().contains("BAIXA AUTOMATICA FUNDOS") &&
                                                        !extratoBancoDTO.getDescricao().contains("SALDO ANTERIOR")) {
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
                                                                if (valor < 0.0) {
                                                                        extratoBancoDTO.setValorTotal(valor);
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
                                                                } else {
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
                                                                }
                                                        }
                                                }
                                                        if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
                                                                extratoBancoDTO.setIndicadorCadastrar(true);
                                                        } else {
                                                                extratosExtraidosSemCategoria.add(extratoBancoDTO);
                                                        }
                                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
                                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                        }
                                                        extratosExtraidos.add(extratoBancoDTO);
                                                }
                                        }
                                }
                        }
                }
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
                return extratosExtraidos;
        }
       
        private Boolean verificarSeEhDebitoBradesco(String linha) {
                return linha.contains("DEBITO REDECARD\"") || linha.contains("CARTAO VISA ELECTRON") || linha.contains("VDA DEBITO");
        }
       
        private Boolean verificarSeEhCreditoBradesco(String linha) {
                return linha.contains("CRED REDECARD") ||
                                linha.contains("CREDITO REDECARD") ||
                        linha.contains("AMEX REDECARD") ||
                        linha.contains("RECEBIMENTO FORNECEDOR") ||
                        linha.contains("ANTECIPACAO REDECARD") ||
                        linha.contains("REDE ATECIPACAO") ||
                        linha.contains("CIELO MASTER") ||
                        linha.contains("CIELO VISA") ||
                        linha.contains("VDA CREDITO") ||
                        linha.contains("HIPERCARD ANTECIPACAO") ||
                        linha.contains("CIELO ANTECIPACAO");
        }
       
        private Boolean verificarSeEhTransferenciaEntreContasBradesco(String linha) {
                return (linha.contains("TRANSFERENCIA PIX") && linha.contains("21.494.821")) ||
                                (linha.contains("TRANSFERENCIA PIX DES") && linha.contains("ESPACO CASE"));
//                              || linha.contains("ESPACO CASE"));
        }
       
        private Boolean verificarSeEhTransferenciaBradesco(String linha) {
                return linha.contains("TRANSFERENCIA PIX") && !linha.contains("21.494.821") && !linha.contains("PIX DES");
//              && !linha.contains("ESPACO CASE");
        }
       
        private List<ExtratoBancoDTO> extrairDadosNubank(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
                for (String linha : this.getLinhasArquivo()) {
                        String[] dadosSeparados = linha.split(",");
                        if (dadosSeparados.length > 0) {
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
                                        if (dadosSeparados[0].contains("/")) {
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                if (dadosSeparados.length >= 4) {
                                                        extratoBancoDTO.setDescricao(dadosSeparados[3]);
                                                        Double valor = 0.0;
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[1])) {
                                                                valor = new Double(dadosSeparados[1]);
                                                        }
                                                        extratoBancoDTO.setValorTotal(valor);
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                        if (extratoBancoDTO.getDescricao().contains("TRANSFER") &&
                                                                extratoBancoDTO.getDescricao().contains("21.494.821")) {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
                                                        } else if (extratoBancoDTO.getDescricao().contains("RECEBIDA PELO PIX") ||
                                                        extratoBancoDTO.getDescricao().contains("NCIA RECEBIDA")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
                                                } else if (VerificadorUtil.naoEstaNulo(valor)) {
                                                        if (valor < 0.0) {
                                                                extratoBancoDTO.setValorTotal(valor);
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
                                                        } else {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
                                                        }
                                                }
                                                if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
                                                        extratoBancoDTO.setIndicadorCadastrar(true);
                                                } else {
                                                        extratosExtraidosSemCategoria.add(extratoBancoDTO);
                                                }
                                                if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
                                                        extratoBancoDTO.setIndicadorCadastrar(false);
                                                }
                                                extratosExtraidos.add(extratoBancoDTO);
                                                }
                                        }
                                }
                        }
                }
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
                return extratosExtraidos;
        }
       
        private List<ExtratoBancoDTO> extrairDadosBnb(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
                for (String linha : this.getLinhasArquivo()) {
                        String[] dadosSeparados = linha.split(";");
                        if (dadosSeparados.length > 0) {
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
                                        if (dadosSeparados[0].contains("31")) {
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[3].replace("\"", "")));
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                if (dadosSeparados.length >= 8) {
                                                        extratoBancoDTO.setDescricao(dadosSeparados[5].replace("\"", ""));
                                                        Double valor = 0.0;
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[8].replace("\"", ""))) {
                                                                String valorParaAjustes = dadosSeparados[8].replace("\"", "");
                                                                valorParaAjustes = valorParaAjustes.replace(" ", "").replace(".", "").replace(",", ".");
                                                                valor = new Double(valorParaAjustes);
                                                        }
                                                        extratoBancoDTO.setValorTotal(valor);
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                        if (extratoBancoDTO.getDescricao().contains("VIA PIX") &&
                                                                extratoBancoDTO.getDescricao().contains("ESPACO CASE")) {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
                                                        } else if (extratoBancoDTO.getDescricao().contains("VIA PIX")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
                                                } else if (VerificadorUtil.naoEstaNulo(valor)) {
                                                        if (valor < 0.0) {
                                                                extratoBancoDTO.setValorTotal(valor);
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
                                                        }
                                                }
                                                if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
                                                        extratoBancoDTO.setIndicadorCadastrar(true);
                                                } else {
                                                        extratosExtraidosSemCategoria.add(extratoBancoDTO);
                                                }
                                                if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
                                                        extratoBancoDTO.setIndicadorCadastrar(false);
                                                }
                                                extratosExtraidos.add(extratoBancoDTO);
                                                }
                                        }
                                }
                        }
                }
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
                return extratosExtraidos;
        }
       
        private List<ExtratoBancoDTO> extrairDadosInter(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
                for (String linha : this.getLinhasArquivo()) {
                        String[] dadosSeparados = linha.split(";");
                        if (dadosSeparados.length > 3) {
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
                                        if (dadosSeparados[0].contains("/")) {
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                                if (dadosSeparados.length >= 4) {
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1] + " - " + dadosSeparados[2]);
                                                        Double valor = 0.0;
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[3])) {
                                                                valor = new Double(dadosSeparados[3].replace(".", "").replace(",", "."));
                                                        }
                                                        extratoBancoDTO.setValorTotal(valor);
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
                                                       
                                                        if (extratoBancoDTO.getDescricao().contains("DÉBITO")) {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
                                                } else if (extratoBancoDTO.getDescricao().contains("ANTECIPAÇÃO")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
                                                } else if (extratoBancoDTO.getDescricao().contains("PIX") && extratoBancoDTO.getDescricao().contains("ESPACO CASE")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS_ENTRE_CONTAS.getValor());
                                                } else if (extratoBancoDTO.getDescricao().contains("PIX RECEBIDO")) {
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
                                                } else {
                                                        if (valor < 0.0) {
                                                                extratoBancoDTO.setValorTotal(valor);
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
                                                        } else {
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());
                                                        }
                                                }
                                        }
                                                if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
                                                        extratoBancoDTO.setIndicadorCadastrar(true);
                                                } else {
                                                        extratosExtraidosSemCategoria.add(extratoBancoDTO);
                                                }
                                        if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
                                                extratoBancoDTO.setIndicadorCadastrar(false);
                                        }
                                        extratosExtraidos.add(extratoBancoDTO);
                                        }
                                }
                        }
                }
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
                return extratosExtraidos;
        }
       
        private Boolean dadoExtratoBancarioEhNovo(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
                List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
                for (ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) {
                        if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) {
                                extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO());
                                break;
                        }
                }
                for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) {
                        if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) &&
                                extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) &&
                                extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) {
                                return false;
                        }
                }
                return true;
        }
       
        public void marcarTodosDadosExtrato() {
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
                                extratoBancoDTO.setIndicadorCadastrar(true);
                        }
                }
        }
       
        public void desmarcarTodosDadosExtrato() {
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
                                extratoBancoDTO.setIndicadorCadastrar(false);
                        }
                }
        }
       
}