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);
}
}
}
}