package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.ligacaoagua.FiltroDiametroLigacao; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.FiltroMaterialLigacao; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.atendimentopublico.registroatendimento.EspecificacaoImovSitCriterio; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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; /** * Action respons�vel pela pr�-exibi��o da p�gina de Inserir Especifica�ao Situa��o * * @author Rafael Pinto * @created 03/08/2006 */ public class ExibirInserirEspecificacaoSituacaoImovelAction extends GcomAction { /** * Exibi��o de inser��o de equipe. * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return ActionForward */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta Retorno (Forward = Exibi��o da Tela de Inser��o) ActionForward retorno = actionMapping.findForward("inserirEspecificacaoSituacaoImovel"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); // Form InserirEspecificacaoSituacaoImovelActionForm inserirEspecificacaoSituacaoImovelActionForm = (InserirEspecificacaoSituacaoImovelActionForm) actionForm; // Testa se � pra remover especifica��o situacao criterio imovel if (inserirEspecificacaoSituacaoImovelActionForm.getDeleteSituacaoCriterioImovel() != null && !inserirEspecificacaoSituacaoImovelActionForm.getDeleteSituacaoCriterioImovel().equals("")) { removeSituacaoCriterioImovel(inserirEspecificacaoSituacaoImovelActionForm); } else if(!inserirEspecificacaoSituacaoImovelActionForm.getMethod().equals("")){ retorno = actionMapping.findForward("inserirEspecificacaoSituacaoCriterioImovel"); this.consultaSelectObrigatorio(sessao); if ((inserirEspecificacaoSituacaoImovelActionForm.getSituacaoLigacaoAgua() != null && !inserirEspecificacaoSituacaoImovelActionForm.getSituacaoLigacaoAgua().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) || (inserirEspecificacaoSituacaoImovelActionForm.getSituacaoLigacaoEsgoto() != null && !inserirEspecificacaoSituacaoImovelActionForm.getSituacaoLigacaoEsgoto().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) || (inserirEspecificacaoSituacaoImovelActionForm.getIndicadorHidrometroLigacaoAgua() != null && !inserirEspecificacaoSituacaoImovelActionForm.getIndicadorHidrometroLigacaoAgua().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) || (inserirEspecificacaoSituacaoImovelActionForm.getIndicadorHidrometroPoco() != null && !inserirEspecificacaoSituacaoImovelActionForm.getIndicadorHidrometroPoco().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) ){ // Cria objeto EspecificacaoImovSitCriterio EspecificacaoImovSitCriterio especificacaoImovSitCriterio = null; // Recupera especificao imovel sit criterio vindo do popup especificacaoImovSitCriterio = getEspecificacaoImovSitCriterio(inserirEspecificacaoSituacaoImovelActionForm,sessao); // Reseta informa��es vindas do popup resetPopup(inserirEspecificacaoSituacaoImovelActionForm); // Faz as valida��es de inser��o de especificao situacao imovel fachada.validarExibirInsercaoEspecificacaoImovSitCriterio( inserirEspecificacaoSituacaoImovelActionForm.getEspecificacaoImovelSituacaoCriterio(), especificacaoImovSitCriterio); // Seta componente na cole��o setColecaoEspecificacaoImovSitCriterio(inserirEspecificacaoSituacaoImovelActionForm, especificacaoImovSitCriterio); // Seta retorno retorno = actionMapping.findForward("inserirEspecificacaoSituacaoImovel"); } inserirEspecificacaoSituacaoImovelActionForm.setMethod(""); } return retorno; } /** * Seta nova EspecificacaoImovSitCriterio na Cole��o * * @author Rafael Pinto * @date 03/08/2006 * * @param inserirEquipeActionForm * @param especificacaoImovSitCriterio */ private void setColecaoEspecificacaoImovSitCriterio(InserirEspecificacaoSituacaoImovelActionForm inserirEspecificacaoSituacaoImovelActionForm, EspecificacaoImovSitCriterio especificacaoImovSitCriterio) { inserirEspecificacaoSituacaoImovelActionForm.getEspecificacaoImovelSituacaoCriterio().add(especificacaoImovSitCriterio); inserirEspecificacaoSituacaoImovelActionForm.setTamanhoColecao( inserirEspecificacaoSituacaoImovelActionForm.getEspecificacaoImovelSituacaoCriterio().size()+""); } /** * Recupera objeto Especificacao Imovel Situacao Criterio com informa��es vindas da tela * * @author Rafael Pinto * @date 04/08/2006 * * @param InserirEspecificacaoSituacaoImovelActionForm */ private EspecificacaoImovSitCriterio getEspecificacaoImovSitCriterio( InserirEspecificacaoSituacaoImovelActionForm inserirActionForm,HttpSession sessao) { EspecificacaoImovSitCriterio especificacaoImovSitCriterio = new EspecificacaoImovSitCriterio(); if(inserirActionForm.getIndicadorHidrometroLigacaoAgua() != null && !inserirActionForm.getIndicadorHidrometroLigacaoAgua().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ especificacaoImovSitCriterio.setIndicadorHidrometroLigacaoAgua( new Short(inserirActionForm.getIndicadorHidrometroLigacaoAgua())); } if(inserirActionForm.getIndicadorHidrometroPoco() != null && !inserirActionForm.getIndicadorHidrometroPoco().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ especificacaoImovSitCriterio.setIndicadorHidrometroPoco( new Short(inserirActionForm.getIndicadorHidrometroPoco())); } especificacaoImovSitCriterio.setUltimaAlteracao(new Date()); if(inserirActionForm.getSituacaoLigacaoAgua() != null && !inserirActionForm.getSituacaoLigacaoAgua().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ Integer idSituacaoLigacaoAgua = new Integer(inserirActionForm.getSituacaoLigacaoAgua()); LigacaoAguaSituacao ligacaoAguaSituacao = this.retornaLigacaoAguaSituacao(sessao,idSituacaoLigacaoAgua); especificacaoImovSitCriterio.setLigacaoAguaSituacao(ligacaoAguaSituacao); } if(inserirActionForm.getSituacaoLigacaoEsgoto() != null && !inserirActionForm.getSituacaoLigacaoEsgoto().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ Integer idSituacaoLigacaoEsgoto = new Integer(inserirActionForm.getSituacaoLigacaoEsgoto()); LigacaoEsgotoSituacao ligacaoEsgotoSituacao = this.retornaLigacaoEsgotoSituacao(sessao,idSituacaoLigacaoEsgoto); especificacaoImovSitCriterio.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); } return especificacaoImovSitCriterio; } //retorna LigacaoAguaSituacao pelo id na colecao de ligacaoAguaSituacao private LigacaoAguaSituacao retornaLigacaoAguaSituacao(HttpSession sessao,Integer id){ LigacaoAguaSituacao retorno = null; Collection colecao = (Collection) sessao.getAttribute("colecaoSituacaoLigacaoAgua"); if(colecao != null && !colecao.isEmpty()){ Iterator itera = colecao.iterator(); while (itera.hasNext()) { LigacaoAguaSituacao ligacaoAguaSituacao = (LigacaoAguaSituacao) itera.next(); if(ligacaoAguaSituacao.getId().intValue() == id.intValue()){ retorno = ligacaoAguaSituacao; break; } } } return retorno; } //retorna LigacaoEsgotoSituacao pelo id na colecao de ligacaoEsgotoSituacao private LigacaoEsgotoSituacao retornaLigacaoEsgotoSituacao(HttpSession sessao,Integer id){ LigacaoEsgotoSituacao retorno = null; Collection colecao = (Collection) sessao.getAttribute("colecaoSituacaoLigacaoEsgoto"); if(colecao != null && !colecao.isEmpty()){ Iterator itera = colecao.iterator(); while (itera.hasNext()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) itera.next(); if(ligacaoEsgotoSituacao.getId().intValue() == id.intValue()){ retorno = ligacaoEsgotoSituacao; break; } } } return retorno; } /** * Reseta informa��es vindas do popup * * @author Rafael Pinto * @date 03/08/2006 * * @param inserirEspecificacaoSituacaoImovelActionForm */ private void resetPopup(InserirEspecificacaoSituacaoImovelActionForm inserirEspecificacaoSituacaoImovelActionForm) { inserirEspecificacaoSituacaoImovelActionForm.setIndicadorHidrometroLigacaoAgua(null); inserirEspecificacaoSituacaoImovelActionForm.setIndicadorHidrometroPoco(null); inserirEspecificacaoSituacaoImovelActionForm.setSituacaoLigacaoAgua(null); inserirEspecificacaoSituacaoImovelActionForm.setSituacaoLigacaoEsgoto(null); } /** * Remove Situacao Criterio Imovel da Cole��o * * @author Rafael Pinto * @date 03/08/2006 * * @param InserirEspecificacaoSituacaoImovelActionForm */ private void removeSituacaoCriterioImovel(InserirEspecificacaoSituacaoImovelActionForm inserirEspecificacaoSituacaoImovelActionForm) { Collection newSituacaoCriterioImovelCollection = new ArrayList(); int index = 0; for (Iterator iter = inserirEspecificacaoSituacaoImovelActionForm.getEspecificacaoImovelSituacaoCriterio().iterator(); iter.hasNext();) { index++; EspecificacaoImovSitCriterio element = (EspecificacaoImovSitCriterio) iter.next(); if (index != new Integer(inserirEspecificacaoSituacaoImovelActionForm.getDeleteSituacaoCriterioImovel()).intValue()) { newSituacaoCriterioImovelCollection.add(element); } } inserirEspecificacaoSituacaoImovelActionForm.setEspecificacaoImovelSituacaoCriterio(newSituacaoCriterioImovelCollection); inserirEspecificacaoSituacaoImovelActionForm.setTamanhoColecao(inserirEspecificacaoSituacaoImovelActionForm.getEspecificacaoImovelSituacaoCriterio().size()+""); inserirEspecificacaoSituacaoImovelActionForm.setDeleteSituacaoCriterioImovel(""); resetPopup(inserirEspecificacaoSituacaoImovelActionForm); } private void consultaSelectObrigatorio(HttpSession sessao){ Fachada fachada = Fachada.getInstancia(); // Filtro para o campo Situa��o Liga��o �gua Collection colecaoSituacaoLigacaoAgua = (Collection) sessao.getAttribute("colecaoSituacaoLigacaoAgua"); if(colecaoSituacaoLigacaoAgua == null){ FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao(); filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples( FiltroLigacaoAguaSituacao.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroDiametroLigacao.DESCRICAO); colecaoSituacaoLigacaoAgua = fachada.pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName()); if (colecaoSituacaoLigacaoAgua != null && !colecaoSituacaoLigacaoAgua.isEmpty()) { sessao.setAttribute("colecaoSituacaoLigacaoAgua",colecaoSituacaoLigacaoAgua); } else { throw new ActionServletException("atencao.naocadastrado",null, "Situa��o Liga��o de Agua"); } } // Filtro para o campo Situacao da Liga��o Esgoto Collection colecaoSituacaoLigacaoEsgoto = (Collection) sessao.getAttribute("colecaoSituacaoLigacaoEsgoto"); if(colecaoSituacaoLigacaoEsgoto == null){ FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao(); filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples( FiltroLigacaoEsgotoSituacao.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO)); filtroLigacaoEsgotoSituacao.setCampoOrderBy(FiltroMaterialLigacao.DESCRICAO); colecaoSituacaoLigacaoEsgoto = fachada.pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName()); if (colecaoSituacaoLigacaoEsgoto != null && !colecaoSituacaoLigacaoEsgoto.isEmpty()) { sessao.setAttribute("colecaoSituacaoLigacaoEsgoto",colecaoSituacaoLigacaoEsgoto); } else { throw new ActionServletException("atencao.naocadastrado",null, "Situa��o Liga��o de Esgoto"); } } } }