package br.com.ec.domain.dto;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.httpclient.util.DateUtil;
import org.primefaces.model.file.UploadedFile;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.web.util.DataUtil;
public class ExtratoAntecipacaoArquivoDTO
{
private Date dataRecebimento
;
private ContaBancariaDTO contaBancariaDTO
;
private UploadedFile arquivoAntecipacao
;
private List<String> linhasArquivo
;
private String sqlConsultaParcelas
;
private String sqlAtualizacaoParcelas
;
private List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTO
;
private List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTOConciliados
;
private List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTOSemConciliacao
;
public ExtratoAntecipacaoArquivoDTO
() {
this.
dadosExtratoAntecipacaoDTO =
new ArrayList<ExtratoAntecipacaoDTO
>();
}
public ExtratoAntecipacaoArquivoDTO
(UploadedFile arquivoAntecipacao
) {
super();
this.
arquivoAntecipacao = arquivoAntecipacao
;
}
public Date getDataRecebimento
() {
return dataRecebimento
;
}
public void setDataRecebimento
(Date dataRecebimento
) {
this.
dataRecebimento = dataRecebimento
;
}
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 String getSqlConsultaParcelas
() {
return sqlConsultaParcelas
;
}
public void setSqlConsultaParcelas
(String sqlConsultaParcelas
) {
this.
sqlConsultaParcelas = sqlConsultaParcelas
;
}
public String getSqlAtualizacaoParcelas
() {
return sqlAtualizacaoParcelas
;
}
public void setSqlAtualizacaoParcelas
(String sqlAtualizacaoParcelas
) {
this.
sqlAtualizacaoParcelas = sqlAtualizacaoParcelas
;
}
public List<ExtratoAntecipacaoDTO
> getDadosExtratoAntecipacaoDTO
() {
return dadosExtratoAntecipacaoDTO
;
}
public void setDadosExtratoAntecipacaoDTO
(List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTO
) {
this.
dadosExtratoAntecipacaoDTO = dadosExtratoAntecipacaoDTO
;
}
public List<ExtratoAntecipacaoDTO
> getDadosExtratoAntecipacaoDTOConciliados
() {
return dadosExtratoAntecipacaoDTOConciliados
;
}
public void setDadosExtratoAntecipacaoDTOConciliados
(List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTOConciliados
) {
this.
dadosExtratoAntecipacaoDTOConciliados = dadosExtratoAntecipacaoDTOConciliados
;
}
public List<ExtratoAntecipacaoDTO
> getDadosExtratoAntecipacaoDTOSemConciliacao
() {
return dadosExtratoAntecipacaoDTOSemConciliacao
;
}
public void setDadosExtratoAntecipacaoDTOSemConciliacao
(List<ExtratoAntecipacaoDTO
> dadosExtratoAntecipacaoDTOSemConciliacao
) {
this.
dadosExtratoAntecipacaoDTOSemConciliacao = dadosExtratoAntecipacaoDTOSemConciliacao
;
}
/**************************************/
public Double valorTotalConciliado
() {
Double valorTotal =
0.0;
if (VerificadorUtil.
naoEstaNuloOuVazio(getDadosExtratoAntecipacaoDTOConciliados
())) {
for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : getDadosExtratoAntecipacaoDTOConciliados
()) {
valorTotal += extratoAntecipacaoDTO.
getValorLiquido();
}
}
return valorTotal
;
}
public Double valorTotalNaoConciliado
() {
Double valorTotal =
0.0;
if (VerificadorUtil.
naoEstaNuloOuVazio(getDadosExtratoAntecipacaoDTOSemConciliacao
())) {
for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : getDadosExtratoAntecipacaoDTOSemConciliacao
()) {
valorTotal += extratoAntecipacaoDTO.
getValorLiquido();
}
}
return valorTotal
;
}
/**************************************/
/*
public Boolean todoExtratoConciliado() {
if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
if (!extratoBancoDTO.getIndicadorConciliado()) {
return false;
}
}
}
return true;
}
*/
public void extrairDadosArquivo
() {
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.
setDataRecebimento(DataUtil.
retornarDataApartirString("dd/MM/yyyy", dadosSeparados
[0]));
extratoAntecipacaoDTO.
setDataVenda(DataUtil.
retornarDataApartirString("dd/MM/yyyy", dadosSeparados
[1]));
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(",",
"."));
}
String bandeira = StringUtil.
setarUpperCaseComTrim(dadosSeparados
[21]);
if (bandeira.
equals("AMEX")) {
bandeira =
"AMERICAN EXPRESS";
}
extratoAntecipacaoDTO.
setBandeira(bandeira
);
extratoAntecipacaoDTO.
setValorLiquido(valor
);
extratoAntecipacaoDTO.
setQuantidadeParcelas(new Integer(dadosSeparados
[22]));
extratoAntecipacaoDTO.
setNumeroDaParcela(new Integer(dadosSeparados
[23]));
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
}
}
}
}
/*
StringBuilder sqlConsulta = new StringBuilder();
sqlConsulta.append("SELECT * FROM sc_sec.sec_parcela ");
sqlConsulta.append("WHERE dat_pagamento IS NULL AND (");
for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
// System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido() + " : " + extratoAntecipacaoDTO.getBandeira() + " : " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas());
Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
sqlConsulta.append("(dat_vencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
sqlConsulta.append("val_valor >= " + valorInicial + " AND val_valor <= " + valorFinal + " AND ");
sqlConsulta.append("dsc_observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
sqlConsulta.append("OR ");
}
sqlConsulta.append(")");
// System.out.println(sqlConsulta.toString().replace("OR )", ")"));
setSqlConsultaParcelas(sqlConsulta.toString().replace("OR )", ")"));
*/
/*
StringBuilder sqlConsulta = new StringBuilder();
sqlConsulta.append("SELECT * FROM Parcela p");
sqlConsulta.append("WHERE p.dataPagamento IS NULL AND (");
for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
// System.out.println(extratoAntecipacaoDTO.getSequencial() + " : " + extratoAntecipacaoDTO.getDataVencimento() + " : " + extratoAntecipacaoDTO.getValorLiquido() + " : " + extratoAntecipacaoDTO.getBandeira() + " : " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas());
Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
sqlConsulta.append("(p.dataVencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' AND ");
sqlConsulta.append("p.valor >= " + valorInicial + " AND p.valor <= " + valorFinal + " AND ");
sqlConsulta.append("p.observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
sqlConsulta.append("OR ");
}
sqlConsulta.append(")");
System.out.println(sqlConsulta.toString().replace("OR )", ")"));
*/
StringBuilder sqlConsulta =
new StringBuilder();
sqlConsulta.
append("SELECT new br.com.ec.domain.dto.ParcelaDTO(");
sqlConsulta.
append(ParcelaDTO.
CONSULTA_SEM_CATEGORIA_DTO);
sqlConsulta.
append(") FROM Parcela e ");
sqlConsulta.
append("WHERE e.indicadorAtivo IS TRUE AND e.dataPagamento IS NULL AND (");
for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs
) {
Double valorInicial = extratoAntecipacaoDTO.
getValorLiquido() -
0.10;
Double valorFinal = extratoAntecipacaoDTO.
getValorLiquido() +
0.10;
sqlConsulta.
append("(e.dataVencimento = '" + DateUtil.
formatDate(extratoAntecipacaoDTO.
getDataVencimento(),
"yyyy-MM-dd") +
"' AND ");
sqlConsulta.
append("e.valor >= " + valorInicial +
" AND e.valor <= " + valorFinal +
" AND ");
sqlConsulta.
append("e.observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.
getNumeroDaParcela() +
"/" + extratoAntecipacaoDTO.
getQuantidadeParcelas() +
"%" + extratoAntecipacaoDTO.
getBandeira() +
"%') ");
sqlConsulta.
append("OR ");
}
sqlConsulta.
append(")");
// System.out.println(sqlConsulta.toString().replace("OR )", ")"));
setDadosExtratoAntecipacaoDTOSemConciliacao
(extratoAntecipacaoDTOs
);
setSqlConsultaParcelas
(sqlConsulta.
toString().
replace("OR )",
")"));
}
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 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);
}
}
}
*/
}