Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller.managedbean;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletContext;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.springframework.context.annotation.Scope;

import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.contantes.ContantesUtil;
import br.com.ec.core.exception.NegocioException;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.ArquivoUtil;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.TipoExtensao;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.ParametrosConsultaVendasDTO;
import br.com.ec.domain.dto.ParametrosConsultaVendasVivoDTO;
import br.com.ec.domain.dto.RankingVendedorDTO;
import br.com.ec.domain.model.Avaliacao;
import br.com.ec.domain.model.AvaliacaoFuncionario;
import br.com.ec.domain.model.AvaliacaoFuncionarioItemAvaliacao;
import br.com.ec.domain.model.AvaliacaoLoja;
import br.com.ec.domain.model.Funcionario;
import br.com.ec.domain.model.ItemAvaliacao;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.domain.model.Vendedor;
import br.com.ec.domain.model.Vigencia;
import br.com.ec.domain.model.tipos.TipoComissionamento;
import br.com.ec.domain.model.tipos.TipoFaixaComissao;
import br.com.ec.domain.service.avaliacao.AvaliacaoService;
import br.com.ec.domain.service.avaliacaofuncionario.AvaliacaoFuncionarioService;
import br.com.ec.domain.service.avaliacaoloja.AvaliacaoLojaService;
import br.com.ec.domain.service.itemavaliacao.ItemAvaliacaoService;
import br.com.ec.domain.service.venda.VendaService;
import br.com.ec.domain.service.vendavivo.VendaVivoService;
import br.com.ec.domain.service.vendedor.VendedorService;
import br.com.ec.domain.shared.ConstantesSEC;
import br.com.ec.relatorio.util.RelatorioUtils;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
import br.com.ec.web.util.TipoOperacao;

