package gcom.gui.faturamento; import gcom.arrecadacao.ContratoDemanda; import gcom.arrecadacao.ContratoMotivoCancelamento; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.faturamento.FiltroContratoDemanda; import gcom.faturamento.FiltroContratoMotivoCancelamento; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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; /** * Permite atualizar um contrato de demanda [UC0513] Manter Contrato de Demanda * * @author Rafael Corr�a * @since 31/03/2006 */ public class ExibirAtualizarContratoDemandaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirAtualizarContratoDemanda"); AtualizarContratoDemandaActionForm atualizarContratoDemandaActionForm = (AtualizarContratoDemandaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); FiltroContratoMotivoCancelamento filtroContratoMotivoCancelamento = new FiltroContratoMotivoCancelamento( FiltroContratoMotivoCancelamento.DESCRICAO); Collection colecaoMotivoCancelamento = fachada.pesquisar( filtroContratoMotivoCancelamento, ContratoMotivoCancelamento.class.getName()); sessao.setAttribute("colecaoMotivoCancelamento", colecaoMotivoCancelamento); // Recupera os valores da unidade do form String idImovel = atualizarContratoDemandaActionForm.getIdImovel(); String inscricaoImovel = atualizarContratoDemandaActionForm .getInscricaoImovel(); // Verifica se o usu�rio solicitou a pesquisa de unidade if (idImovel != null && !idImovel.trim().equals("") && (inscricaoImovel == null || inscricaoImovel.trim() .equals(""))) { Imovel imovel = fachada.pesquisarImovelDigitado(new Integer( idImovel)); if (imovel != null) { atualizarContratoDemandaActionForm.setInscricaoImovel(imovel .getInscricaoFormatada()); httpServletRequest.setAttribute("nomeCampo", "dataInicioContrato"); } else { atualizarContratoDemandaActionForm .setInscricaoImovel("IM�VEL INEXISTENTE"); atualizarContratoDemandaActionForm.setIdImovel(""); httpServletRequest.setAttribute("existeImovel", "exception"); httpServletRequest.setAttribute("nomeCampo", "idImovel"); } } else if (inscricaoImovel != null && !inscricaoImovel.trim().equals("") && (idImovel == null || idImovel.trim().equals(""))) { atualizarContratoDemandaActionForm.setInscricaoImovel(""); } // Verifica se o usu�rio est� entrando pela primeira vez na tela ou se // ele selecionou a op��o de desfazer if (sessao.getAttribute("contratoDemandaAtualizar") == null || httpServletRequest.getParameter("desfazer") != null) { ContratoDemanda contratoDemanda = null; if (httpServletRequest.getParameter("desfazer") != null) { String idContratoDemanda = ((ContratoDemanda) sessao .getAttribute("contratoDemandaAtualizar")).getId() .toString(); FiltroContratoDemanda filtroContratoDemanda = new FiltroContratoDemanda(); filtroContratoDemanda.adicionarParametro(new ParametroSimples( FiltroContratoDemanda.ID, idContratoDemanda)); filtroContratoDemanda .adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial"); filtroContratoDemanda .adicionarCaminhoParaCarregamentoEntidade("imovel.quadra"); filtroContratoDemanda .adicionarCaminhoParaCarregamentoEntidade("contratoMotivoCancelamento"); Collection colecaoContratoDemanda = fachada.pesquisar( filtroContratoDemanda, ContratoDemanda.class.getName()); if (colecaoContratoDemanda == null || colecaoContratoDemanda.isEmpty()) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } contratoDemanda = (ContratoDemanda) Util .retonarObjetoDeColecao(colecaoContratoDemanda); sessao .setAttribute("contratoDemandaAtualizar", contratoDemanda); } else { if (sessao.getAttribute("contratoDemanda") != null) { contratoDemanda = (ContratoDemanda) sessao .getAttribute("contratoDemanda"); sessao.setAttribute("contratoDemandaAtualizar", contratoDemanda); sessao.removeAttribute("contratoDemanda"); sessao.setAttribute("filtrar", true); } else { String idContratoDemanda = httpServletRequest .getParameter("contratoDemandaID"); if (httpServletRequest.getParameter("inserir") != null) { sessao.setAttribute("inserir", true); } else { sessao.removeAttribute("filtrar"); sessao.removeAttribute("inserir"); } FiltroContratoDemanda filtroContratoDemanda = new FiltroContratoDemanda(); filtroContratoDemanda .adicionarParametro(new ParametroSimples( FiltroContratoDemanda.ID, idContratoDemanda)); filtroContratoDemanda .adicionarCaminhoParaCarregamentoEntidade("imovel.setorComercial"); filtroContratoDemanda .adicionarCaminhoParaCarregamentoEntidade("imovel.quadra"); filtroContratoDemanda .adicionarCaminhoParaCarregamentoEntidade("contratoMotivoCancelamento"); Collection colecaoContratoDemanda = fachada.pesquisar( filtroContratoDemanda, ContratoDemanda.class .getName()); if (colecaoContratoDemanda == null || colecaoContratoDemanda.isEmpty()) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } contratoDemanda = (ContratoDemanda) Util .retonarObjetoDeColecao(colecaoContratoDemanda); sessao.setAttribute("contratoDemandaAtualizar", contratoDemanda); } } atualizarContratoDemandaActionForm .setNumeroContrato(contratoDemanda.getNumeroContrato()); atualizarContratoDemandaActionForm.setIdImovel(contratoDemanda .getImovel().getId().toString()); atualizarContratoDemandaActionForm .setInscricaoImovel(contratoDemanda.getImovel() .getInscricaoFormatada()); atualizarContratoDemandaActionForm.setDataInicioContrato(Util .formatarData(contratoDemanda.getDataContratoInicio())); atualizarContratoDemandaActionForm.setDataFimContrato(Util .formatarData(contratoDemanda.getDataContratoFim())); if (contratoDemanda.getDataContratoEncerrado() != null) { atualizarContratoDemandaActionForm.setDataEncerramento(Util .formatarData(contratoDemanda .getDataContratoEncerrado())); } else { atualizarContratoDemandaActionForm.setDataEncerramento(""); } if (contratoDemanda.getContratoMotivoCancelamento() != null) { atualizarContratoDemandaActionForm .setIdMotivoCancelamento(contratoDemanda .getContratoMotivoCancelamento().getId() .toString()); } else { atualizarContratoDemandaActionForm.setIdMotivoCancelamento("" + ConstantesSistema.NUMERO_NAO_INFORMADO); } httpServletRequest.setAttribute("nomeCampo", "numeroContrato"); } return retorno; } }