package gcom.gui.arrecadacao;
import gcom.cadastro.cliente.ClienteEndereco;
import gcom.cadastro.cliente.ClienteFone;
import gcom.cadastro.cliente.FiltroClienteEndereco;
import gcom.cadastro.cliente.FiltroClienteFone;
import gcom.cadastro.cliente.IClienteFone;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.FiltroDocumentoTipo;
import gcom.fachada.Fachada;
import gcom.faturamento.credito.CreditoTipo;
import gcom.faturamento.credito.FiltroCreditoTipo;
import gcom.faturamento.debito.DebitoCreditoSituacao;
import gcom.faturamento.debito.FiltroDebitoCreditoSituacao;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* Pesquisar Guia Devolucao - Exibir
*
* Action para Exibir a p�gina de consulta de guias de devolu��o
*
* @author Fernanda Paiva - 02/03/2006
*/
public class ExibirPesquisarGuiaDevolucaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("pesquisarGuiaDevolucao");
// Instacia a fachada
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
PesquisarGuiaDevolucaoActionForm pesquisarGuiaDevolucaoActionForm = (PesquisarGuiaDevolucaoActionForm) actionForm;
// Recupera os parametros
String tela = httpServletRequest.getParameter("tela");
String tipo = httpServletRequest.getParameter("tipo");
if ((tipo != null && !tipo.equals("")) || (tela != null && !tela.equals(""))) {
pesquisarGuiaDevolucaoActionForm.setCodigoCliente("");
pesquisarGuiaDevolucaoActionForm.setNomeCliente("");
pesquisarGuiaDevolucaoActionForm.setCodigoImovel("");
pesquisarGuiaDevolucaoActionForm.setInscricaoImovel("");
pesquisarGuiaDevolucaoActionForm.reset(actionMapping,httpServletRequest);
}
if(httpServletRequest.getParameter("objetoConsulta") == null
&& httpServletRequest.getParameter("tipoConsulta") == null
&& httpServletRequest.getParameter("voltarPesquisa") == null
&& sessao.getAttribute("flag") == null)
{
pesquisarGuiaDevolucaoActionForm.setCodigoCliente("");
pesquisarGuiaDevolucaoActionForm.setNomeCliente("");
pesquisarGuiaDevolucaoActionForm.setCodigoImovel("");
pesquisarGuiaDevolucaoActionForm.setInscricaoImovel("");
pesquisarGuiaDevolucaoActionForm.reset(actionMapping,httpServletRequest);
sessao.removeAttribute("caminhoRetornoTelaPesquisaCliente");
sessao.removeAttribute("caminhoRetornoTelaPesquisaImovel");
if (httpServletRequest.getParameter("novaPesquisa") == null
|| httpServletRequest.getParameter("novaPesquisa").equals(
"")) {
sessao.removeAttribute("caminhoRetorno");
}
sessao.setAttribute("flag","1");
}
// Recupera os dados do formul�rio
String codigoCliente = (String) pesquisarGuiaDevolucaoActionForm.getCodigoCliente();
String codigoImovel = (String) pesquisarGuiaDevolucaoActionForm.getCodigoImovel();
//Verifica se o tipoConsulta � diferente de nulo ou vazio esse tipo
// consulta vem do
// localidade_resultado_pesquisa.jsp ou do
// cliente_resultado_pesquisa.jsp ou do imovel_resultado_pesquisa.jsp.
// � feita essa verifica��o pois pode ser que ainda n�o tenha
// feito a pesquisa de cliente ou imovel.
if (httpServletRequest.getParameter("tipoConsulta") != null
&& !httpServletRequest.getParameter("tipoConsulta").equals("")) {
// Verifica se o tipo da consulta de guia devolucao � de imovel
// se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina guia_devolucao_pesquisar.jsp
if (httpServletRequest.getParameter("tipoConsulta")
.equals("imovel")) {
pesquisarGuiaDevolucaoActionForm.setCodigoImovel(httpServletRequest
.getParameter("idCampoEnviarDados"));
pesquisarGuiaDevolucaoActionForm
.setInscricaoImovel(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
pesquisarGuiaDevolucaoActionForm.setCodigoCliente("");
pesquisarGuiaDevolucaoActionForm
.setNomeCliente("");
}
// Verifica se o tipo da consulta de arrecadador � de cliente
// se for os parametros de enviarDadosParametros ser�o mandados para
// a pagina arrecadador_pesuisar.jsp
if (httpServletRequest.getParameter("tipoConsulta").equals(
"cliente")) {
pesquisarGuiaDevolucaoActionForm.setCodigoCliente(httpServletRequest
.getParameter("idCampoEnviarDados"));
pesquisarGuiaDevolucaoActionForm
.setNomeCliente(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
pesquisarGuiaDevolucaoActionForm.setCodigoImovel("");
pesquisarGuiaDevolucaoActionForm
.setInscricaoImovel("");
}
} else {
// Verifica se o c�digo do im�vel foi digitado
if (codigoImovel != null
&& !codigoImovel.trim().equals("")
&& Integer.parseInt(codigoImovel) > 0) {
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("quadra");
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, codigoImovel));
Collection imovelEncontrado = fachada.pesquisar(filtroImovel,
Imovel.class.getName());
if (imovelEncontrado != null && !imovelEncontrado.isEmpty()) {
// O imovel foi encontrado
pesquisarGuiaDevolucaoActionForm.setCodigoImovel(""
+ ((Imovel) ((List) imovelEncontrado).get(0)).getId());
pesquisarGuiaDevolucaoActionForm.setInscricaoImovel(""
+ ((Imovel) ((List) imovelEncontrado).get(0)).getInscricaoFormatada());
} else {
pesquisarGuiaDevolucaoActionForm.setCodigoImovel("");
httpServletRequest.setAttribute(
"codigoImovelNaoEncontrado", "exception");
pesquisarGuiaDevolucaoActionForm
.setInscricaoImovel("MATR�CULA INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo","codigoImovel");
}
}
// Verifica se o c�digo do cliente foi digitado
if (codigoCliente != null
&& !codigoCliente.trim().equals("")
&& Integer.parseInt(codigoCliente) > 0) {
FiltroClienteEndereco filtroClienteEndereco = new FiltroClienteEndereco();
filtroClienteEndereco.adicionarParametro(new ParametroSimples(
FiltroClienteEndereco.CLIENTE_ID, codigoCliente));
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("enderecoTipo");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("cliente.clienteTipo");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("cliente.profissao");
filtroClienteEndereco
.adicionarCaminhoParaCarregamentoEntidade("cliente.ramoAtividade");
Collection clienteEncontrado = fachada.pesquisar(filtroClienteEndereco,
ClienteEndereco.class.getName());
if (clienteEncontrado != null && !clienteEncontrado.isEmpty()) {
ClienteEndereco clienteEndereco = (ClienteEndereco) ((List) clienteEncontrado).get(0);
// O endere�o do cliente foi encontrado
if (clienteEndereco.getCliente().getId() != null)
{
pesquisarGuiaDevolucaoActionForm.setCodigoCliente(""
+ clienteEndereco.getCliente().getId());
}
if (clienteEndereco.getCliente().getNome() != null)
{
pesquisarGuiaDevolucaoActionForm.setNomeCliente(""
+ clienteEndereco.getCliente().getNome());
}
if (clienteEndereco.getCliente().getClienteTipo().getIndicadorPessoaFisicaJuridica() == 1 ){
if (clienteEndereco.getCliente().getCpfFormatado() != null)
{
pesquisarGuiaDevolucaoActionForm.setCpfCnpj(""
+ clienteEndereco.getCliente().getCpfFormatado());
}
}
else
{
if (clienteEndereco.getCliente().getCnpjFormatado() != null)
{
pesquisarGuiaDevolucaoActionForm.setCpfCnpj(""
+ clienteEndereco.getCliente().getCnpjFormatado());
}
}
if (clienteEndereco.getCliente().getProfissao() != null)
{
pesquisarGuiaDevolucaoActionForm.setProfissao(""
+ clienteEndereco.getCliente().getProfissao().getDescricao());
}
if (clienteEndereco.getCliente().getRamoAtividade() != null)
{
pesquisarGuiaDevolucaoActionForm.setRamoAtividade(""
+ clienteEndereco.getCliente().getRamoAtividade().getDescricao());
}
pesquisarGuiaDevolucaoActionForm.setEnderecoCliente(""
+ ((ClienteEndereco) ((List) clienteEncontrado)
.get(0)).getEnderecoFormatado());
FiltroClienteFone filtroClienteFone = new FiltroClienteFone();
filtroClienteFone.adicionarParametro(new ParametroSimples(
FiltroClienteFone.CLIENTE_ID, codigoCliente));
Collection colecaoClienteFone = fachada.pesquisar(
filtroClienteFone, ClienteFone.class.getName());
if (colecaoClienteFone != null
&& !colecaoClienteFone.isEmpty()) {
// O telefone foi encontrado
pesquisarGuiaDevolucaoActionForm.setClienteFone(""
+ ((IClienteFone) ((List) colecaoClienteFone)
.get(0)).getTelefone());
}
} else {
pesquisarGuiaDevolucaoActionForm.setCodigoCliente("");
pesquisarGuiaDevolucaoActionForm
.setNomeCliente(ConstantesSistema.CODIGO_CLIENTE_INEXISTENTE);
httpServletRequest.setAttribute(
"idClienteNaoEncontrado", "exception");
httpServletRequest.setAttribute("nomeCampo","codigoCliente");
}
}
}
// Cole��o de Tipo de Cr�dito
FiltroCreditoTipo filtroCreditoTipo = new FiltroCreditoTipo();
Collection<CreditoTipo> collectionTipoCredito = fachada.pesquisar(
filtroCreditoTipo, CreditoTipo.class.getName());
httpServletRequest.setAttribute("collectionTipoCredito",
collectionTipoCredito);
// Cole��o de Tipo de Documento
FiltroDocumentoTipo filtroDocumentoTipo = new FiltroDocumentoTipo();
Collection<DocumentoTipo> collectionTipoDocumento = fachada.pesquisar(
filtroDocumentoTipo, DocumentoTipo.class.getName());
httpServletRequest.setAttribute("collectionTipoDocumento",
collectionTipoDocumento);
// Cole��o de Debito Cr�dito Situacao
FiltroDebitoCreditoSituacao filtroDebitoCreditoSituacao = new FiltroDebitoCreditoSituacao();
Collection<DebitoCreditoSituacao> collectionSituacaoGuia = fachada.pesquisar(
filtroDebitoCreditoSituacao, DebitoCreditoSituacao.class.getName());
httpServletRequest.setAttribute("collectionSituacaoGuia",
collectionSituacaoGuia);
return retorno;
}
}