package gcom.gui.micromedicao; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import java.util.Collection; 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; /** * Atualizar Tipo de Rateio * * @author Rafael Santos, Magno Gouveia * @since 12/01/2006, 20/08/2011 */ public class DesfazerVinculoPopupAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucessoPopup"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); DesfazerVinculoPopupActionForm form = (DesfazerVinculoPopupActionForm) actionForm; String[] ids = form.getIdImovel(); Imovel imovelCondominio = null; if(sessao.getAttribute("imovelCondominio") != null){ imovelCondominio = (Imovel) sessao.getAttribute("imovelCondominio") ; } boolean desvincular = false; if(ids.length == ((Collection) sessao.getAttribute("colecaoImoveisVinculados")).size()){ desvincular = true; } else { /* * SB0003 - FS 4. Caso a op��o de desvincular n�o seja TODOS, o * sistema verifica se o im�vel com indicador de �rea comum foi * selecionado, [FS0015 - Pesquisar Im�vel �rea Comum] */ Integer idImovelAreaComum = fachada.pesquisarImovelAreaComum(imovelCondominio.getId()); if (idImovelAreaComum != null) { for (String idImovelParaRemover : ids) { if (Integer.parseInt(idImovelParaRemover.trim()) == idImovelAreaComum.intValue()) { throw new ActionServletException("atencao.imovel_selecionado_corresponde_area_comum", idImovelParaRemover); } } } } /** alterado por pedro alexandre dia 20/11/2006 * Recupera o usu�rio logado para passar no met�do de desfazer v�nculo * para verificar se o usu�rio tem abrang�ncia para desfazer o v�nculo do im�vel * informado. */ Usuario usuarioLogado = (Usuario) sessao.getAttribute(Usuario.USUARIO_LOGADO); fachada.desfazerVinculo(imovelCondominio, ids, desvincular, usuarioLogado); //remove da sessao if(sessao.getAttribute("colecaoImoveisVinculados") != null){ sessao.removeAttribute("colecaoImoveisVinculados"); } if(sessao.getAttribute("imovelCondominio") != null){ sessao.removeAttribute("imovelCondominio") ; } //Monta a p�gina de sucesso if (retorno.getName().equalsIgnoreCase("telaSucessoPopup")) { montarPaginaSucesso(httpServletRequest, ids.length + " im�vel(is) desvinculado(s) do im�vel condom�nio " + imovelCondominio.getId()+" com sucesso." , "", ""); } return retorno; } }