package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteImovelFimRelacaoMotivo; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; 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; /** * Description of the Class * * @author Rafael Santos * @since 17/04/2006 */ public class ManterImovelFimRelacaoClienteImovelAction 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) { // Prepara o retorno da A��o ActionForward retorno = actionMapping .findForward("atualizarImovelCliente"); // Cria a sess�o HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); FimRelacaoClienteImovelActionForm fimRelacaoClienteImovelActionForm = (FimRelacaoClienteImovelActionForm) actionForm; Collection colecaoClientesImoveisFimRelacao = (Collection) sessao .getAttribute("colecaoClientesImoveisFimRelacao"); Collection colecaoClientesImoveisRemovidos = (Collection) sessao.getAttribute("colecaoClientesImoveisRemovidos"); Collection imovelClientesNovos = (Collection) sessao .getAttribute("imovelClientesNovos"); // verifica se tem algum cliente imovel que precisa ser // atualizado com a data de termino da // rela��o e o motivo. if (colecaoClientesImoveisFimRelacao != null && !colecaoClientesImoveisFimRelacao.isEmpty()) { Iterator clienteImovelIterator = colecaoClientesImoveisFimRelacao .iterator(); String idMotivoFimRelacao = fimRelacaoClienteImovelActionForm .getIdMotivo(); ClienteImovelFimRelacaoMotivo clienteImovelFimRelacao = new ClienteImovelFimRelacaoMotivo(); // seta o id do motivo do fim da rela��o clienteImovelFimRelacao.setId(new Integer(idMotivoFimRelacao)); String dataFimRelacaoForm = fimRelacaoClienteImovelActionForm .getDataTerminoRelacao(); SimpleDateFormat dataFormato = new SimpleDateFormat("dd/MM/yyyy"); Date dataFimRelacao = null; try { dataFimRelacao = dataFormato.parse(dataFimRelacaoForm); } catch (ParseException ex) { dataFimRelacao = null; } Date dataCorrente = null; Calendar a = Calendar.getInstance(); a.set(Calendar.SECOND, 0); a.set(Calendar.MILLISECOND, 0); a.set(Calendar.HOUR, 0); a.set(Calendar.MINUTE, 0); dataCorrente = a.getTime(); if (dataFimRelacao.after(dataCorrente)) { throw new ActionServletException( "atencao.data_fim_relacao_cliente_imovel"); } while (clienteImovelIterator.hasNext()) { ClienteImovel clienteImovel = (ClienteImovel) clienteImovelIterator .next(); if (dataFimRelacao.before(clienteImovel .getDataInicioRelacao())) { throw new ActionServletException( "atencao.data_fim_relacao_cliente_imovel_menor_inicial"); } } // caso a data n�o seja menor que a atual ent�o // seta a data final no cliente imovel clienteImovelIterator = colecaoClientesImoveisFimRelacao .iterator(); while (clienteImovelIterator.hasNext()) { ClienteImovel clienteImovel = (ClienteImovel) clienteImovelIterator .next(); clienteImovel .setClienteImovelFimRelacaoMotivo(clienteImovelFimRelacao); clienteImovel.setDataFimRelacao(dataFimRelacao); if (clienteImovel.isClienteUsuario()) { if(sessao.getAttribute( "idClienteImovelUsuario") != null){ sessao.removeAttribute("idClienteImovelUsuario"); } } if (clienteImovel.isClienteResponsavel()) { if(sessao.getAttribute("idClienteImovelResponsavel") != null){ sessao.removeAttribute("idClienteImovelResponsavel"); } } if(!(colecaoClientesImoveisRemovidos.contains(clienteImovel))){ fachada.verificaRestricaoDaTabelaClienteImovel(clienteImovel); colecaoClientesImoveisRemovidos.add(clienteImovel); } imovelClientesNovos.remove(clienteImovel); } } sessao.setAttribute("imovelClientesNovos", imovelClientesNovos); sessao.setAttribute("colecaoClientesImoveisFimRelacao", null); sessao.setAttribute("colecaoClientesImoveisRemovidos", colecaoClientesImoveisRemovidos); httpServletRequest.setAttribute("reloadPage", "OK"); return retorno; } }