package br.com.ec.controller;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.commons.httpclient.util.DateUtil;
import org.primefaces.model.file.UploadedFile;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.AntecipacaoDTO;
import br.com.ec.domain.dto.ConciliacaoBancariaLancamentoDTO;
import br.com.ec.domain.dto.ExtratoBancarioArquivoDTO;
import br.com.ec.domain.dto.ExtratoBancoDTO;
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
import br.com.ec.domain.service.ConciliacaoBancariaService;
import br.com.ec.domain.service.ExtratoBancoService;
import br.com.ec.domain.service.ParcelaService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
@Named
@Scope
("view")
public class AntecipacaoBean
extends AbstractBean
<AntecipacaoDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private UploadedFile arquivoParaAntecipacao
;
private ConciliacaoBancariaService conciliacaoBancariaService
;
private ParcelaService parcelaService
;
private ExtratoBancoService extratoBancoService
;
@Inject
public AntecipacaoBean
(ConciliacaoBancariaService conciliacaoBancariaService, ParcelaService parcelaService, ExtratoBancoService extratoBancoService
) {
this.
conciliacaoBancariaService = conciliacaoBancariaService
;
this.
parcelaService = parcelaService
;
this.
extratoBancoService = extratoBancoService
;
}
@
Override
public GenericService
<AntecipacaoDTO
> getService
() {
return null;
}
@
Override
public AntecipacaoDTO getId
() {
return null;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new AntecipacaoDTO
());
}
public UploadedFile getArquivoParaAntecipacao
() {
return arquivoParaAntecipacao
;
}
public void setArquivoParaAntecipacao
(UploadedFile arquivoParaAntecipacao
) {
this.
arquivoParaAntecipacao = arquivoParaAntecipacao
;
}
public TipoExtratoBancarioCsv
[] getTiposExtratosBancariosCsv
() {
return TipoExtratoBancarioCsv.
values();
}
public TipoExtratoBanco
[] getTiposExtratoBanco
() {
return TipoExtratoBanco.
values();
}
/*******************************************/
public void uploadArquivoAntecipacao
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
setEntidade
(conciliacaoBancariaService.
importarArquivoAntecipacao(getEntidade
().
getDataAntecipacao(), getArquivoParaAntecipacao
()));
LancadorMensagem.
lancarSucesso("ARQUIVO IMPORTADO COM SUCESSO!");
}
});
}
public void consultarAntecipacao
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
setEntidade
(conciliacaoBancariaService.
consultarAntecipacao(getEntidade
().
getDataAntecipacao(), getEntidade
().
getExtratoAntecipacaoArquivoDTO().
getLinhasArquivo()));
LancadorMensagem.
lancarSucesso("ANTECIPAÇÃO CONSULTADA COM SUCESSO!");
}
});
}
public void conciliarAntecipacao
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
conciliacaoBancariaService.
conciliarAntecipacao(getEntidade
());
Date dataAntecipacao =
new Date(getEntidade
().
getDataAntecipacao().
getTime());
limparEntidade
();
getEntidade
().
setDataAntecipacao(dataAntecipacao
);
String dataFormatada = DateUtil.
formatDate(dataAntecipacao,
"dd/MM/yyyy");
LancadorMensagem.
lancarSucesso("CONCILIAÇÃO DO DIA " + dataFormatada +
" REALIZADA COM SUCESSO!");
}
});
}
public void removerArquivoExtratoBancarioAnexado
(final ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// extratoBancarioArquivoDTO.setDadosExtratoBancoSemCategoriaDTO(new ArrayList<ExtratoBancoDTO>());
// getEntidade().getArquivosExtratoBancarioParaCadastrarDTO().remove(extratoBancarioArquivoDTO);
LancadorMensagem.
lancarSucesso("ARQUIVO REMOVIDO COM SUCESSO");
}
});
}
public void cadastrarExtratosSelecionados
(final ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// extratoBancoService.cadastrarExtratosBancariosAnexado(extratoBancarioArquivoDTO);
// getEntidade().getArquivosExtratoBancarioParaCadastrarDTO().remove(extratoBancarioArquivoDTO);
// consultarConciliacaoBancaria();
LancadorMensagem.
lancarSucesso("EXTRATO BANCÁRIO CADASTRADO COM SUCESSO");
}
});
}
public void excluirExtratosSelecionados
(final ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// extratoBancoService.excluirExtratosBancariosSelecionados(extratoBancarioArquivoDTO);
// getEntidade().getArquivosExtratoBancarioParaCadastrarDTO().remove(extratoBancarioArquivoDTO);
// consultarConciliacaoBancaria();
LancadorMensagem.
lancarSucesso("EXTRATO BANCÁRIO CADASTRADO COM SUCESSO");
}
});
}
/*******************************************/
public void atualizarObservacaoPagamentos
(final ConciliacaoBancariaLancamentoDTO conciliacaoBancariaLancamentoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// conciliacaoBancariaService.atualizarObservacaoPagamentos(conciliacaoBancariaLancamentoDTO);
LancadorMensagem.
lancarSucesso("CONCILIAÇÃO ATUALIZADA COM SUCESSO");
}
});
}
public void conciliar
(final ConciliacaoBancariaLancamentoDTO conciliacaoBancariaLancamentoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// conciliacaoBancariaService.realizarConciliacao(conciliacaoBancariaLancamentoDTO);
// consultarConciliacaoBancaria();
LancadorMensagem.
lancarSucesso("CONCILIAÇÃO REALIZADA COM SUCESSO");
}
});
}
public void conciliarExtratosComArquivos
(final ConciliacaoBancariaLancamentoDTO conciliacaoBancariaLancamentoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// if (VerificadorUtil.estaNulo(getEntidade().getVigenciaDTO())) {
// throw new NegocioException("SELECIONE A VIGÊNCIA");
// }
// List<ConciliacaoBancariaLancamentoDTO> conciliacoes = new ArrayList<ConciliacaoBancariaLancamentoDTO>();
// conciliacoes.add(conciliacaoBancariaLancamentoDTO);
// extratoBancoService.conciliarExtratosComArquivos(conciliacoes);
// consultarConciliacaoBancaria();
LancadorMensagem.
lancarSucesso("EXTRATOS ATUALIZADOS COM SUCESSO");
}
});
}
public void prepararAlterarExtratoSelecionado
(final ExtratoBancoDTO extratoBancoDTO
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// setExtratoBancoDTOParaAlterar(extratoBancoDTO);
}
});
}
public void removerExtratoSelecionado
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// extratoBancoService.excluirDadoExtratoBancoSelecionado(getExtratoBancoDTOParaAlterar());
// consultarConciliacaoBancaria();
LancadorMensagem.
lancarSucesso("DADO DO EXTRATO BANCÁRIO EXCLUÍDO COM SUCESSO");
}
});
}
public void atualizarDadoExtratoBanco
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
// extratoBancoService.alterarDadosExtratoBanco(getExtratoBancoDTOParaAlterar());
LancadorMensagem.
lancarSucesso("DADO DO EXTRATO BANCÁRIO ATUALIZADO COM SUCESSO");
}
});
}
/*
public void atualizarDadosArquivosExtratoBancario(final ConciliacaoBancariaLancamentoDTO conciliacaoBancariaLancamentoDTO) {
new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
public void execute() {
if (VerificadorUtil.estaNulo(getEntidade().getVigenciaDTO())) {
throw new NegocioException("SELECIONE A VIGÊNCIA");
}
extratoBancoService.atualizarExtratosAnexados(getEntidade());
//consultarConciliacaoBancaria();
LancadorMensagem.lancarSucesso("EXTRATOS ATUALIZADOS COM SUCESSO");
}
});
}
*/
public List<String> extrairLinhasArquivo
(UploadedFile arquivo
) {
BufferedReader reader =
null;
List<String> linhas =
new ArrayList<String>();
try {
reader =
new BufferedReader(new InputStreamReader(arquivo.
getInputStream()));
String linha = reader.
readLine();
linha = reader.
readLine();
linha = reader.
readLine();
while ((linha = reader.
readLine()) !=
null) {
linhas.
add(linha
);
}
} catch (Exception ex
) {
ex.
printStackTrace();
} finally {
try {
reader.
close();
} catch (IOException exc
) {
exc.
printStackTrace();
}
}
return linhas
;
}
/*******************************************************/
}