package gcom.gui.operacional.abastecimento; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.geografico.BairroArea; import gcom.cadastro.geografico.FiltroBairro; import gcom.cadastro.geografico.FiltroBairroArea; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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; /** * [UC0414] - Informar Programa��o de Abastecimento e Manuten��o * * @author Rafael Pinto * @date 14/11/2006 */ public class FiltrarProgramacaoAbastecimentoManutencaoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirInformarProgramacaoAbastecimentoManutencaoAction"); FiltrarProgramacaoAbastecimentoManutencaoActionForm form = (FiltrarProgramacaoAbastecimentoManutencaoActionForm) actionForm; String mesAnoReferencia = form.getMesAnoReferencia(); String idMunicipio = form.getMunicipio(); this.pesquisarMunicipio(new Integer(idMunicipio),httpServletRequest); String idBairro = ""; String areaBairro = ""; if ( form.getBairro() != null && !form.getBairro().equals("") ) { idBairro = form.getBairro(); this.pesquisarBairro(new Integer(idMunicipio),new Integer(idBairro),httpServletRequest); areaBairro = form.getAreaBairro(); this.pesquisarAreaBairro(new Integer(areaBairro),httpServletRequest); } this.getSessao(httpServletRequest).setAttribute("mesAnoReferencia",mesAnoReferencia); Collection colecaoProgramacaoAbastecimento = this.getFachada().consultarProgramacaoAbastecimento(idMunicipio, idBairro,areaBairro, mesAnoReferencia); Collection colecaoProgramacaoManutencao = this.getFachada().consultarProgramacaoManutencao(idMunicipio, idBairro,areaBairro, mesAnoReferencia); this.getSessao(httpServletRequest).setAttribute("colecaoProgramacaoAbastecimento", colecaoProgramacaoAbastecimento); this.getSessao(httpServletRequest).setAttribute("colecaoProgramacaoManutencao", colecaoProgramacaoManutencao); this.getSessao(httpServletRequest).setAttribute("ultimaAlteracao", new Date()); return retorno; } /** * [UC0075] - Pesquisar Municipio * * [FS0001] - Verificar exist�ncia do munic�pio * * @author Rafael Pinto * @date 13/11/2006 */ private void pesquisarMunicipio(Integer idMunicipio,HttpServletRequest httpServletRequest) { FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro( new ParametroSimples(FiltroMunicipio.ID,idMunicipio)); filtroMunicipio.adicionarParametro( new ParametroSimples(FiltroMunicipio.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoMunicipio = this.getFachada().pesquisar(filtroMunicipio,Municipio.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoMunicipio != null && !colecaoMunicipio.isEmpty()) { // Obt�m o objeto da cole��o pesquisada Municipio municipio = (Municipio) Util.retonarObjetoDeColecao(colecaoMunicipio); this.getSessao(httpServletRequest).setAttribute("municipio",municipio); } else { throw new ActionServletException("atencao.naocadastrado", null,"Munic�pio"); } } /** * [UC0075] - Pesquisar Bairro * * [FS0002] - Verificar informa��o do municipio * [FS0003] - Verificar exist�ncia do bairro * * @author Rafael Pinto * @date 13/11/2006 */ private void pesquisarBairro(Integer idMunicipio,Integer idBairro,HttpServletRequest httpServletRequest) { //[FS0002] - Verificar informa��o do municipio if(idMunicipio == null || idMunicipio.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ throw new ActionServletException("atencao.filtrar_informar_municipio"); } FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.adicionarParametro( new ParametroSimples(FiltroBairro.CODIGO,idBairro)); filtroBairro.adicionarParametro( new ParametroSimples(FiltroBairro.MUNICIPIO_ID,idMunicipio)); filtroBairro.adicionarParametro( new ParametroSimples(FiltroBairro.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoBairro = this.getFachada().pesquisar(filtroBairro,Bairro.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoBairro != null && !colecaoBairro.isEmpty()) { // Obt�m o objeto da cole��o pesquisada Bairro bairro = (Bairro) Util.retonarObjetoDeColecao(colecaoBairro); this.getSessao(httpServletRequest).setAttribute("bairro",bairro); } else { throw new ActionServletException("atencao.naocadastrado", null,"Bairro"); } } /** * Pesquisa Area do Bairro pelo Id * * @author Rafael Pinto * @date 13/11/2006 */ private void pesquisarAreaBairro(Integer idArea,HttpServletRequest httpServletRequest){ // Parte que passa as cole��es necess�rias no jsp Collection colecaoAreaBairro = new ArrayList(); FiltroBairroArea filtroBairroArea = new FiltroBairroArea(); filtroBairroArea.adicionarParametro(new ParametroSimples(FiltroBairroArea.ID,idArea)); filtroBairroArea.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional"); filtroBairroArea.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.zonaAbastecimento"); filtroBairroArea.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.setorAbastecimento"); filtroBairroArea.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.setorAbastecimento.sistemaAbastecimento"); colecaoAreaBairro = this.getFachada().pesquisar(filtroBairroArea, BairroArea.class.getName()); if (colecaoAreaBairro != null && !colecaoAreaBairro.isEmpty()) { BairroArea bairroArea = (BairroArea) Util.retonarObjetoDeColecao(colecaoAreaBairro); this.getSessao(httpServletRequest).setAttribute("bairroArea",bairroArea); } else { throw new ActionServletException("atencao.naocadastrado", null,"�rea do Bairro"); } } }