package gcom.gui.cadastro.geografico; import gcom.cadastro.geografico.BairroArea; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.operacional.DistritoOperacional; import gcom.operacional.FiltroDistritoOperacional; import gcom.util.ConstantesSistema; import gcom.util.Util; 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; /** * * @author Vivianne Sousa * @date 20/12/2006 */ public class InserirAreaBairroPopupAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping .findForward("inserirAreaBairroPopupAction"); Fachada fachada = Fachada.getInstancia(); AdicionarAreaBairroActionForm adicionarAreaBairroActionForm = (AdicionarAreaBairroActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); BairroArea bairroAreaInserir = new BairroArea(); String areaBairroNome = adicionarAreaBairroActionForm .getAreaBairroNome(); String distritoOperacionalID = adicionarAreaBairroActionForm .getDistritoOperacionalID(); Collection<BairroArea> colecaoBairroArea = null; DistritoOperacional distritoOperacional = null; if (sessao.getAttribute("colecaoBairroArea") != null && !sessao.getAttribute("colecaoBairroArea").equals("")) { colecaoBairroArea = (Collection) sessao .getAttribute("colecaoBairroArea"); } else { colecaoBairroArea = new ArrayList<BairroArea>(); } if (areaBairroNome == null || areaBairroNome.equals("")) { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Nome da �rea de Bairro"); } // Alteracao Solicitada por Ana Breda Data:22/02/2007 // Distrito Operacional n�o � mais obrigat�rio /* * if(distritoOperacionalID == null || * distritoOperacionalID.equals("")){ throw new * ActionServletException("atencao.campo_selecionado.obrigatorio",null,"Distrito * Operacional"); } */ BairroArea bairroAreaAtualizar = null; if (sessao.getAttribute("atualizar") != null) { // remove area bairro e depois insere a area bairro alterada String ultimaAlteracao = (String) sessao.getAttribute("atualizar"); Iterator iter = colecaoBairroArea.iterator(); while (iter.hasNext()) { BairroArea bairroArea = (BairroArea) iter.next(); if (bairroArea.getUltimaAlteracao().getTime() == Long .parseLong(ultimaAlteracao)) { bairroAreaAtualizar = bairroArea; } } } // Alteracao Solicitada por Ana Breda Data:22/02/2007 // Distrito Operacional n�o � mais obrigat�rio if (distritoOperacionalID != null && !distritoOperacionalID.equalsIgnoreCase("-1")) { // [FS0006] Verificar exist�ncia do distrito operacional FiltroDistritoOperacional filtroDistritoOperacional = new FiltroDistritoOperacional(); filtroDistritoOperacional.adicionarParametro(new ParametroSimples( FiltroDistritoOperacional.ID, distritoOperacionalID)); filtroDistritoOperacional.adicionarParametro(new ParametroSimples( FiltroDistritoOperacional.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Retorna Distrito Operacional Collection colecaoPesquisa = fachada.pesquisar( filtroDistritoOperacional, DistritoOperacional.class .getName()); if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) { distritoOperacional = (DistritoOperacional) Util .retonarObjetoDeColecao(colecaoPesquisa); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Distrito Operacional"); } } if (bairroAreaAtualizar != null) { // [FS0007] Verificar exist�ncia da �rea de bairro if (colecaoBairroArea != null && !colecaoBairroArea.isEmpty()) { Iterator iteratorBairroArea = colecaoBairroArea.iterator(); while (iteratorBairroArea.hasNext()) { BairroArea bairroArea = (BairroArea) iteratorBairroArea .next(); if (bairroArea.getNome().trim().equals( areaBairroNome.trim()) && !bairroArea.getNome().trim().equals( bairroAreaAtualizar.getNome().trim())) { throw new ActionServletException( "atencao.area_bairro_ja_informada", null, bairroArea.getNome().trim()); } } } bairroAreaAtualizar.setNome(areaBairroNome.toUpperCase()); bairroAreaAtualizar.setDistritoOperacional(distritoOperacional); } else { // [FS0007] Verificar exist�ncia da �rea de bairro if (colecaoBairroArea != null && !colecaoBairroArea.isEmpty()) { Iterator iteratorBairroArea = colecaoBairroArea.iterator(); while (iteratorBairroArea.hasNext()) { BairroArea bairroArea = (BairroArea) iteratorBairroArea .next(); if (bairroArea.getNome().trim().equals( areaBairroNome.trim())) { throw new ActionServletException( "atencao.area_bairro_ja_informada", null, bairroArea.getNome().trim()); } } } bairroAreaInserir.setNome(areaBairroNome.toUpperCase()); bairroAreaInserir.setDistritoOperacional(distritoOperacional); bairroAreaInserir.setUltimaAlteracao(new Date()); colecaoBairroArea.add(bairroAreaInserir); } sessao.setAttribute("colecaoBairroArea", colecaoBairroArea); httpServletRequest.setAttribute("fechaPopup", "true"); return retorno; } }