Subversion Repositories Integrator Subversion

Rev

Rev 679 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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;
        }
       
        /*******************************************************/
       
}