package gcom.gui.relatorio.micromedicao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.ContratoEmpresaServico; import gcom.micromedicao.FiltroContratoEmpresaServico; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * [UC1054] - Gerar Relat�rio Boletim de Medi��o * * @author Hugo Leonardo * * @date 04/08/2010 */ public class ExibirGerarRelatorioBoletimMedicaoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirGerarRelatorioBoletimMedicao"); GerarRelatorioBoletimMedicaoForm form = (GerarRelatorioBoletimMedicaoForm) actionForm; if (form.getFormaGeracao() == null || form.getFormaGeracao().equals("")) { form.setFormaGeracao("3"); } // Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter String objetoConsulta = httpServletRequest.getParameter("objetoConsulta"); // Pesquisar Localidade if (objetoConsulta != null && !objetoConsulta.trim().equals("") && (objetoConsulta.trim().equals("1") || objetoConsulta.trim().equals("3")) ) { // Faz a consulta de Localidade this.pesquisarLocalidade(form, objetoConsulta); } this.pesquisarEmpresa(httpServletRequest); if(form.getEmpresa() != null && !form.getEmpresa().equals("")){ this.pesquisarContrato(httpServletRequest, form); } this.pesquisarGerenciaRegional(httpServletRequest); // Seta os request�s encontrados this.setaRequest(httpServletRequest,form); return retorno; } private void setaRequest(HttpServletRequest httpServletRequest, GerarRelatorioBoletimMedicaoForm form){ // Localidade Inicial if(form.getLocalidadeInicial() != null && !form.getLocalidadeInicial().equals("") && form.getNomeLocalidadeInicial() != null && !form.getNomeLocalidadeInicial().equals("")){ httpServletRequest.setAttribute("localidadeInicialEncontrada","true"); httpServletRequest.setAttribute("localidadeFinalEncontrada","true"); }else{ if(form.getLocalidadeFinal() != null && !form.getLocalidadeFinal().equals("") && form.getNomeLocalidadeFinal() != null && !form.getNomeLocalidadeFinal().equals("")){ httpServletRequest.setAttribute("localidadeFinalEncontrada","true"); } } } private void pesquisarEmpresa(HttpServletRequest httpServletRequest){ /* FiltroContratoEmpresaServico filtroContratoEmpresaServico = new FiltroContratoEmpresaServico(); filtroContratoEmpresaServico.setConsultaSemLimites(true); filtroContratoEmpresaServico.adicionarParametro( new ParametroNulo(FiltroContratoEmpresaServico.DATA_FIM_CONTRATO, ParametroSimples.CONECTOR_OR)); filtroContratoEmpresaServico.adicionarParametro( new MaiorQue(FiltroContratoEmpresaServico.DATA_FIM_CONTRATO, new Date())); filtroContratoEmpresaServico.adicionarCaminhoParaCarregamentoEntidade( FiltroContratoEmpresaServico.EMPRESA); filtroContratoEmpresaServico.setCampoOrderBy(FiltroContratoEmpresaServico.DESCRICAO); Collection colecaoEmpresa = this.getFachada().pesquisar(filtroContratoEmpresaServico, ContratoEmpresaServico.class.getName()); */ Collection<Empresa> colecaoEmpresa = this.getFachada().pesquisarEmpresasContratoServico(); if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Empresa"); } else { httpServletRequest.setAttribute("colecaoEmpresa", colecaoEmpresa); } } private void pesquisarContrato(HttpServletRequest httpServletRequest, GerarRelatorioBoletimMedicaoForm form){ FiltroContratoEmpresaServico filtroContratoEmpresaServico = new FiltroContratoEmpresaServico(); filtroContratoEmpresaServico.setConsultaSemLimites(true); filtroContratoEmpresaServico.adicionarParametro( new ParametroSimples(FiltroContratoEmpresaServico.EMPRESA, form.getEmpresa())); filtroContratoEmpresaServico.setCampoOrderBy(FiltroContratoEmpresaServico.DESCRICAO); Collection colecaoContratoEmpresaServico = this.getFachada().pesquisar(filtroContratoEmpresaServico, ContratoEmpresaServico.class.getName()); if (colecaoContratoEmpresaServico == null || colecaoContratoEmpresaServico.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Contrato"); } else { httpServletRequest.setAttribute("colecaoContrato", colecaoContratoEmpresaServico); } } private void pesquisarGerenciaRegional(HttpServletRequest httpServletRequest){ FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.setConsultaSemLimites(true); filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME); filtroGerenciaRegional.adicionarParametro( new ParametroSimples(FiltroQuadra.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoGerenciaRegional = this.getFachada().pesquisar(filtroGerenciaRegional,GerenciaRegional.class.getName()); if (colecaoGerenciaRegional == null || colecaoGerenciaRegional.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Ger�ncia Regional"); } else { httpServletRequest.setAttribute("colecaoGerenciaRegional",colecaoGerenciaRegional); } } private void pesquisarLocalidade( GerarRelatorioBoletimMedicaoForm form, String objetoConsulta) { Object local = form.getLocalidadeInicial(); if(!objetoConsulta.trim().equals("1")){ local = form.getLocalidadeFinal(); } FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID, local)); // Recupera Localidade Collection colecaoLocalidade = this.getFachada().pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) { Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade); if(objetoConsulta.trim().equals("1")){ form.setLocalidadeInicial(localidade.getId().toString()); form.setNomeLocalidadeInicial(localidade.getDescricao()); } form.setLocalidadeFinal(localidade.getId().toString()); form.setNomeLocalidadeFinal(localidade.getDescricao()); } else { if(objetoConsulta.trim().equals("1")){ form.setLocalidadeInicial(null); form.setNomeLocalidadeInicial("Localidade Inicial inexistente"); form.setLocalidadeFinal(null); form.setNomeLocalidadeFinal(null); }else{ form.setLocalidadeFinal(null); form.setNomeLocalidadeFinal("Localidade Final inexistente"); } } } }