package gcom.gui.relatorio.faturamento; import java.util.Collection; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.RelatorioVazioException; import gcom.relatorio.faturamento.RelatorioResumoFaturamento; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Gera��o do relat�rio [UC0173] Gerar Relat�rio de Resumo do Faturamento * * @author Rodrigo */ public class GerarRelatorioResumoFaturamentoAction extends ExibidorProcessamentoTarefaRelatorio { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = null; GerarRelatorioResumoFaturamentoActionForm form = (GerarRelatorioResumoFaturamentoActionForm) actionForm; String mesAno = form.getMesAno(); Integer gerenciaRegional = null; Integer localidade = null; Integer municipio = null; Integer unidadeNegocio = null; String opcaoTotalizacao = form.getOpcaoTotalizacao(); String opcaoRelatorio = form.getOpcaoRelatorio(); if(mesAno == null || mesAno.equals("")){ throw new ActionServletException("atencao.required", null, "M�s/Ano da Arrecada��o"); } if (opcaoTotalizacao == null || opcaoTotalizacao.equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Op��o de Totaliza��o "); } if (opcaoTotalizacao.trim().equals("gerenciaRegional")) { gerenciaRegional = Integer.parseInt(form.getGerenciaRegionalId()); if (gerenciaRegional == null || gerenciaRegional .equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ActionServletException("atencao.required", null, "Ger�ncia Regional"); } } else if (opcaoTotalizacao.trim().equals("gerenciaRegionalLocalidade")) { gerenciaRegional = Integer.parseInt(form .getGerenciaRegionalporLocalidadeId()); if (gerenciaRegional == null || gerenciaRegional .equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ActionServletException("atencao.required", null, "Ger�ncia Regional"); } } if (opcaoTotalizacao.trim().equals("localidade")) { String codigoLocalidade = form.getCodigoLocalidade(); if (codigoLocalidade == null || codigoLocalidade.equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Localidade "); } else { pesquisarLocalidade(codigoLocalidade, httpServletRequest); } localidade = Integer.parseInt(codigoLocalidade); } if (opcaoTotalizacao.trim().equals("municipio")) { String codigoMunicipio = form.getCodigoMunicipio(); if (codigoMunicipio == null || codigoMunicipio.equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Munic�pio "); } else { pesquisarMunicipio(codigoMunicipio, httpServletRequest); } municipio = Integer.parseInt(codigoMunicipio); } if (opcaoTotalizacao.trim().equals("unidadeNegocio")) { String idUnidadeNegocio = form.getUnidadeNegocioId(); if (idUnidadeNegocio == null || idUnidadeNegocio .equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ActionServletException("atencao.required", null, "Unidade de Neg�cio "); } unidadeNegocio = Integer.parseInt(idUnidadeNegocio); } int mesAnoInteger = Integer.parseInt(mesAno.substring(0, 2) + mesAno.substring(3, 7)); // Verificar se o Ano/M�s est� valido [FS0002] if (!Util.validarMesAno(mesAno)) { // Se deu algum erro neste ponto, indica falha no sistema throw new ActionServletException("erro.sistema"); } Fachada fachada = Fachada.getInstancia(); // [FS0002] Verificar refer�ncia do faturamento fachada.verificarReferenciaFaturamentoCorrente(mesAno); // Parte que vai mandar o relat�rio para a tela // cria uma inst�ncia da classe do relat�rio RelatorioResumoFaturamento relatorioResumoFaturamento = new RelatorioResumoFaturamento( (Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado")); relatorioResumoFaturamento.addParametro("opcaoTotalizacao", opcaoTotalizacao); relatorioResumoFaturamento.addParametro("mesAnoInteger", mesAnoInteger); relatorioResumoFaturamento.addParametro("localidade", localidade); relatorioResumoFaturamento.addParametro("gerenciaRegional", gerenciaRegional); relatorioResumoFaturamento.addParametro("unidadeNegocio",unidadeNegocio); relatorioResumoFaturamento.addParametro("opcaoRelatorio",opcaoRelatorio); relatorioResumoFaturamento.addParametro("municipio", municipio); String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorioResumoFaturamento.addParametro("tipoFormatoRelatorio", Integer .parseInt(tipoRelatorio)); try { retorno = processarExibicaoRelatorio(relatorioResumoFaturamento, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); } catch (RelatorioVazioException ex) { // manda o erro para a p�gina no request atual reportarErros(httpServletRequest, "atencao.relatorio.vazio"); // seta o mapeamento de retorno para a tela de aten��o de popup retorno = actionMapping.findForward("telaAtencaoPopup"); } return retorno; } private void pesquisarLocalidade(String idLocalidade, HttpServletRequest httpServletRequest) { Fachada fachada = Fachada.getInstancia(); // Pesquisa a localidade na base FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, idLocalidade)); Collection<Localidade> localidadePesquisada = fachada.pesquisar( filtroLocalidade, Localidade.class.getName()); if (localidadePesquisada == null || localidadePesquisada.isEmpty()) { // a localidade n�o foi encontrada throw new ActionServletException("atencao.localidade.inexistente"); } } private void pesquisarMunicipio(String idMunicipio, HttpServletRequest httpServletRequest) { Fachada fachada = Fachada.getInstancia(); // Pesquisa o munic�pio na base FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples(FiltroMunicipio.ID, idMunicipio)); Collection<Municipio> municipioPesquisado = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (municipioPesquisado == null || municipioPesquisado.isEmpty()) { // o munic�pio n�o foi encontrado throw new ActionServletException("atencao.municipio.inexistente"); } } }