package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.FiltroCliente; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Action respons�vel por adicionar na cole��o a rela��o entre o cliente imovel, * o cliente e a data de inicio da rela��o * * @author S�vio Luiz * @created 16 de Maio de 2004 */ public class AdicionarInserirImovelClienteAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ @SuppressWarnings({ "unchecked", "rawtypes" }) public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("adicionarInserirImovelCliente"); HttpSession sessao = httpServletRequest.getSession(false); DynaValidatorForm inserirImovelActionForm = (DynaValidatorForm) actionForm; Fachada fachada = Fachada.getInstancia(); Collection imovelClientesNovos = null; if (sessao.getAttribute("imovelClientesNovos") != null) { imovelClientesNovos = (Collection) sessao.getAttribute("imovelClientesNovos"); } else { imovelClientesNovos = new ArrayList(); } Cliente cliente = new Cliente(); if (inserirImovelActionForm.get("idCliente") != null) { String idCliente = (String) inserirImovelActionForm.get("idCliente"); FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, idCliente)); Collection clientesObjs = fachada.pesquisar(filtroCliente, Cliente.class.getName()); if (!clientesObjs.isEmpty()) { cliente = (Cliente) clientesObjs.iterator().next(); } else { throw new ActionServletException("atencao.naocadastrado", null, "Cliente"); } } ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo(); clienteRelacaoTipo.setId((Integer) inserirImovelActionForm.get("tipoClienteImovel")); clienteRelacaoTipo.setDescricao((String) inserirImovelActionForm.get("textoSelecionado")); ClienteImovel clienteImovel = new ClienteImovel(new Date(), null, null, cliente, clienteRelacaoTipo); clienteImovel.setUltimaAlteracao(new Date()); if (!imovelClientesNovos.contains(clienteImovel)) { if (clienteImovel.isClienteUsuario()) { if (inserirImovelActionForm.get("idClienteImovelUsuario") == null || inserirImovelActionForm.get("idClienteImovelUsuario").equals("")) { sessao.setAttribute("idClienteImovelUsuario", cliente.getId().toString()); inserirImovelActionForm.set("idClienteImovelUsuario", cliente.getId().toString()); imovelClientesNovos.add(clienteImovel); } else { throw new ActionServletException("atencao.ja_cadastradado.cliente_imovel_usuario"); } } else if (clienteImovel.isClienteResponsavel()) { if (inserirImovelActionForm.get("idClienteImovelResponsavel") == null || inserirImovelActionForm.get("idClienteImovelResponsavel").equals("")) { inserirImovelActionForm.set("idClienteImovelResponsavel", cliente.getId().toString()); sessao.setAttribute("idClienteImovelResponsavel", cliente.getId().toString()); imovelClientesNovos.add(clienteImovel); } else { throw new ActionServletException("atencao.ja_cadastradado.cliente_imovel_responsavel"); } } else { imovelClientesNovos.add(clienteImovel); } inserirImovelActionForm.set("idCliente", null); inserirImovelActionForm.set("nomeCliente", null); sessao.setAttribute("imovelClientesNovos", imovelClientesNovos); } else { throw new ActionServletException("atencao.ja_cadastradado.cliente_imovel"); } return retorno; } }