Rev 380 | Rev 393 | 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 | } |
| 392 | espaco | 102 | if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_BRADESCO.getValor())) { |
| 103 | setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>()); |
||
| 104 | getDadosExtratoBancoDTO().addAll(extrairDadosBradesco(extratosAnexadosAnteriormente)); |
||
| 105 | } |
||
| 106 | if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_NUBANK.getValor())) { |
||
| 107 | setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>()); |
||
| 108 | getDadosExtratoBancoDTO().addAll(extrairDadosNubank(extratosAnexadosAnteriormente)); |
||
| 109 | } |
||
| 379 | espaco | 110 | } |
| 111 | |||
| 380 | espaco | 112 | private List<ExtratoBancoDTO> extrairDadosItau(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) { |
| 379 | espaco | 113 | List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>(); |
| 380 | espaco | 114 | List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>(); |
| 379 | espaco | 115 | for (String linha : this.getLinhasArquivo()) { |
| 116 | String[] dadosSeparados = linha.split(";"); |
||
| 117 | if (dadosSeparados.length > 0) { |
||
| 118 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) { |
||
| 119 | if (dadosSeparados[0].contains("/")) { |
||
| 120 | ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO(); |
||
| 121 | extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO()); |
||
| 122 | extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0])); |
||
| 123 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 124 | if (dadosSeparados.length >= 3) { |
||
| 125 | extratoBancoDTO.setDescricao(dadosSeparados[1]); |
||
| 126 | Double valor = 0.0; |
||
| 127 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) { |
||
| 128 | valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") ); |
||
| 129 | } |
||
| 130 | extratoBancoDTO.setValorTotal(valor); |
||
| 131 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor()); |
||
| 132 | if (extratoBancoDTO.getDescricao().contains("DB")) { |
||
| 133 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor()); |
||
| 134 | } else if (extratoBancoDTO.getDescricao().contains("CD") || |
||
| 135 | extratoBancoDTO.getDescricao().contains("REDE EL ") || |
||
| 136 | extratoBancoDTO.getDescricao().contains("REDE MC ") || |
||
| 137 | extratoBancoDTO.getDescricao().contains("REDE VS ") || |
||
| 138 | extratoBancoDTO.getDescricao().contains("REDE HC ") || |
||
| 139 | extratoBancoDTO.getDescricao().contains("REDE AM ")) { |
||
| 140 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor()); |
||
| 141 | } else if (extratoBancoDTO.getDescricao().contains("TRANSF") || |
||
| 142 | extratoBancoDTO.getDescricao().contains("PIX QRS")) { |
||
| 143 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor()); |
||
| 144 | } else if (extratoBancoDTO.getDescricao().contains("APLIC AUT")) { |
||
| 145 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor()); |
||
| 146 | } else if (!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL")) { |
||
| 147 | if (VerificadorUtil.naoEstaNulo(valor)) { |
||
| 148 | if (valor < 0.0) { |
||
| 149 | extratoBancoDTO.setValorTotal(valor * -1); |
||
| 150 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor()); |
||
| 151 | } |
||
| 152 | } |
||
| 153 | } |
||
| 392 | espaco | 154 | if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) { |
| 155 | extratoBancoDTO.setIndicadorCadastrar(true); |
||
| 156 | } else { |
||
| 157 | extratosExtraidosSemCategoria.add(extratoBancoDTO); |
||
| 158 | } |
||
| 159 | if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) { |
||
| 160 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 161 | } |
||
| 162 | extratosExtraidos.add(extratoBancoDTO); |
||
| 379 | espaco | 163 | } |
| 392 | espaco | 164 | } |
| 165 | } |
||
| 166 | } |
||
| 167 | } |
||
| 168 | setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria); |
||
| 169 | return extratosExtraidos; |
||
| 170 | } |
||
| 171 | |||
| 172 | private List<ExtratoBancoDTO> extrairDadosBradesco(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) { |
||
| 173 | List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>(); |
||
| 174 | List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>(); |
||
| 175 | for (String linha : this.getLinhasArquivo()) { |
||
| 176 | String[] dadosSeparados = linha.split(";"); |
||
| 177 | if (dadosSeparados.length > 0) { |
||
| 178 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) { |
||
| 179 | if (dadosSeparados[0].contains("/")) { |
||
| 180 | ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO(); |
||
| 181 | extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO()); |
||
| 182 | extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0])); |
||
| 183 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 184 | if (dadosSeparados.length >= 4) { |
||
| 185 | extratoBancoDTO.setDescricao(dadosSeparados[1]); |
||
| 186 | Double valor = 0.0; |
||
| 187 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[3])) { |
||
| 188 | valor = new Double(dadosSeparados[3].replace(".", "").replace(",", ".")); |
||
| 189 | } else if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[4])) { |
||
| 190 | valor = new Double(dadosSeparados[4].replace(".", "").replace(",", ".")); |
||
| 191 | } |
||
| 192 | extratoBancoDTO.setValorTotal(valor); |
||
| 193 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor()); |
||
| 194 | if (extratoBancoDTO.getDescricao().contains("DEBITO REDECARD\"")) { |
||
| 195 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor()); |
||
| 196 | } else if (extratoBancoDTO.getDescricao().contains("CRED REDECARD") || |
||
| 197 | extratoBancoDTO.getDescricao().contains("CREDITO REDECARD") || |
||
| 198 | extratoBancoDTO.getDescricao().contains("AMEX REDECARD") || |
||
| 199 | extratoBancoDTO.getDescricao().contains("RECEBIMENTO FORNECEDOR") || |
||
| 200 | extratoBancoDTO.getDescricao().contains("ANTECIPACAO REDECARD") || |
||
| 201 | extratoBancoDTO.getDescricao().contains("REDE ATECIPACAO")) { |
||
| 202 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor()); |
||
| 203 | } else if (extratoBancoDTO.getDescricao().contains("TRANSFERENCIA PIX")) { |
||
| 204 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor()); |
||
| 205 | // } else if (extratoBancoDTO.getDescricao().contains("")) { |
||
| 206 | // extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor()); |
||
| 207 | } else if (!extratoBancoDTO.getDescricao().contains("RESGATE INVEST FACIL") && |
||
| 208 | !extratoBancoDTO.getDescricao().contains("APLIC.INVEST FACIL") && |
||
| 209 | !extratoBancoDTO.getDescricao().contains("APLICACAO AUTOMATICA") && |
||
| 210 | !extratoBancoDTO.getDescricao().contains("BAIXA AUTOMATICA FUNDOS")) { |
||
| 211 | if (VerificadorUtil.naoEstaNulo(valor)) { |
||
| 212 | if (valor < 0.0) { |
||
| 213 | extratoBancoDTO.setValorTotal(valor * -1); |
||
| 214 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor()); |
||
| 215 | } |
||
| 216 | } |
||
| 217 | } |
||
| 218 | if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) { |
||
| 219 | extratoBancoDTO.setIndicadorCadastrar(true); |
||
| 220 | } else { |
||
| 221 | extratosExtraidosSemCategoria.add(extratoBancoDTO); |
||
| 222 | } |
||
| 223 | if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) { |
||
| 224 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 225 | } |
||
| 226 | extratosExtraidos.add(extratoBancoDTO); |
||
| 379 | espaco | 227 | } |
| 392 | espaco | 228 | } |
| 229 | } |
||
| 230 | } |
||
| 231 | } |
||
| 232 | setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria); |
||
| 233 | return extratosExtraidos; |
||
| 234 | } |
||
| 235 | |||
| 236 | private List<ExtratoBancoDTO> extrairDadosNubank(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) { |
||
| 237 | List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>(); |
||
| 238 | List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>(); |
||
| 239 | for (String linha : this.getLinhasArquivo()) { |
||
| 240 | String[] dadosSeparados = linha.split(","); |
||
| 241 | if (dadosSeparados.length > 0) { |
||
| 242 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) { |
||
| 243 | if (dadosSeparados[0].contains("/")) { |
||
| 244 | ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO(); |
||
| 245 | extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO()); |
||
| 246 | extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0])); |
||
| 247 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 248 | if (dadosSeparados.length >= 4) { |
||
| 249 | extratoBancoDTO.setDescricao(dadosSeparados[3]); |
||
| 250 | Double valor = 0.0; |
||
| 251 | if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[1])) { |
||
| 252 | valor = new Double(dadosSeparados[1]); |
||
| 253 | } |
||
| 254 | extratoBancoDTO.setValorTotal(valor); |
||
| 255 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor()); |
||
| 256 | if (extratoBancoDTO.getDescricao().contains("recebida pelo Pix") || |
||
| 257 | extratoBancoDTO.getDescricao().contains("ncia Recebida")) { |
||
| 258 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor()); |
||
| 259 | } else if (VerificadorUtil.naoEstaNulo(valor)) { |
||
| 260 | if (valor < 0.0) { |
||
| 261 | extratoBancoDTO.setValorTotal(valor * -1); |
||
| 262 | extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor()); |
||
| 263 | } |
||
| 264 | } |
||
| 265 | if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) { |
||
| 266 | extratoBancoDTO.setIndicadorCadastrar(true); |
||
| 267 | } else { |
||
| 268 | extratosExtraidosSemCategoria.add(extratoBancoDTO); |
||
| 269 | } |
||
| 270 | if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) { |
||
| 271 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 272 | } |
||
| 273 | extratosExtraidos.add(extratoBancoDTO); |
||
| 380 | espaco | 274 | } |
| 379 | espaco | 275 | } |
| 276 | } |
||
| 277 | } |
||
| 278 | } |
||
| 380 | espaco | 279 | setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria); |
| 379 | espaco | 280 | return extratosExtraidos; |
| 281 | } |
||
| 282 | |||
| 380 | espaco | 283 | private Boolean dadoExtratoBancarioEhNovo(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) { |
| 284 | List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>(); |
||
| 285 | for (ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) { |
||
| 286 | if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) { |
||
| 287 | extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO()); |
||
| 288 | break; |
||
| 289 | } |
||
| 290 | } |
||
| 291 | for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) { |
||
| 292 | if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) && |
||
| 293 | extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) && |
||
| 294 | extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) { |
||
| 295 | return false; |
||
| 296 | } |
||
| 297 | } |
||
| 298 | return true; |
||
| 299 | } |
||
| 300 | |||
| 301 | public void marcarTodosDadosExtrato() { |
||
| 379 | espaco | 302 | if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) { |
| 303 | for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) { |
||
| 380 | espaco | 304 | extratoBancoDTO.setIndicadorCadastrar(true); |
| 379 | espaco | 305 | } |
| 306 | } |
||
| 307 | } |
||
| 308 | |||
| 380 | espaco | 309 | public void desmarcarTodosDadosExtrato() { |
| 310 | if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) { |
||
| 311 | for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) { |
||
| 312 | extratoBancoDTO.setIndicadorCadastrar(false); |
||
| 313 | } |
||
| 314 | } |
||
| 315 | } |
||
| 316 | |||
| 296 | espaco | 317 | } |