package gcom.gui.cadastro;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cadastro.cliente.FiltroOrgaoExpedidorRg;
import gcom.cadastro.cliente.OrgaoExpedidorRg;
import gcom.cadastro.geografico.FiltroUnidadeFederacao;
import gcom.cadastro.geografico.UnidadeFederacao;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class ExibirInserirCadastroContaBraileAction extends
GcomAction {
/**
*
* [UC1128] Solicitar Conta Braile
*
* @author Hugo Leonardo
* @Date 02/03/2011
*
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirInserirCadastroContaBraile");
// HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
InserirCadastroContaBraileActionForm
form = (InserirCadastroContaBraileActionForm) actionForm;
FiltroOrgaoExpedidorRg filtroOrgaoExpedidor = new FiltroOrgaoExpedidorRg(
FiltroOrgaoExpedidorRg.DESCRICAO_ABREVIADA);
filtroOrgaoExpedidor.adicionarParametro(new ParametroSimples(
FiltroOrgaoExpedidorRg.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection orgaosExpedidores = fachada.pesquisar(
filtroOrgaoExpedidor, OrgaoExpedidorRg.class.getName());
this.getSessao(httpServletRequest).setAttribute("orgaosExpedidores", orgaosExpedidores);
FiltroUnidadeFederacao filtroUnidadeFederacao = new FiltroUnidadeFederacao(
FiltroUnidadeFederacao.SIGLA);
Collection unidadesFederacao = fachada.pesquisar(
filtroUnidadeFederacao, UnidadeFederacao.class.getName());
this.getSessao(httpServletRequest).setAttribute("unidadesFederacao", unidadesFederacao);
//Desabilita os campos se a matricula do imovel nao for informada
//e so habilita se a matricula do imovel existir
if ( form.getMatricula() == null || form.getMatricula().equals("")){
// Se 1 - DESABILITA se 2 - HABILITA
form.setDesabilitaCampos("1");
}
if ( (httpServletRequest.getParameter("voltar") != null &&
httpServletRequest.getParameter("voltar").equals("sim"))
|| (httpServletRequest.getParameter("ok") == null ||
!httpServletRequest.getParameter("ok").equals("sim")) ){
form.setConfirmarCpfCnpjCliente("");
form.setConfirmarNomeCliente("");
form.setCpfCnpjCliente("");
form.setCpfCnpjClienteAux("");
form.setCpfSolicitante("");
form.setEmail("");
form.setEmailAux("");
form.setIndicadorCnpj(false);
form.setIndicadorCpf(false);
form.setMatricula("");
form.setNomeCliente("");
form.setNomeClienteAux("");
form.setNomeSolicitante("");
form.setTelefoneContato("");
form.setRg("");
form.setOrgaoExpeditor("-1");
form.setUnidadeFederacao("-1");
form.setDataExpedicao("");
}
if ( httpServletRequest.getParameter("ok") != null &&
httpServletRequest.getParameter("ok").equals("sim") ){
form.setDesabilitaCampos("2");
form.setConfirmarNomeCliente("");
form.setConfirmarCpfCnpjCliente("");
if ( form.getMatricula() != null && !form.getMatricula().equals("") ){
Integer idImovel = new Integer(form.getMatricula());
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro( new ParametroSimples( FiltroImovel.ID, idImovel));
Collection colecaoImovel = fachada.pesquisar
(filtroImovel, Imovel.class.getName());
if (!Util.isVazioOrNulo(colecaoImovel)){
FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro( new ParametroSimples(
FiltroClienteImovel.IMOVEL_ID, idImovel));
filtroClienteImovel.adicionarParametro( new ParametroNulo(FiltroClienteImovel.DATA_FIM_RELACAO));
filtroClienteImovel.adicionarParametro( new ParametroSimples(
FiltroClienteImovel.CLIENTE_RELACAO_TIPO_ID, 2));
filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("cliente");
Collection colecaoClienteImovel =
fachada.pesquisar(filtroClienteImovel, ClienteImovel.class.getName());
if (!Util.isVazioOrNulo(colecaoClienteImovel)){
ClienteImovel clienteImovel = (ClienteImovel) Util.
retonarObjetoDeColecao(colecaoClienteImovel);
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro( new ParametroSimples(
FiltroCliente.ID, clienteImovel.getCliente().getId()) );
filtroCliente.adicionarCaminhoParaCarregamentoEntidade("clienteTipo");
Collection colecaoClientes = fachada.pesquisar( filtroCliente, Cliente.class.getName() );
if (!Util.isVazioOrNulo(colecaoClientes)){
Cliente cliente = (Cliente) Util.retonarObjetoDeColecao(colecaoClientes);
form.setIdCliente(cliente.getId());
form.setNomeCliente(cliente.getNome());
form.setNomeClienteAux(cliente.getNome());
if ( cliente.getClienteTipo() != null ){
if ( cliente.getClienteTipo().getIndicadorPessoaFisicaJuridica() != null
&& cliente.getClienteTipo()
.getIndicadorPessoaFisicaJuridica().compareTo(
ConstantesSistema.SIM) == 0 ){
form.setCpfCnpjCliente(cliente.getCpf());
form.setCpfCnpjClienteAux(cliente.getCpf());
form.setIndicadorCpf(true);
}else if (cliente.getClienteTipo().getIndicadorPessoaFisicaJuridica() != null
&& cliente.getClienteTipo()
.getIndicadorPessoaFisicaJuridica().compareTo(
ConstantesSistema.NAO) == 0){
form.setCpfCnpjCliente(cliente.getCnpj());
form.setCpfCnpjClienteAux(cliente.getCnpj());
form.setIndicadorCnpj(true);
}
if ( cliente.getEmail() != null && !cliente.getEmail().equals("") ){
form.setEmail(cliente.getEmail());
form.setEmailAux(cliente.getEmail());
}
}
}
}else{
throw new ActionServletException("atencao.imovel.inexistente");
}
}else{
throw new ActionServletException("atencao.imovel.inexistente");
}
}
}
return retorno;
}
}