Rev 379 | Rev 392 | 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; |
| 296 | espaco | 10 | import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv; |
| 379 | espaco | 11 | import br.com.ec.domain.model.tipos.TipoExtratoBanco; |
| 12 | import br.com.ec.web.util.DataUtil; |
||
| 296 | espaco | 13 | |
| 14 | public class ExtratoBancarioArquivoDTO { |
||
| 15 | |||
| 16 | private ContaBancariaDTO contaBancariaDTO; |
||
| 17 | private String tipoExtratoBancarioCsv; |
||
| 18 | private UploadedFile arquivoExtratoBancario; |
||
| 19 | private List<String> linhasArquivo; |
||
| 20 | |||
| 377 | espaco | 21 | private List<ExtratoBancoDTO> dadosExtratoBancoDTO; |
| 380 | espaco | 22 | private List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO; |
| 377 | espaco | 23 | |
| 379 | espaco | 24 | public ExtratoBancarioArquivoDTO() { |
| 25 | this.dadosExtratoBancoDTO = new ArrayList<ExtratoBancoDTO>(); |
||
| 380 | espaco | 26 | this.dadosExtratoBancoSemCategoriaDTO = new ArrayList<ExtratoBancoDTO>(); |
| 379 | espaco | 27 | } |
| 296 | espaco | 28 | |
| 29 | public ExtratoBancarioArquivoDTO(String tipoExtratoBancarioCsv, UploadedFile arquivoExtratoBancario) { |
||
| 30 | super(); |
||
| 31 | this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv; |
||
| 32 | this.arquivoExtratoBancario = arquivoExtratoBancario; |
||
| 33 | } |
||
| 34 | |||
| 35 | public ContaBancariaDTO getContaBancariaDTO() { |
||
| 36 | return contaBancariaDTO; |
||
| 37 | } |
||
| 38 | public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) { |
||
| 39 | this.contaBancariaDTO = contaBancariaDTO; |
||
| 40 | } |
||
| 41 | |||
| 42 | public String getTipoExtratoBancarioCsv() { |
||
| 43 | return tipoExtratoBancarioCsv; |
||
| 44 | } |
||
| 45 | public void setTipoExtratoBancarioCsv(String tipoExtratoBancarioCsv) { |
||
| 46 | this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv; |
||
| 47 | } |
||
| 48 | public String getDescricaoTipoExtratoBancarioCsv() { |
||
| 379 | espaco | 49 | if (VerificadorUtil.naoEstaNuloOuVazio(getTipoExtratoBancarioCsv())) { |
| 50 | return TipoExtratoBancarioCsv.parse(getTipoExtratoBancarioCsv()).getDescricao(); |
||
| 51 | } |
||
| 52 | return ""; |
||
| 296 | espaco | 53 | } |
| 54 | |||
| 55 | public UploadedFile getArquivoExtratoBancario() { |
||
| 56 | return arquivoExtratoBancario; |
||
| 57 | } |
||
| 58 | public void setArquivoExtratoBancario(UploadedFile arquivoExtratoBancario) { |
||
| 59 | this.arquivoExtratoBancario = arquivoExtratoBancario; |
||
| 60 | } |
||
| 61 | |||
| 62 | public List<String> getLinhasArquivo() { |
||
| 63 | return linhasArquivo; |
||
| 64 | } |
||
| 65 | public void setLinhasArquivo(List<String> linhasArquivo) { |
||
| 66 | this.linhasArquivo = linhasArquivo; |
||
| 67 | } |
||
| 68 | |||
| 377 | espaco | 69 | public List<ExtratoBancoDTO> getDadosExtratoBancoDTO() { |
| 70 | return dadosExtratoBancoDTO; |
||
| 71 | } |
||
| 72 | public void setDadosExtratoBancoDTO(List<ExtratoBancoDTO> dadosExtratoBancoDTO) { |
||
| 73 | this.dadosExtratoBancoDTO = dadosExtratoBancoDTO; |
||
| 74 | } |
||
| 75 | |||
| 380 | espaco | 76 | public List<ExtratoBancoDTO> getDadosExtratoBancoSemCategoriaDTO() { |
| 77 | return dadosExtratoBancoSemCategoriaDTO; |
||
| 78 | } |
||
| 79 | public void setDadosExtratoBancoSemCategoriaDTO(List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO) { |
||
| 80 | this.dadosExtratoBancoSemCategoriaDTO = dadosExtratoBancoSemCategoriaDTO; |
||
| 81 | } |
||
| 82 | |||
| 379 | espaco | 83 | /**************************************/ |
| 84 | |||
| 85 | public Boolean todoExtratoConciliado() { |
||
| 86 | if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) { |
||
| 87 | for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) { |
||
| 88 | if (!extratoBancoDTO.getIndicadorConciliado()) { |
||
| 89 | return false; |
||
| 90 | } |
||
| 91 | } |
||
| 92 | } |
||
| 93 | return true; |
||
| 94 | } |
||
| 95 | |||
| 380 | espaco | 96 | public void extrairDados(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) { |
| 379 | espaco | 97 | if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) { |
| 98 | setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>()); |
||
| 380 | espaco | 99 | getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente)); |
| 379 | espaco | 100 | } |
| 101 | } |
||
| 102 | |||
| 380 | espaco | 103 | private List<ExtratoBancoDTO> extrairDadosItau(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) { |
| 379 | espaco | 104 | List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>(); |
| 380 | espaco | 105 | List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>(); |
| 379 | espaco | 106 | for (String linha : this.getLinhasArquivo()) { |
| 107 | String[] dadosSeparados = linha.split(";"); |
||
| 108 | if (dadosSeparados.length > 0) { |
||
| 109 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) { |
||
| 110 | if (dadosSeparados[0].contains("/")) { |
||
| 111 | ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO(); |
||
| 112 | extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO()); |
||
| 113 | extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0])); |
||
| 114 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 115 | if (dadosSeparados.length >= 3) { |
||
| 116 | extratoBancoDTO.setDescricao(dadosSeparados[1]); |
||
| 117 | Double valor = 0.0; |
||
| 118 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) { |
||
| 119 | valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") ); |
||
| 120 | } |
||
| 121 | extratoBancoDTO.setValorTotal(valor); |
||
| 122 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor()); |
||
| 123 | if (extratoBancoDTO.getDescricao().contains("DB")) { |
||
| 124 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor()); |
||
| 125 | } else if (extratoBancoDTO.getDescricao().contains("CD") || |
||
| 126 | extratoBancoDTO.getDescricao().contains("REDE EL ") || |
||
| 127 | extratoBancoDTO.getDescricao().contains("REDE MC ") || |
||
| 128 | extratoBancoDTO.getDescricao().contains("REDE VS ") || |
||
| 129 | extratoBancoDTO.getDescricao().contains("REDE HC ") || |
||
| 130 | extratoBancoDTO.getDescricao().contains("REDE AM ")) { |
||
| 131 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor()); |
||
| 132 | } else if (extratoBancoDTO.getDescricao().contains("TRANSF") || |
||
| 133 | extratoBancoDTO.getDescricao().contains("PIX QRS")) { |
||
| 134 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor()); |
||
| 135 | } else if (extratoBancoDTO.getDescricao().contains("APLIC AUT")) { |
||
| 136 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor()); |
||
| 137 | } else if (!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL")) { |
||
| 138 | if (VerificadorUtil.naoEstaNulo(valor)) { |
||
| 139 | if (valor < 0.0) { |
||
| 140 | extratoBancoDTO.setValorTotal(valor * -1); |
||
| 141 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor()); |
||
| 142 | } |
||
| 143 | } |
||
| 144 | } |
||
| 145 | } |
||
| 146 | if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) { |
||
| 147 | extratoBancoDTO.setIndicadorCadastrar(true); |
||
| 380 | espaco | 148 | } else { |
| 149 | extratosExtraidosSemCategoria.add(extratoBancoDTO); |
||
| 379 | espaco | 150 | } |
| 380 | espaco | 151 | if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) { |
| 152 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 153 | } |
||
| 379 | espaco | 154 | extratosExtraidos.add(extratoBancoDTO); |
| 155 | } |
||
| 156 | } |
||
| 157 | } |
||
| 158 | } |
||
| 380 | espaco | 159 | setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria); |
| 379 | espaco | 160 | return extratosExtraidos; |
| 161 | } |
||
| 162 | |||
| 380 | espaco | 163 | private Boolean dadoExtratoBancarioEhNovo(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) { |
| 164 | List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>(); |
||
| 165 | for (ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) { |
||
| 166 | if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) { |
||
| 167 | extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO()); |
||
| 168 | break; |
||
| 169 | } |
||
| 170 | } |
||
| 171 | for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) { |
||
| 172 | if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) && |
||
| 173 | extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) && |
||
| 174 | extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) { |
||
| 175 | return false; |
||
| 176 | } |
||
| 177 | } |
||
| 178 | return true; |
||
| 179 | } |
||
| 180 | |||
| 181 | public void marcarTodosDadosExtrato() { |
||
| 379 | espaco | 182 | if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) { |
| 183 | for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) { |
||
| 380 | espaco | 184 | extratoBancoDTO.setIndicadorCadastrar(true); |
| 379 | espaco | 185 | } |
| 186 | } |
||
| 187 | } |
||
| 188 | |||
| 380 | espaco | 189 | public void desmarcarTodosDadosExtrato() { |
| 190 | if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) { |
||
| 191 | for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) { |
||
| 192 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 193 | } |
||
| 194 | } |
||
| 195 | } |
||
| 196 | |||
| 296 | espaco | 197 | } |