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.cadastro.cliente.FiltroClienteRelacaoTipo;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
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 que inicializa a primeira p�gina do processo de inserir imovel cliente
*
* @author S�vio Luiz
* @created 24 de Maio de 2004
*/
public class ExibirAtualizarImovelClienteAction 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
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("atualizarImovelCliente");
// obtendo uma instancia da sessao
HttpSession sessao = httpServletRequest.getSession(false);
sessao.removeAttribute("gis");
DynaValidatorForm inserirImovelClienteActionForm = (DynaValidatorForm) actionForm;
// cria variaveis
String idCliente = null;
// atribui os valores q vem pelo request as variaveis
idCliente = (String) inserirImovelClienteActionForm.get("idCliente");
// cria filtro
FiltroCliente filtroCliente = new FiltroCliente();
FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo();
// limpa o cliente da sessao
sessao.removeAttribute("clienteObj");
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
if (httpServletRequest.getParameter("confirmado")!= null && httpServletRequest.getParameter("confirmado").equalsIgnoreCase("ok")) {
sessao.setAttribute("confirmou", "sim");
}
Imovel imovel = (Imovel) sessao.getAttribute("imovelAtualizacao");
Collection tipoClientesImoveis = null;
SimpleDateFormat dataFormatoAtual = new SimpleDateFormat("dd/MM/yyyy");
// joga em dataInicial a parte da data
String dataAtual = dataFormatoAtual.format(new Date());
inserirImovelClienteActionForm.set("dataInicioClienteImovelRelacao",
dataAtual);
String nomeDoImovel = "";
if(imovel.getNomeImovel()!= null){
nomeDoImovel = imovel.getNomeImovel();
}
inserirImovelClienteActionForm.set("nomeDoImovel", nomeDoImovel);
if (imovel.getImovelPerfil() != null
&& imovel.getImovelPerfil().getId().equals(
ConstantesSistema.INDICADOR_TARIFA_SOCIAL)) {
FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil();
filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.ID, ConstantesSistema.INDICADOR_TARIFA_SOCIAL));
ImovelPerfil imovelPerfil = (ImovelPerfil)
Util.retonarObjetoDeColecao(fachada.pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName()));
if (imovelPerfil.getIndicadorBloqueaDadosSocial().equals(ConstantesSistema.SIM)){
filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples(
FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID,
ClienteRelacaoTipo.RESPONSAVEL.intValue()));
}
}
filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples(
FiltroClienteRelacaoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
tipoClientesImoveis = fachada.pesquisar(filtroClienteRelacaoTipo,
ClienteRelacaoTipo.class.getName());
// a cole��o de clientesImoveisTipos � obrigat�rio
if (tipoClientesImoveis == null || tipoClientesImoveis.equals("")) {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado", null,
"tipo cliente imovel");
} else {
sessao.setAttribute("tipoClientesImoveis", tipoClientesImoveis);
if (inserirImovelClienteActionForm.get("textoSelecionado") == null
|| inserirImovelClienteActionForm.get("textoSelecionado")
.equals("")) {
inserirImovelClienteActionForm.set("textoSelecionado",
((ClienteRelacaoTipo) ((List) tipoClientesImoveis)
.get(0)).getDescricao());
}
}
// informar o cliente conta para o imovel
String indicadorNomeConta = httpServletRequest
.getParameter("indicadorNomeConta");
if (indicadorNomeConta != null && !indicadorNomeConta.equals("")) {
// String[] ids =
// (String[])inserirImovelClienteActionForm.get("idNomeConta");
if (sessao.getAttribute("imovelClientesNovos") != null) {
Collection clientesImoveis = (Collection) sessao
.getAttribute("imovelClientesNovos");
if (!clientesImoveis.isEmpty()) {
Iterator iteratorClientesImoveis = clientesImoveis
.iterator();
// int i = 0;
String nomeContaSelecionado = (String) inserirImovelClienteActionForm
.get("nomeContaSelecionado");
while (iteratorClientesImoveis.hasNext()) {
// String nomeConta = ids[i];
ClienteImovel clienteImovel = (ClienteImovel) iteratorClientesImoveis
.next();
// if(nomeConta.substring(0,7).equals("USUARIO"))
if ((clienteImovel.getClienteRelacaoTipo()
.getDescricao()
+ "-" + clienteImovel.getCliente().getId()
.toString()).equals(nomeContaSelecionado)) {
clienteImovel.setIndicadorNomeConta(new Short(
(short) 1));
} else {
clienteImovel.setIndicadorNomeConta(new Short(
(short) 2));
}
// i++;
}
}
}
} else {
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// se o id do cliente for diferente de nulo
if (idCliente != null
&& !idCliente.toString().trim().equalsIgnoreCase("")) {
Collection clientes = null;
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, new Integer(idCliente)));
clientes = fachada.pesquisar(filtroCliente, Cliente.class
.getName());
if (clientes != null && !clientes.isEmpty()) {
// O cliente foi encontrado
inserirImovelClienteActionForm.set("idCliente",
((Cliente) ((List) clientes).get(0)).getId()
.toString());
inserirImovelClienteActionForm.set("nomeCliente",
((Cliente) ((List) clientes).get(0)).getNome());
Cliente cliente = new Cliente();
cliente = (Cliente) clientes.iterator().next();
sessao.setAttribute("clienteObj", cliente);
} else {
httpServletRequest.setAttribute(
"codigoClienteNaoEncontrado", "true");
inserirImovelClienteActionForm.set("nomeCliente", "");
}
}
//**************************************************************
// Autor: Ivan Sergio
// Data: 21/07/2009
// CRC2103
// Esse filtro se faz necessario por conta do usuario ter a
// opcao de atualizar o cliente.
//**************************************************************
Collection clientesImoveis = (Collection) sessao.getAttribute("imovelClientesNovos");
if (clientesImoveis != null && !clientesImoveis.isEmpty()) {
Iterator iteratorClientesImoveis = clientesImoveis.iterator();
while (iteratorClientesImoveis.hasNext()) {
ClienteImovel clienteImovel = (ClienteImovel) iteratorClientesImoveis.next();
if (clienteImovel.getIndicadorNomeConta() == null) {
clienteImovel.setIndicadorNomeConta(new Short((short) 2));
}
if (sessao.getAttribute("codigoCliente") != null
&& !sessao.getAttribute("codigoCliente").equals("")) {
FiltroCliente filtro = new FiltroCliente();
filtro.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, clienteImovel.getCliente().getId()));
Cliente cliente = (Cliente) Util.retonarObjetoDeColecao(
fachada.pesquisar(filtro, Cliente.class.getName()));
clienteImovel.setCliente(cliente);
}
// fim da parte que trata do codigo do usuario que tecla enter
}
}
}
//************************************************************
// Autor: Ivan Sergio
// Data: 06/08/2009
// CRC2103
// Adicionado para o caso do Inserir Cliente no manter Imovel
//************************************************************
//httpServletRequest.setAttribute("idImovel", sessao.getAttribute("idImovel"));
//************************************************************
return retorno;
}
}