package gcom.gui.micromedicao; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.FiltroRateioTipo; import gcom.micromedicao.RateioTipo; import gcom.micromedicao.hidrometro.FiltroHidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; 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; /** * Atualizar Tipo de Rateio * * @author Rafael Santos, Magno Gouveia * @since 12/01/2006, 20/08/2011 */ public class EstabelecerVinculoPopupAction extends GcomAction { private Fachada fachada = Fachada.getInstancia(); @Override public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucessoPopup"); HttpSession sessao = httpServletRequest.getSession(false); EstabelecerVinculoPopupActionForm form = (EstabelecerVinculoPopupActionForm) actionForm; // rateio agua String tipoRateioLigacaoAgua = form.getRateioTipoAgua(); // rateio poco String tipoRateioLigacaoPoco = form.getRateioTipoPoco(); Collection imoveisASerVinculados = null; int contador = 0; Imovel imovel = null; if (sessao.getAttribute("imovelCondominio") != null) { imovel = (Imovel) sessao.getAttribute("imovelCondominio"); HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoAgua = null; HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoPoco = null; // rateio agua if (tipoRateioLigacaoAgua != null && !tipoRateioLigacaoAgua.equals("")) { FiltroRateioTipo filtroRateioTipo = new FiltroRateioTipo(); filtroRateioTipo.adicionarParametro(new ParametroSimples(FiltroRateioTipo.ID, tipoRateioLigacaoAgua)); // Rateio Tipo Agua RateioTipo rateioTipo = (RateioTipo) Util.retonarObjetoDeColecao(fachada.pesquisar(filtroRateioTipo, RateioTipo.class.getName())); FiltroHidrometroInstalacaoHistorico filtroHidrometroInstalacaoHistorico = new FiltroHidrometroInstalacaoHistorico(); filtroHidrometroInstalacaoHistorico.adicionarParametro(new ParametroSimples(FiltroHidrometroInstalacaoHistorico.LIGACAO_AGUA_ID, imovel.getId())); filtroHidrometroInstalacaoHistorico.adicionarParametro(new ParametroNulo(FiltroHidrometroInstalacaoHistorico.DATA_RETIRADA)); Collection colecaoHidrometroInstalacaoHistorico = fachada.pesquisar(filtroHidrometroInstalacaoHistorico, HidrometroInstalacaoHistorico.class.getName()); if (colecaoHidrometroInstalacaoHistorico != null && !colecaoHidrometroInstalacaoHistorico.isEmpty()) { hidrometroInstalacaoHistoricoAgua = (HidrometroInstalacaoHistorico) Util.retonarObjetoDeColecao(colecaoHidrometroInstalacaoHistorico); hidrometroInstalacaoHistoricoAgua.setRateioTipo(rateioTipo); } } imovel.setIndicadorImovelCondominio(Imovel.IMOVEL_CONDOMINIO); // rateio po�o if (tipoRateioLigacaoPoco != null && !tipoRateioLigacaoPoco.equals("")) { FiltroRateioTipo filtroRateioTipo = new FiltroRateioTipo(); filtroRateioTipo.adicionarParametro(new ParametroSimples(FiltroRateioTipo.ID, tipoRateioLigacaoPoco)); // Rateio Tipo Poco RateioTipo rateioTipo = (RateioTipo) Util.retonarObjetoDeColecao(fachada.pesquisar(filtroRateioTipo, RateioTipo.class.getName())); FiltroHidrometroInstalacaoHistorico filtroHidrometroInstalacaoHistorico = new FiltroHidrometroInstalacaoHistorico(); filtroHidrometroInstalacaoHistorico.adicionarParametro(new ParametroSimples(FiltroHidrometroInstalacaoHistorico.IMOVEL_ID, imovel.getId())); filtroHidrometroInstalacaoHistorico.adicionarParametro(new ParametroNulo(FiltroHidrometroInstalacaoHistorico.DATA_RETIRADA)); Collection colecaoHidrometroInstalacaoHistorico = fachada.pesquisar(filtroHidrometroInstalacaoHistorico, HidrometroInstalacaoHistorico.class.getName()); if (colecaoHidrometroInstalacaoHistorico != null && !colecaoHidrometroInstalacaoHistorico.isEmpty()) { hidrometroInstalacaoHistoricoPoco = (HidrometroInstalacaoHistorico) Util.retonarObjetoDeColecao(colecaoHidrometroInstalacaoHistorico); hidrometroInstalacaoHistoricoPoco.setRateioTipo(rateioTipo); } } if (sessao.getAttribute("colecaoImoveisASerVinculados") != null) { imoveisASerVinculados = (Collection) sessao.getAttribute("colecaoImoveisASerVinculados"); if (imoveisASerVinculados != null && !imoveisASerVinculados.isEmpty()) { Iterator iter = imoveisASerVinculados.iterator(); while (iter.hasNext()) { Imovel imovelASerVinculado = (Imovel) iter.next(); if (imovelASerVinculado.getImovelCondominio() == null) { contador++; } imovelASerVinculado.setImovelCondominio(imovel); /* * Caso o tipo de rateio seja alterado de RATEIO POR AREA COMUM para RATEIO * POR IM�VEL Alterar o indicadorImovelAreaComum para NAO (2) */ if (!(hidrometroInstalacaoHistoricoAgua.getRateioTipo() != null && hidrometroInstalacaoHistoricoAgua.getRateioTipo() .getId() .equals(RateioTipo.RATEIO_AREA_COMUM) && imovelASerVinculado.getIndicadorImovelAreaComum() .equals(ConstantesSistema.SIM))) { imovelASerVinculado.setIndicadorImovelAreaComum(ConstantesSistema.NAO); } } } else { throw new ActionServletException("atencao.imovel.adicionar_vinculos"); } } else { throw new ActionServletException("atencao.imovel.adicionar_vinculos"); } Collection imoveisASerDesvinculados = null; if (sessao.getAttribute("colecaoImoveisASerDesvinculados") != null) { imoveisASerDesvinculados = (Collection) sessao.getAttribute("colecaoImoveisASerDesvinculados"); if (imoveisASerDesvinculados != null && !imoveisASerDesvinculados.isEmpty()) { Iterator iter = imoveisASerDesvinculados.iterator(); while (iter.hasNext()) { Imovel imovelASerDesvinculado = (Imovel) iter.next(); imovelASerDesvinculado.setImovelCondominio(null); imovelASerDesvinculado.setIndicadorImovelAreaComum(ConstantesSistema.NAO); } } } /** * alterado por pedro alexandre dia 20/11/2006 Recupera o usu�rio logado para passar no * met�do de estabelecer v�nculo para verificar se o usu�rio tem abrang�ncia para * estabelecer o v�nculo informado. */ Usuario usuarioLogado = (Usuario) sessao.getAttribute(Usuario.USUARIO_LOGADO); // Atualizar Tipo Rateio fachada.estabelecerVinculo(imovel, imoveisASerVinculados, imoveisASerDesvinculados, hidrometroInstalacaoHistoricoAgua, hidrometroInstalacaoHistoricoPoco, usuarioLogado); } httpServletRequest.setAttribute("fechar", "true"); // liberar da sessao if (sessao.getAttribute("imovelCondominio") != null) { sessao.removeAttribute("imovelCondominio"); } if (sessao.getAttribute("colecaoRateioTipo") != null) { sessao.removeAttribute("colecaoRateioTipo"); } if (sessao.getAttribute("colecaoImoveisASerVinculados") != null) { sessao.removeAttribute("colecaoImoveisASerVinculados"); } if (contador != 0) { // Monta a p�gina de sucesso if (retorno.getName().equalsIgnoreCase("telaSucessoPopup")) { montarPaginaSucesso(httpServletRequest, contador + " im�veis vinculados ao im�vel condom�nio " + imovel.getId() + " com sucesso.", "", ""); } } else { if (retorno.getName().equalsIgnoreCase("telaSucessoPopup")) { montarPaginaSucesso(httpServletRequest, "Im�vel(is) j� vinculado(s) ao im�vel condom�nio " + imovel.getId() + ".", "", ""); } } return retorno; } }