package gcom.gui.arrecadacao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.cliente.FiltroClienteRelacaoTipo;
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.DebitoTipo;
import gcom.faturamento.debito.FiltroDebitoTipo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ConectorOr;
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;
/**
* Filtrar Devolu��es - Exibir
*
* @author Rafael Corr�a - 03/05/2006
*/
public class ExibirFiltrarGuiaDevolucaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("filtrarGuiaDevolucao");
// Instacia a fachada
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarGuiaDevolucaoActionForm filtrarGuiaDevolucaoActionForm = (FiltrarGuiaDevolucaoActionForm) actionForm;
// Limpa o atributo se o usu�rio voltou o filtrar
if (sessao.getAttribute("guiaDevolucaoAtualizar") != null) {
sessao.removeAttribute("guiaDevolucaoAtualizar");
}
// Pegando valores para Tipo de Relacao do Cliente
FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo();
filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples(
FiltroClienteRelacaoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroClienteRelacaoTipo
.setCampoOrderBy(FiltroClienteRelacaoTipo.DESCRICAO);
Collection colecaoClienteRelacaoTipo = fachada.pesquisar(
filtroClienteRelacaoTipo, ClienteRelacaoTipo.class.getName());
if (colecaoClienteRelacaoTipo != null
&& !colecaoClienteRelacaoTipo.isEmpty()) {
httpServletRequest.setAttribute("colecaoClienteRelacaoTipo",
colecaoClienteRelacaoTipo);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"cliente rela��o tipo");
}
// Pegando valores para o combo Tipo de Cr�dito
FiltroCreditoTipo filtroCreditoTipo = new FiltroCreditoTipo();
filtroCreditoTipo.adicionarParametro(new ParametroSimples(
FiltroCreditoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroCreditoTipo.setCampoOrderBy(FiltroCreditoTipo.DESCRICAO);
Collection colecaoCreditoTipo = fachada.pesquisar(filtroCreditoTipo,
CreditoTipo.class.getCanonicalName());
if (colecaoCreditoTipo != null && !colecaoCreditoTipo.isEmpty()) {
httpServletRequest.setAttribute("colecaoCreditoTipo",
colecaoCreditoTipo);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"cr�dito tipo");
}
// Pegando valores para o combo Tipo de Documento
FiltroDocumentoTipo filtroDocumentoTipo = new FiltroDocumentoTipo();
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroDocumentoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroDocumentoTipo.ID, DocumentoTipo.CONTA,
ConectorOr.CONECTOR_OR, 4));
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroDocumentoTipo.ID, DocumentoTipo.GUIA_PAGAMENTO,
ConectorOr.CONECTOR_OR));
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroDocumentoTipo.ID, DocumentoTipo.DEBITO_A_COBRAR,
ConectorOr.CONECTOR_OR));
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroDocumentoTipo.ID, DocumentoTipo.DEVOLUCAO_VALOR,
ConectorOr.CONECTOR_OR));
filtroDocumentoTipo.setCampoOrderBy(FiltroDocumentoTipo.DESCRICAO);
Collection colecaoDocumentoTipo = fachada.pesquisar(
filtroDocumentoTipo, DocumentoTipo.class.getName());
if (colecaoDocumentoTipo != null && !colecaoDocumentoTipo.isEmpty()) {
httpServletRequest.setAttribute("colecaoDocumentoTipo", colecaoDocumentoTipo);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Tipo de Documento");
}
// Pegando valores para o combo Tipo de Cr�dito
FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo();
filtroDebitoTipo.setConsultaSemLimites(true);
filtroDebitoTipo.setCampoOrderBy(FiltroDebitoTipo.DESCRICAO);
// Pesquisa os tipos de d�bito no sistema
Collection colecaoTipoDebito = fachada.pesquisar(filtroDebitoTipo,
DebitoTipo.class.getName());
// Caso nenhum tipo de d�bito
if (colecaoTipoDebito == null || colecaoTipoDebito.isEmpty()) {
// Levanta a exce��o para a pr�xima camada
throw new ActionServletException("atencao.naocadastrado", null,
"Tipo de D�bito");
} else {
// Manda a cole��o de tipo de d�bito de guia de pagamento no request
// para a p�gina de pesquisar
httpServletRequest.setAttribute("colecaoTipoDebito",
colecaoTipoDebito);
}
if (httpServletRequest.getParameter("menu") != null
&& httpServletRequest.getParameter("menu").equalsIgnoreCase(
"sim")) {
filtrarGuiaDevolucaoActionForm.setAtualizar("1");
}
// Seta o cursor para o primeiro campo do tipo texto
httpServletRequest.setAttribute("nomeCampo", "idImovel");
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// Im�vel
String idImovel = "";
if (httpServletRequest.getParameter("paginacao") != null) {
idImovel = (String) filtrarGuiaDevolucaoActionForm.getIdImovelHidden();
} else {
idImovel = (String) filtrarGuiaDevolucaoActionForm.getIdImovel();
}
if (idImovel != null && !idImovel.equals("")) {
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, idImovel));
Collection imoveis = fachada.pesquisar(filtroImovel, Imovel.class
.getName());
if (imoveis != null && !imoveis.isEmpty()) {
Imovel imovel = (Imovel) ((List) imoveis).get(0);
httpServletRequest.setAttribute("imovel", imovel);
filtrarGuiaDevolucaoActionForm.setDescricaoImovel(imovel
.getInscricaoFormatada());
} else {
httpServletRequest.setAttribute("matriculaInexistente", "true");
filtrarGuiaDevolucaoActionForm.setIdImovel("");
filtrarGuiaDevolucaoActionForm
.setDescricaoImovel("MATR�CULA INEXISTENTE");
}
} else {
filtrarGuiaDevolucaoActionForm.setIdImovel("");
filtrarGuiaDevolucaoActionForm.setDescricaoImovel("");
}
// Cliente
String idCliente = "";
if (httpServletRequest.getParameter("paginacao") != null) {
idCliente = (String) filtrarGuiaDevolucaoActionForm.getIdClienteHidden();
} else {
idCliente = (String) filtrarGuiaDevolucaoActionForm.getIdCliente();
}
if (idCliente != null && !idCliente.equals("")) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idCliente));
Collection clientes = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (clientes != null && !clientes.isEmpty()) {
Cliente cliente = (Cliente) ((List) clientes).get(0);
filtrarGuiaDevolucaoActionForm
.setNomeCliente(cliente.getNome());
} else {
httpServletRequest.setAttribute("clienteInexistente", "true");
filtrarGuiaDevolucaoActionForm.setIdCliente("");
filtrarGuiaDevolucaoActionForm
.setNomeCliente("CLIENTE INEXISTENTE");
}
} else {
filtrarGuiaDevolucaoActionForm.setIdCliente("");
filtrarGuiaDevolucaoActionForm.setNomeCliente("");
}
return retorno;
}
}