package gcom.gui.relatorio.micromedicao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoGrupo; import gcom.faturamento.FiltroFaturamentoGrupo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.micromedicao.DadosLeiturista; import gcom.micromedicao.FiltroLeiturista; import gcom.micromedicao.Leiturista; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * [UC1180] Gerar Relat�rio de Im�veis Com Leituras * * @author Magno Gouveia * @date 03/06/2011 */ public class ExibirGerarRelatorioImoveisComLeiturasAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("exibirGerarRelatorioImoveisComLeituras"); GerarRelatorioImoveisComLeiturasActionForm form = (GerarRelatorioImoveisComLeiturasActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); // Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter String objetoConsulta = httpServletRequest.getParameter("objetoConsulta"); if (Util.verificarNaoVazio(objetoConsulta)){ // Faz a consulta de Localidade: 1 - Inicial || 3 - Final if(objetoConsulta.trim().equals("1") || objetoConsulta.trim().equals("3")) { this.pesquisarLocalidade(form, objetoConsulta); } // Faz a consulta de Setor Comercial: 2 - Inicial || 4 - Final if(objetoConsulta.trim().equals("2") || objetoConsulta.trim().equals("4")){ this.pesquisarSetorComercial(form, objetoConsulta); } } FiltroFaturamentoGrupo filtroFaturamentroGrupo = new FiltroFaturamentoGrupo(FiltroFaturamentoGrupo.ID); filtroFaturamentroGrupo.adicionarParametro(new ParametroSimples(FiltroFaturamentoGrupo.INDICADOR_USO, ConstantesSistema.SIM)); Collection colecaoFaturamentoGrupo = fachada.pesquisar(filtroFaturamentroGrupo, FaturamentoGrupo.class.getName()); if(colecaoFaturamentoGrupo != null && !colecaoFaturamentoGrupo.isEmpty()){ sessao.setAttribute("colecaoFaturamentoGrupo", colecaoFaturamentoGrupo); } else { throw new ActionServletException("atencao.naocadastrado", null, "Grupo de Faturamento"); } FiltroEmpresa filtroEmpresa = new FiltroEmpresa(FiltroEmpresa.DESCRICAO); filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.INDICADOR_LEITURA, ConstantesSistema.SIM)); filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.INDICADORUSO, ConstantesSistema.SIM)); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if(colecaoEmpresa != null && !colecaoEmpresa.isEmpty()){ sessao.setAttribute("colecaoEmpresa", colecaoEmpresa); } else { throw new ActionServletException("atencao.naocadastrado", null, "Empresa"); } FiltroLeiturista filtroLeiturista = new FiltroLeiturista(); filtroLeiturista.adicionarParametro(new ParametroSimples(FiltroLeiturista.INDICADOR_USO, ConstantesSistema.SIM)); if(Util.verificarIdNaoVazio(form.getEmpresa())){ filtroLeiturista.adicionarParametro(new ParametroSimples(FiltroLeiturista.EMPRESA_ID, form.getEmpresa())); } filtroLeiturista.adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.FUNCIONARIO); filtroLeiturista.adicionarCaminhoParaCarregamentoEntidade(FiltroLeiturista.CLIENTE); filtroLeiturista.setCampoOrderBy(FiltroLeiturista.FUNCIONARIO_NOME, FiltroLeiturista.CLIENTE_NOME); Collection colecaoLeituristaAuxiliar = fachada.pesquisar(filtroLeiturista, Leiturista.class.getName()); ArrayList<DadosLeiturista> colecaoLeiturista = new ArrayList<DadosLeiturista>(); if (colecaoLeituristaAuxiliar != null && !colecaoLeituristaAuxiliar.isEmpty()) { Iterator it = colecaoLeituristaAuxiliar.iterator(); Leiturista leiturista = null; String nomeLeiturista = null; while (it.hasNext()) { leiturista = (Leiturista) it.next(); if (leiturista.getCliente() != null) { nomeLeiturista = leiturista.getCliente().getNome(); } else { nomeLeiturista = leiturista.getFuncionario().getNome(); } colecaoLeiturista.add(new DadosLeiturista(leiturista.getId(), nomeLeiturista)); } } sessao.setAttribute("colecaoLeiturista", colecaoLeiturista); // Seta os request�s encontrados this.setaRequest(httpServletRequest, form); return retorno; } /** * Pesquisa Localidade * * @author Rafael Pinto * @date 02/01/2008 */ private void pesquisarLocalidade(GerarRelatorioImoveisComLeiturasActionForm 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"); } } } /** * Pesquisa Setor comercial * * @author Rafael Pinto * @date 02/01/2008 */ private void pesquisarSetorComercial(GerarRelatorioImoveisComLeiturasActionForm form, String objetoConsulta) { Object local = form.getLocalidadeInicial(); Object setor = form.getSetorComercialInicial(); if (!objetoConsulta.trim().equals("2")) { local = form.getLocalidadeFinal(); setor = form.getSetorComercialFinal(); } FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setor)); filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.LOCALIDADE, local)); Collection colecaoSetorComercial = this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoSetorComercial != null && !colecaoSetorComercial.isEmpty()) { SetorComercial setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercial); if (objetoConsulta.trim().equals("2")) { form.setSetorComercialInicial("" + setorComercial.getCodigo()); form.setNomeSetorComercialInicial(setorComercial.getDescricao()); } form.setSetorComercialFinal("" + setorComercial.getCodigo()); form.setNomeSetorComercialFinal(setorComercial.getDescricao()); } else { if (objetoConsulta.trim().equals("2")) { form.setSetorComercialInicial(null); form.setNomeSetorComercialInicial("Setor Comercial Inicial inexistente"); form.setSetorComercialFinal(null); form.setNomeSetorComercialFinal(null); } else { form.setSetorComercialFinal(null); form.setNomeSetorComercialFinal("Setor Comercial Final inexistente"); } } } /** * Seta os request com os id encontrados * * @author Rafael Pinto * @date 02/01/2008 */ private void setaRequest(HttpServletRequest httpServletRequest, GerarRelatorioImoveisComLeiturasActionForm form) { // Localidade Inicial if (Util.verificarNaoVazio(form.getLocalidadeInicial()) && Util.verificarNaoVazio(form.getNomeLocalidadeInicial())) { 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); } } // Setor Comercial Inicial if (Util.verificarNaoVazio(form.getSetorComercialInicial()) && Util.verificarNaoVazio(form.getNomeSetorComercialInicial())) { httpServletRequest.setAttribute("setorComercialInicialEncontrado", true); httpServletRequest.setAttribute("setorComercialFinalEncontrado", true); } else if (Util.verificarNaoVazio(form.getSetorComercialFinal()) && Util.verificarNaoVazio(form.getNomeSetorComercialFinal())) { httpServletRequest.setAttribute("setorComercialFinalEncontrado", true); } } }