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 ExtratoAntecipacaoArquivoDTO
{
private ContaBancariaDTO contaBancariaDTO
;
private UploadedFile arquivoAntecipacao
;
private List<String> linhasArquivo
;
private List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTO
;
private List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTOSemConciliacao
;
public ExtratoAntecipacaoArquivoDTO
() {
this.
dadosExtratoAntecipacaoDTO =
new ArrayList<ExtratoAntecipacaoDTO
>();
}
public ExtratoAntecipacaoArquivoDTO
(UploadedFile arquivoAntecipacao
) {
super();
this.
arquivoAntecipacao = arquivoAntecipacao
;
}
public ContaBancariaDTO getContaBancariaDTO
() {
return contaBancariaDTO
;
}
public void setContaBancariaDTO
(ContaBancariaDTO contaBancariaDTO
) {
this.
contaBancariaDTO = contaBancariaDTO
;
}
public UploadedFile getArquivoAntecipacao
() {
return arquivoAntecipacao
;
}
public void setArquivoAntecipacao
(UploadedFile arquivoAntecipacao
) {
this.
arquivoAntecipacao = arquivoAntecipacao
;
}
public List<String> getLinhasArquivo
() {
return linhasArquivo
;
}
public void setLinhasArquivo
(List<String> linhasArquivo
) {
this.
linhasArquivo = linhasArquivo
;
}
public List<ExtratoAntecipacaoDTO
> getDadosExtratoAntecipacaoDTO
() {
return dadosExtratoAntecipacaoDTO
;
}
public void setDadosExtratoAntecipacaoDTO
(List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTO
) {
this.
dadosExtratoAntecipacaoDTO = dadosExtratoAntecipacaoDTO
;
}
public List<ExtratoAntecipacaoDTO
> getDadosExtratoAntecipacaoDTOSemConciliacao
() {
return dadosExtratoAntecipacaoDTOSemConciliacao
;
}
public void setDadosExtratoAntecipacaoDTOSemConciliacao
(List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTOSemConciliacao
) {
this.
dadosExtratoAntecipacaoDTOSemConciliacao = dadosExtratoAntecipacaoDTOSemConciliacao
;
}
/**************************************/
/*
public Boolean todoExtratoConciliado() {
if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
if (!extratoBancoDTO.getIndicadorConciliado()) {
return false;
}
}
}
return true;
}
*/
public void extrairDados
() {
List<ExtratoAntecipacaoDTO
> extratoAntecipacaoDTOs =
new ArrayList<ExtratoAntecipacaoDTO
>();
// setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
// getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
Long sequencial =
new Long(1);
for (String linha :
this.
getLinhasArquivo()) {
// 10/10/2024;29/08/2024;29/05/2025;R$ 60,00;R$ 60,00;2,30%;R$ 1,38;R$ 58,62;Livre;100,0000%;21769086;-;-;0548980;93849763;ESPACO CASE;81704828;546479******1520;não;-;Crédito;Mastercard;10;9;ITAÚ UNIBANCO S.A.;7951;998611;-;-;antecipada
// 10/10/2024;05/08/2024;05/06/2025;R$ 41,50;R$ 41,50;2,30%;R$ 0,95;R$ 40,55;Livre;100,0000%;32994398;-;-;0086277;62449554;ESPACO CASE;81704828;485464******4098;não;-;Crédito;Visa;10;10;ITAÚ UNIBANCO S.A.;7951;998611;-;-;antecipada
// System.out.println(linha);
String[] dadosSeparados = linha.
split(";");
if (dadosSeparados.
length >=
29) {
if (VerificadorUtil.
naoEstaNuloOuVazio(dadosSeparados
[2])) {
if (dadosSeparados
[29].
contains("antecipada")) {
ExtratoAntecipacaoDTO extratoAntecipacaoDTO =
new ExtratoAntecipacaoDTO
();
extratoAntecipacaoDTO.
setSequencial(sequencial
);
sequencial++
;
extratoAntecipacaoDTO.
setDataVencimento(DataUtil.
retornarDataApartirString("dd/MM/yyyy", dadosSeparados
[2]));
Double valor =
0.0;
if (VerificadorUtil.
naoEstaNuloOuVazio(dadosSeparados
[7])) {
String valorLinha = dadosSeparados
[7].
replace("R$",
"").
trim();
valor =
new Double(valorLinha.
replace(".",
"").
replace(",",
".") );
}
extratoAntecipacaoDTO.
setValorLiquido(valor
);
extratoAntecipacaoDTOs.
add(extratoAntecipacaoDTO
);
// [20] Débito ou Crédito
// [21] Elo, Hipercard, Mastercard, Visa...
// [22] Qnt de parcelas
// [23] Número da parcela
// [29] antecipada 758
}
}
}
}
for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs
) {
System.
out.
println(extratoAntecipacaoDTO.
getSequencial() +
" : " + extratoAntecipacaoDTO.
getDataVencimento() +
" : " + extratoAntecipacaoDTO.
getValorLiquido());
}
}
public void extrairDados
(List<ExtratoAntecipacaoArquivoDTO
> extratosAnexadosAnteriormente
) {
// if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
// setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
// getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
// }
}
public static void main
(String[] args
) {
String valor =
"SISPAG PAG TIT BANCO 00";
System.
out.
println(!valor.
contains("SISPAG PAG"));
}
private List<ExtratoAntecipacaoDTO
> extrairDadosItau
(List<ExtratoAntecipacaoArquivoDTO
> extratosAnexadosAnteriormente
) {
List<ExtratoAntecipacaoDTO
> extratosExtraidos =
new ArrayList<ExtratoAntecipacaoDTO
>();
List<ExtratoAntecipacaoDTO
> extratosAntecipacaoDTOSemConciliacao =
new ArrayList<ExtratoAntecipacaoDTO
>();
for (String linha :
this.
getLinhasArquivo()) {
String[] dadosSeparados = linha.
split(";");
if (dadosSeparados.
length > 0) {
if (VerificadorUtil.
naoEstaNuloOuVazio(dadosSeparados
[0])) {
if (dadosSeparados
[0].
contains("/")) {
ExtratoAntecipacaoDTO extratoBancoDTO =
new ExtratoAntecipacaoDTO
();
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.
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("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("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 {
extratosAntecipacaoDTOSemConciliacao.
add(extratoBancoDTO
);
}
// if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
// extratoBancoDTO.setIndicadorCadastrar(false);
// }
extratosExtraidos.
add(extratoBancoDTO
);
}
}
}
}
}
setDadosExtratoAntecipacaoDTOSemConciliacao
(extratosAntecipacaoDTOSemConciliacao
);
return extratosExtraidos
;
}
/*
private Boolean dadoExtratoBancarioEhNovo(List<AntecipacaoArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
for (AntecipacaoArquivoDTO 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);
}
}
}
*/
}