package gcom.gui.portal;
import gcom.cadastro.ContaBraile;
import gcom.cadastro.FiltroContaBraile;
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.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;
/**
* <p>
* Classe Respons�vel por exibir o formul�rio de cadastro para solicita��o de
* contas em braile na Loja Virtual da Compesa
* </p>
*
* @author Magno Gouveia
* @date 18/05/2011
*/
public class ExibirInserirCadastroContaBrailePortalAction 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("exibirInserirCadastroContaBrailePortal");
Fachada fachada = Fachada.getInstancia();
InserirCadastroContaBrailePortalActionForm form = (InserirCadastroContaBrailePortalActionForm) 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());
httpServletRequest.setAttribute("orgaosExpedidores", orgaosExpedidores);
FiltroUnidadeFederacao filtroUnidadeFederacao = new FiltroUnidadeFederacao(FiltroUnidadeFederacao.SIGLA);
Collection unidadesFederacao = fachada.pesquisar(filtroUnidadeFederacao, UnidadeFederacao.class.getName());
httpServletRequest.setAttribute("unidadesFederacao", unidadesFederacao);
httpServletRequest.setAttribute("voltarServicos", true);
form.setMatricula(this.getSessao(httpServletRequest).getAttribute("matricula").toString());
//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");
} else {
if(this.jaSolicitouContaBraile(form.getMatricula())){
httpServletRequest.setAttribute("contaBraileJaSolicitada", true);
return retorno;
}
}
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.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");
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 {
httpServletRequest.setAttribute("imovelInexistente", true);
return retorno;
// throw new ActionServletException("atencao.imovel.inexistente");
}
} else {
httpServletRequest.setAttribute("imovelInexistente", true);
return retorno;
// throw new ActionServletException("atencao.imovel.inexistente");
}
}
// }
return retorno;
}
/**
* @author Magno Gouveia
* @date 02/06/2011
* @param idImovel
*/
private boolean jaSolicitouContaBraile(String idImovel) {
FiltroContaBraile filtro = new FiltroContaBraile();
filtro.adicionarParametro(new ParametroSimples(FiltroContaBraile.IMOVEL_ID, idImovel));
Collection colecao = this.getFachada().pesquisar(filtro, ContaBraile.class.getName());
if(colecao != null && colecao.size() > 0){
return true;
}
return false;
}
}