@Named
@Scope("view")
public class AvaliacaoBean extends AbstractBean<Avaliacao> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private AvaliacaoService avaliacaoService;
        private AvaliacaoFuncionarioService avaliacaoFuncionarioService;
        private AvaliacaoLojaService avaliacaoLojaService;
        private ItemAvaliacaoService itemAvaliacaoService;
        private VendedorService vendedorService;
        private VendaService vendaService;
        private VendaVivoService vendaVivoService;
       
        private Avaliacao avaliacaoSelecionado;
        private AvaliacaoFuncionario participanteSelecionado;
        private AvaliacaoFuncionarioItemAvaliacao itemSelecionado;
       
        private AvaliacaoLoja lojaParticipanteSelecionada;
       
        private Avaliacao avaliacaoSelecionadaParaDuplicacao;
        private Vigencia vigenciaSelecionadaParaDuplicacao;
       
        private List<Avaliacao> avaliacoesDivulgadas;
        private String reavaliacao;

        @Inject
        public AvaliacaoBean(AvaliacaoService avaliacaoService, AvaliacaoFuncionarioService avaliacaoFuncionarioService, AvaliacaoLojaService avaliacaoLojaService,
                        ItemAvaliacaoService itemAvaliacaoService, VendedorService vendedorService, VendaService vendaService, VendaVivoService vendaVivoService) {
                this.avaliacaoService = avaliacaoService;
                this.avaliacaoFuncionarioService = avaliacaoFuncionarioService;
                this.avaliacaoLojaService = avaliacaoLojaService;
                this.itemAvaliacaoService = itemAvaliacaoService;
                this.vendedorService = vendedorService;
                this.vendaService = vendaService;
                this.vendaVivoService = vendaVivoService;
        }
       
        @Override
        public void preCarregamento() {
                parametrosConsulta = new ParametrosConsulta<Avaliacao>();
                parametrosConsulta.setEntidade(new Avaliacao());
                setParticipanteSelecionado(new AvaliacaoFuncionario());
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new Avaliacao());
        }

        @Override
        public GenericService<Avaliacao> getService() {
                return avaliacaoService;
        }
       
        @Override
        public Avaliacao getEntidade() {
                return entidade;
        }

        @Override
        public Avaliacao getId() {
                return getEntidade();
        }
       
        public Avaliacao getAvaliacaoSelecionado() {
                return avaliacaoSelecionado;
        }
        public void setAvaliacaoSelecionado(Avaliacao avaliacaoSelecionado) {
                this.avaliacaoSelecionado = avaliacaoSelecionado;
        }
       
        public AvaliacaoFuncionario getParticipanteSelecionado() {
                return participanteSelecionado;
        }
        public void setParticipanteSelecionado(AvaliacaoFuncionario participanteSelecionado) {
                this.participanteSelecionado = participanteSelecionado;
        }
       
        public AvaliacaoFuncionarioItemAvaliacao getItemSelecionado() {
                return itemSelecionado;
        }
        public void setItemSelecionado(AvaliacaoFuncionarioItemAvaliacao itemSelecionado) {
                this.itemSelecionado = itemSelecionado;
        }
       
        public AvaliacaoLoja getLojaParticipanteSelecionada() {
                return lojaParticipanteSelecionada;
        }
        public void setLojaParticipanteSelecionada(AvaliacaoLoja lojaParticipanteSelecionada) {
                this.lojaParticipanteSelecionada = lojaParticipanteSelecionada;
        }
       
        public Avaliacao getAvaliacaoSelecionadaParaDuplicacao() {
                return avaliacaoSelecionadaParaDuplicacao;
        }
        public void setAvaliacaoSelecionadaParaDuplicacao(Avaliacao avaliacaoSelecionadaParaDuplicacao) {
                this.avaliacaoSelecionadaParaDuplicacao = avaliacaoSelecionadaParaDuplicacao;
        }
       
        public Vigencia getVigenciaSelecionadaParaDuplicacao() {
                return vigenciaSelecionadaParaDuplicacao;
        }
        public void setVigenciaSelecionadaParaDuplicacao(Vigencia vigenciaSelecionadaParaDuplicacao) {
                this.vigenciaSelecionadaParaDuplicacao = vigenciaSelecionadaParaDuplicacao;
        }
       
        public List<Avaliacao> getAvaliacoesDivulgadas() {
                if (VerificadorUtil.estaNulo(avaliacoesDivulgadas)) {
                        setAvaliacoesDivulgadas(consultarAvaliacoesDivulgadas());
                }
                return avaliacoesDivulgadas;
        }
        public void setAvaliacoesDivulgadas(List<Avaliacao> avaliacoesDivulgadas) {
                this.avaliacoesDivulgadas = avaliacoesDivulgadas;
        }
       
        public String getReavaliacao() {
                return reavaliacao;
        }
        public void setReavaliacao(String reavaliacao) {
                this.reavaliacao = StringUtil.setarUpperCaseComTrim(reavaliacao);
        }
       
        /***************************************************************/
       
        public TipoFaixaComissao[] getTiposFaixaComissao() {
                return TipoFaixaComissao.values();
        }
       
        @Override
        public void preDetalhar(Avaliacao avaliacao) {
                detalhar(avaliacao);
                setTipoOperacao(TipoOperacao.DETALHAR);
        }
       
        @Override
        public void preAlterar(Avaliacao avaliacao) {
                detalhar(avaliacao);
                setTipoOperacao(TipoOperacao.ALTERAR);
        }
       
        public void detalhar(Avaliacao avaliacao) {
                setEntidade(avaliacaoService.detalhar(avaliacao));
        }
       
        public void selecionarParticipante(AvaliacaoFuncionario avaliacaoFuncionario) {
                setParticipanteSelecionado(avaliacaoFuncionarioService.detalhar(avaliacaoFuncionario));
                setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
                getParticipanteSelecionado().setValorTotalVendido(consultarVendasDoPeriodo(getParticipanteSelecionado()));
                getParticipanteSelecionado().setValorTotalVendidoVivo(consultarVendasVivoDoPeriodo(getParticipanteSelecionado()));
        }
       
        public void selecionarParticipante(Pessoa pessoa, Avaliacao avaliacao) {
                setParticipanteSelecionado(avaliacaoFuncionarioService.detalhar(pessoa, avaliacao));
                setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
                getParticipanteSelecionado().setValorTotalVendido(consultarVendasDoPeriodo(getParticipanteSelecionado()));
                getParticipanteSelecionado().setValorTotalVendidoVivo(consultarVendasVivoDoPeriodo(getParticipanteSelecionado()));
        }
       
        public void selecionarLojaParticipante(AvaliacaoLoja avaliacaoLoja) {
                setLojaParticipanteSelecionada(avaliacaoLojaService.detalhar(avaliacaoLoja));
                getLojaParticipanteSelecionada().setValorTotalVendido(consultarVendasDoPeriodo(getLojaParticipanteSelecionada()));
        }
       
        public void selecionarLojaParticipante(Loja loja, Avaliacao avaliacao) {
                setLojaParticipanteSelecionada(avaliacaoLojaService.detalhar(loja, avaliacao));
                getLojaParticipanteSelecionada().setValorTotalVendido(consultarVendasDoPeriodo(getLojaParticipanteSelecionada()));
        }
       
        private Double consultarVendasDoPeriodo(AvaliacaoFuncionario avaliacaoFuncionario) {
                Vendedor vendedor = vendedorService.consultarVendedorPorPessoa(avaliacaoFuncionario.getFuncionario().getPessoa());
                ParametrosConsultaVendasDTO parametrosConsultaVendasDTO = new ParametrosConsultaVendasDTO();
                parametrosConsultaVendasDTO.setVendedor(vendedor);
                parametrosConsultaVendasDTO.setDataInicial(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataInicio());
                parametrosConsultaVendasDTO.setDataFinal(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataFim());
                parametrosConsultaVendasDTO.setIndicadorComissionado(true);
                return vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendasDTO);
        }
       
        private Double consultarVendasVivoDoPeriodo(AvaliacaoFuncionario avaliacaoFuncionario) {
                Vendedor vendedor = vendedorService.consultarVendedorPorPessoa(avaliacaoFuncionario.getFuncionario().getPessoa());
                ParametrosConsultaVendasVivoDTO parametrosConsultaVendasVivoDTO = new ParametrosConsultaVendasVivoDTO();
                parametrosConsultaVendasVivoDTO.setVendedor(vendedor);
                parametrosConsultaVendasVivoDTO.setDataInicial(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataInicio());
                parametrosConsultaVendasVivoDTO.setDataFinal(avaliacaoFuncionario.getAvaliacao().getVigencia().getDataFim());
                return vendaVivoService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendasVivoDTO);
        }
       
        private Double consultarVendasDoPeriodo(AvaliacaoLoja avaliacaoLoja) {
                ParametrosConsultaVendasDTO parametrosConsultaVendasDTO = new ParametrosConsultaVendasDTO();
                parametrosConsultaVendasDTO.setLoja(avaliacaoLoja.getLoja());
                parametrosConsultaVendasDTO.setDataInicial(avaliacaoLoja.getAvaliacao().getVigencia().getDataInicio());
                parametrosConsultaVendasDTO.setDataFinal(avaliacaoLoja.getAvaliacao().getVigencia().getDataFim());
                parametrosConsultaVendasDTO.setIndicadorComissionado(true);
                return vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendasDTO);
        }
       
        public void adicionarParticipante(final Funcionario funcionario) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                if (VerificadorUtil.estaNuloOuVazio(getEntidade().getParticipantes())) {
                                        getEntidade().setParticipantes(new HashSet<AvaliacaoFuncionario>());
                                }
                                boolean adicionar = true;
                                for (AvaliacaoFuncionario participante : getEntidade().getParticipantes()) {
                                        if (participante.getFuncionario().equals(funcionario)) {
                                                adicionar = false;
                                                break;
                                        }
                                }
                                if (adicionar) {
                                        AvaliacaoFuncionario avaliacaoFuncionario = new AvaliacaoFuncionario();
                                        avaliacaoFuncionario.setFuncionario(funcionario);
                                        avaliacaoFuncionario.setAvaliacao(getEntidade());
                                        avaliacaoFuncionario.setLoja(new Loja(ConstantesSEC.SEQUENCIAL_MATRIZ_ESTOQUE_9));
                                        getEntidade().getParticipantes().add(avaliacaoFuncionario);
                                        avaliacaoService.alterar(getEntidade());
                                        detalhar(getEntidade());
                                        LancadorMensagem.lancarSucesso("PARTICIPANTE ADICIONADO COM SUCESSO");
                                } else {
                                        LancadorMensagem.lancarErro("PARTICIPANTE JÁ FOI ADICIONADO");
                                }
                        }
                });
        }
       
        public void removerParticipante(final AvaliacaoFuncionario avaliacaoFuncionario) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                if (VerificadorUtil.naoEstaNuloOuVazio(getEntidade().getParticipantes())) {
                                        getEntidade().getParticipantes().remove(avaliacaoFuncionario);
                                }
                                avaliacaoService.alterar(getEntidade());
                                detalhar(getEntidade());
                                LancadorMensagem.lancarSucesso("PARTICIPANTE REMOVIDO COM SUCESSO");
                        }
                });
        }
       
        public void alterarParticipante() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                avaliacaoService.alterar(getEntidade());
                                avaliacaoFuncionarioService.alterar(getParticipanteSelecionado());
                                detalhar(getEntidade());
                                LancadorMensagem.lancarSucesso("PARTICIPANTE ALTERADO COM SUCESSO");
                        }
                });
        }
       
        public Double consultarValorComissao(AvaliacaoFuncionario avaliacaoFuncionario) {
                if (VerificadorUtil.naoEstaNuloOuVazio(avaliacaoFuncionario.getPorcentagemComissao())) {
                        return consultarVendasDoPeriodo(avaliacaoFuncionario) * avaliacaoFuncionario.getPorcentagemComissao() / 100;
                }
                return null;
        }
       
        public void adicionarItem(AvaliacaoFuncionarioItemAvaliacao avaliacaoFuncionarioItemAvaliacao) {
                if (VerificadorUtil.estaNuloOuVazio(getParticipanteSelecionado())) {
                        getParticipanteSelecionado().getItens().add(avaliacaoFuncionarioItemAvaliacao);
                }
        }
       
        public void removerItem(AvaliacaoFuncionarioItemAvaliacao avaliacaoFuncionarioItemAvaliacao) {
                if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado())) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado().getItens())) {
                                getParticipanteSelecionado().getItens().remove(avaliacaoFuncionarioItemAvaliacao);
                        }
                }
        }
       
        public Double consultarPontuacao(AvaliacaoFuncionario avaliacaoFuncionario) {
                try {
                        AvaliacaoFuncionario participanteDetalhado = avaliacaoFuncionarioService.detalhar(avaliacaoFuncionario);
                        return participanteDetalhado.getPontuacao();
                } catch (Exception ex) {}
                return null;
        }
       
        public Double consultarPontuacao(Pessoa pessoa, Avaliacao avaliacao) {
                try {
                        AvaliacaoFuncionario participanteDetalhado = avaliacaoFuncionarioService.detalhar(pessoa, avaliacao);
                        return participanteDetalhado.getPontuacao();
                } catch (Exception ex) {}
                return null;
        }
       
        public void alterarItensDoParticipante() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                avaliacaoFuncionarioService.alterar(getParticipanteSelecionado());
                                LancadorMensagem.lancarSucesso("AVALIAÇÃO DO PARTICIPANTE ALTERADA COM SUCESSO");
                        }
                });
        }
       
        public List<ItemAvaliacao> consultarItensAvaliacao() {
                return itemAvaliacaoService.consultarTodosAtivos();
        }
       
        public void adicionarItemAvaliacao() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getItemSelecionado().setAvaliacaoFuncionario(getParticipanteSelecionado());
                                getParticipanteSelecionado().adicionarItemAvaliacao(getItemSelecionado());
                                setItemSelecionado(new AvaliacaoFuncionarioItemAvaliacao());
                                LancadorMensagem.lancarSucesso("ITEM DE AVALIAÇÃO ADICIONADO COM SUCESSO");
                        }
                });
        }

        public void adicionarLojaParticipante(final Loja loja) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                if (VerificadorUtil.estaNuloOuVazio(getEntidade().getLojasParticipantes())) {
                                        getEntidade().setLojasParticipantes(new HashSet<AvaliacaoLoja>());
                                }
                                boolean adicionar = true;
                                for (AvaliacaoLoja participante : getEntidade().getLojasParticipantes()) {
                                        if (participante.getLoja().equals(loja)) {
                                                adicionar = false;
                                                break;
                                        }
                                }
                                if (adicionar) {
                                        AvaliacaoLoja avaliacaoLoja = new AvaliacaoLoja();
                                        avaliacaoLoja.setLoja(loja);
                                        avaliacaoLoja.setAvaliacao(getEntidade());
                                        getEntidade().getLojasParticipantes().add(avaliacaoLoja);
                                        avaliacaoService.alterar(getEntidade());
                                        detalhar(getEntidade());
                                        LancadorMensagem.lancarSucesso("LOJA PARTICIPANTE ADICIONADA COM SUCESSO");
                                } else {
                                        LancadorMensagem.lancarErro("LOJA PARTICIPANTE JÁ FOI ADICIONADA");
                                }
                        }
                });
        }
       
        public void removerLojaParticipante(final AvaliacaoLoja avaliacaoLoja) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                if (VerificadorUtil.naoEstaNuloOuVazio(getEntidade().getLojasParticipantes())) {
                                        getEntidade().getLojasParticipantes().remove(avaliacaoLoja);
                                }
                                avaliacaoService.alterar(getEntidade());
                                detalhar(getEntidade());
                                LancadorMensagem.lancarSucesso("LOJA PARTICIPANTE REMOVIDA COM SUCESSO");
                        }
                });
        }
       
        public void alterarLojaParticipante() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                avaliacaoService.alterar(getEntidade());
                                avaliacaoLojaService.alterar(getLojaParticipanteSelecionada());
                                detalhar(getEntidade());
                                LancadorMensagem.lancarSucesso("LOJA PARTICIPANTE ALTERADA COM SUCESSO");
                        }
                });
        }
       
        public List<Avaliacao> consultarAvaliacoesDivulgadas() {
                return avaliacaoService.consultarAvaliacoesDivulgadas();
        }
       
        public void prepararDuplicacaoAvaliacao(Avaliacao avaliacao) {
                setAvaliacaoSelecionadaParaDuplicacao(avaliacaoService.detalhar(avaliacao));
        }
       
        public void duplicarAvaliacao() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                Avaliacao avaliacaoNova = new Avaliacao();
                                avaliacaoNova.setVigencia(vigenciaSelecionadaParaDuplicacao);
                                avaliacaoService.cadastrar(avaliacaoNova);
                               
                                List<AvaliacaoFuncionario> participantesNovos = new ArrayList<AvaliacaoFuncionario>();
                                for (AvaliacaoFuncionario avaliacaoFuncionario : getAvaliacaoSelecionadaParaDuplicacao().getParticipantesOrdenados()) {
                                        AvaliacaoFuncionario avaliacaoFuncionarioNovo = new AvaliacaoFuncionario();
                                        avaliacaoFuncionarioNovo.setAvaliacao(avaliacaoNova);
                                        avaliacaoFuncionarioNovo.setFuncionario(avaliacaoFuncionario.getFuncionario());
                                        avaliacaoFuncionarioNovo.setLoja(avaliacaoFuncionario.getLoja());
                                        avaliacaoFuncionarioNovo.setValorMetaMensal(avaliacaoFuncionario.getValorMetaMensal());
                                        avaliacaoFuncionarioNovo.setValorMetaMensalVivo(avaliacaoFuncionario.getValorMetaMensalVivo());
                                        participantesNovos.add(avaliacaoFuncionarioNovo);
                                }
                                avaliacaoNova.getParticipantes().addAll(participantesNovos);
                               
                                List<AvaliacaoLoja> lojasParticipantesNovas = new ArrayList<AvaliacaoLoja>();
                                for (AvaliacaoLoja avaliacaoLoja : getAvaliacaoSelecionadaParaDuplicacao().getLojasParticipantesOrdenadas()) {
                                        AvaliacaoLoja avaliacaoLojaNovo = new AvaliacaoLoja();
                                        avaliacaoLojaNovo.setAvaliacao(avaliacaoNova);
                                        avaliacaoLojaNovo.setLoja(avaliacaoLoja.getLoja());
                                        avaliacaoLojaNovo.setValorMetaMensal(avaliacaoLoja.getValorMetaMensal());
                                        avaliacaoLojaNovo.setValorMargemContribuicao(avaliacaoLoja.getValorMargemContribuicao());
                                        lojasParticipantesNovas.add(avaliacaoLojaNovo);
                                }
                                avaliacaoNova.getLojasParticipantes().addAll(lojasParticipantesNovas);
                               
                                avaliacaoService.alterar(avaliacaoNova);
                                LancadorMensagem.lancarSucesso("AVALIAÇÃO DUPLICADA COM SUCESSO");
                        }
                });
        }
       
        public void atualizarValorComissao() {
                if (VerificadorUtil.naoEstaNuloOuVazio(getParticipanteSelecionado().getPorcentagemComissao())) {
                        getParticipanteSelecionado().setValorComissao(consultarVendasDoPeriodo(getParticipanteSelecionado()) * getParticipanteSelecionado().getPorcentagemComissao() / 100);
                }
        }
       
        public void enviarReavaliacao(final RankingVendedorDTO rankingVendedor) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                avaliacaoService.solicitarReavaliacao(rankingVendedor, getReavaliacao());
                                LancadorMensagem.lancarSucesso("REAVALIAÇÃO SOLICITADA COM SUCESSO");
                        }
                });
        }
       
        public StreamedContent emitirRelatorioImportacaoFolhaPagamento(final String codigoEmpresa) {
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
                        @Override
                        public StreamedContent execute() {
                                String nomeArquivo = "";
                                Long empresa = null;
                                if (ConstantesSEC.Empresa.CODIGO_EMPRESA_ESPACO_CASE_1.equals(new Long(codigoEmpresa))) {
                                        nomeArquivo = "Relatório de Importação - Folha de Pagamento Espaço Case.xls";
                                        empresa = TipoComissionamento.COMISSSIONAMENTO_ESPACO_CASE.getEmpresa();
                                } else if (ConstantesSEC.Empresa.CODIGO_EMPRESA_CASA_DAS_CAPAS_4.equals(new Long(codigoEmpresa))) {
                                        nomeArquivo = "Relatório de Importação - Folha de Pagamento Casa das Capas.xls";
                                        empresa = TipoComissionamento.COMISSSIONAMENTO_CASA_DAS_CAPAS.getEmpresa();
                                }
                                try {
                                        ByteArrayInputStream input = new ByteArrayInputStream(avaliacaoService.emitirRelatorioImportacaoFolhaPagamento((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext(), getEntidade(), empresa));
                                        return new DefaultStreamedContent(input, ArquivoUtil.retornarContentTypeArquivo("xls"), nomeArquivo);
                                } catch (IOException e) {
                                        e.printStackTrace();
                                } catch (NegocioException nex) {
                                        LancadorMensagem.lancarErro(nex.getMessage());
                                }
                                return null;
                        }
                });
        }
       
}