package gcom.gui.arrecadacao;
import gcom.arrecadacao.FiltroGuiaDevolucao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.DocumentoTipo;
import gcom.fachada.Fachada;
import gcom.faturamento.debito.DebitoCreditoSituacao;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ConectorOr;
import gcom.util.filtro.Intervalo;
import gcom.util.filtro.MaiorQue;
import gcom.util.filtro.MenorQue;
import gcom.util.filtro.ParametroSimples;
import gcom.util.filtro.ParametroSimplesColecao;
import java.util.Collection;
import java.util.Date;
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;
public class FiltrarGuiaDevolucaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("manterGuiaDevolucao");
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarGuiaDevolucaoActionForm filtrarGuiaDevolucaoActionForm = (FiltrarGuiaDevolucaoActionForm) actionForm;
// Recupera os par�metros do form
String idImovel = filtrarGuiaDevolucaoActionForm.getIdImovelHidden();
String idCliente = filtrarGuiaDevolucaoActionForm
.getIdClienteHidden();
String idTipoRelacao = filtrarGuiaDevolucaoActionForm
.getClienteRelacaoTipo();
String periodoArrecadacaoInicial = filtrarGuiaDevolucaoActionForm
.getPeriodoArrecadacaoInicio();
String periodoArrecadacaoFinal = filtrarGuiaDevolucaoActionForm
.getPeriodoArrecadacaoFim();
String periodoGuiaInicial = filtrarGuiaDevolucaoActionForm
.getPeriodoGuiaInicio();
String periodoGuiaFinal = filtrarGuiaDevolucaoActionForm
.getPeriodoGuiaFim();
String dataEmissaoInicial = filtrarGuiaDevolucaoActionForm
.getDataEmissaoInicio();
String dataEmissaoFinal = filtrarGuiaDevolucaoActionForm
.getDataEmissaoFim();
String dataValidadeInicial = filtrarGuiaDevolucaoActionForm
.getDataValidadeInicio();
String dataValidadeFinal = filtrarGuiaDevolucaoActionForm
.getDataValidadeFim();
String[] idsCreditosTipos = filtrarGuiaDevolucaoActionForm
.getCreditoTipo();
String[] idsDocumentosTipos = filtrarGuiaDevolucaoActionForm
.getDocumentoTipo();
String[] idsTipoDebito = filtrarGuiaDevolucaoActionForm
.getIdTipoDebitoSelecionados();
// String atualizar = filtrarGuiaDevolucaoActionForm.getAtualizar();
//
// if (atualizar != null && atualizar.equals("1")) {
// httpServletRequest.setAttribute("atualizar", atualizar);
// }
SistemaParametro sistemaParametro = fachada
.pesquisarParametrosDoSistema();
Integer anoMesFaturamento = sistemaParametro.getAnoMesFaturamento();
// cria o filtro para Tabela Auxiliar
FiltroGuiaDevolucao filtroGuiaDevolucao = new FiltroGuiaDevolucao();
boolean peloMenosUmParametroInformado = false;
// Per�odo Arrecada��o
if ((periodoArrecadacaoInicial != null && !periodoArrecadacaoInicial
.equals(""))
|| ((periodoArrecadacaoFinal != null && !periodoArrecadacaoFinal
.equals("")))) {
peloMenosUmParametroInformado = true;
if ((periodoArrecadacaoInicial != null && !periodoArrecadacaoInicial
.trim().equals(""))
&& Util.validarAnoMes(periodoArrecadacaoInicial)) {
throw new ActionServletException(
"atencao.periodo.arrecadacao.invalido", null, "Inicial");
}
if ((periodoArrecadacaoFinal != null && !periodoArrecadacaoFinal
.trim().equals(""))
&& Util.validarAnoMes(periodoArrecadacaoFinal)) {
throw new ActionServletException(
"atencao.periodo.arrecadacao.invalido", null, "Final");
}
String periodoArrecadacaoInicialFormatado = "";
if (periodoArrecadacaoInicial != null
&& !periodoArrecadacaoInicial.trim().equals("")) {
periodoArrecadacaoInicialFormatado = Util
.formatarMesAnoParaAnoMesSemBarra(periodoArrecadacaoInicial);
}
String periodoArrecadacaoFinalFormatado = "";
if (periodoArrecadacaoFinal != null
&& !periodoArrecadacaoFinal.trim().equals("")) {
periodoArrecadacaoFinalFormatado = Util
.formatarMesAnoParaAnoMesSemBarra(periodoArrecadacaoFinal);
}
if ((!periodoArrecadacaoFinalFormatado.equals(""))
&& Util.compararAnoMesReferencia(new Integer(
periodoArrecadacaoFinalFormatado),
anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.referencia.posterior.ano.mes.faturamento",
"Arrecada��o", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if ((!periodoArrecadacaoInicialFormatado.equals(""))
&& Util.compararAnoMesReferencia(new Integer(
periodoArrecadacaoInicialFormatado),
anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.referencia.posterior.ano.mes.faturamento",
"Arrecada��o", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if ((periodoArrecadacaoInicial != null && !periodoArrecadacaoInicial
.equals(""))
&& ((periodoArrecadacaoFinal != null && !periodoArrecadacaoFinal
.equals("")))) {
filtroGuiaDevolucao.adicionarParametro(new Intervalo(
FiltroGuiaDevolucao.ANO_MES_REFERENCIA_ARRECADACAO,
periodoArrecadacaoInicialFormatado,
periodoArrecadacaoFinalFormatado));
} else if ((periodoArrecadacaoInicial != null && !periodoArrecadacaoInicial
.equals(""))) {
filtroGuiaDevolucao.adicionarParametro(new Intervalo(
FiltroGuiaDevolucao.ANO_MES_REFERENCIA_ARRECADACAO,
periodoArrecadacaoInicialFormatado, anoMesFaturamento));
} else {
filtroGuiaDevolucao.adicionarParametro(new MenorQue(
FiltroGuiaDevolucao.ANO_MES_REFERENCIA_ARRECADACAO,
periodoArrecadacaoFinalFormatado));
}
}
// Per�odo Guia
if ((periodoGuiaInicial != null && !periodoGuiaInicial.equals(""))
|| (periodoGuiaFinal != null && !periodoGuiaFinal.equals(""))) {
peloMenosUmParametroInformado = true;
if ((periodoGuiaInicial != null && !periodoGuiaInicial.trim()
.equals(""))
&& Util.validarAnoMes(periodoGuiaInicial)) {
throw new ActionServletException(
"atencao.periodo.guia.invalido", null, "Inicial");
}
if ((periodoGuiaFinal != null && !periodoGuiaFinal.trim()
.equals(""))
&& Util.validarAnoMes(periodoGuiaFinal)) {
throw new ActionServletException(
"atencao.periodo.guia.invalido", null, "Final");
}
String periodoGuiaInicialFormatado = "";
if (periodoGuiaInicial != null
&& !periodoGuiaInicial.trim().equals("")) {
periodoGuiaInicialFormatado = Util
.formatarMesAnoParaAnoMesSemBarra(periodoGuiaInicial);
}
String periodoGuiaFinalFormatado = "";
if (periodoGuiaFinal != null && !periodoGuiaFinal.trim().equals("")) {
periodoGuiaFinalFormatado = Util
.formatarMesAnoParaAnoMesSemBarra(periodoGuiaFinal);
}
if ((!periodoGuiaFinalFormatado.equals(""))
&& Util.compararAnoMesReferencia(new Integer(
periodoGuiaFinalFormatado), anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.referencia.posterior.ano.mes.faturamento",
"Guia", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if ((!periodoGuiaInicialFormatado.equals(""))
&& Util.compararAnoMesReferencia(new Integer(
periodoGuiaInicialFormatado), anoMesFaturamento,
">")) {
throw new ActionServletException(
"atencao.ano.mes.referencia.posterior.ano.mes.faturamento",
"Guia", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if ((periodoGuiaInicial != null && !periodoGuiaInicial.equals(""))
&& ((periodoGuiaFinal != null && !periodoGuiaFinal
.equals("")))) {
filtroGuiaDevolucao
.adicionarParametro(new Intervalo(
FiltroGuiaDevolucao.ANO_MES_REFERENCIA_GUIA_DEVOLUCAO,
periodoGuiaInicialFormatado,
periodoGuiaFinalFormatado));
} else if ((periodoGuiaInicial != null && !periodoGuiaInicial
.equals(""))) {
filtroGuiaDevolucao.adicionarParametro(new Intervalo(
FiltroGuiaDevolucao.ANO_MES_REFERENCIA_GUIA_DEVOLUCAO,
periodoGuiaInicialFormatado, anoMesFaturamento));
} else {
filtroGuiaDevolucao.adicionarParametro(new MenorQue(
FiltroGuiaDevolucao.ANO_MES_REFERENCIA_GUIA_DEVOLUCAO,
periodoGuiaFinalFormatado));
}
}
// Per�odo Data Emiss�o
if ((dataEmissaoInicial != null && !dataEmissaoInicial.equals(""))
|| (dataEmissaoFinal != null && !dataEmissaoFinal.equals(""))) {
peloMenosUmParametroInformado = true;
Date dataEmissaoInicialFormatada = null;
Integer anoMesDataEmissaoInicial = null;
if (dataEmissaoInicial != null
&& !dataEmissaoInicial.trim().equals("")) {
dataEmissaoInicialFormatada = Util
.converteStringParaDate(dataEmissaoInicial);
anoMesDataEmissaoInicial = Util
.recuperaAnoMesDaData(dataEmissaoInicialFormatada);
}
Date dataEmissaoFinalFormatada = null;
Integer anoMesDataEmissaoFinal = null;
if (dataEmissaoFinal != null && !dataEmissaoFinal.trim().equals("")) {
dataEmissaoFinalFormatada = Util
.converteStringParaDate(dataEmissaoFinal);
anoMesDataEmissaoFinal = Util
.recuperaAnoMesDaData(dataEmissaoFinalFormatada);
}
if (dataEmissaoFinalFormatada != null
&& Util.compararAnoMesReferencia(anoMesDataEmissaoFinal,
anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.data.posterior.ano.mes.faturamento",
"Emiss�o", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if (dataEmissaoInicialFormatada != null
&& Util.compararAnoMesReferencia(anoMesDataEmissaoInicial,
anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.data.posterior.ano.mes.faturamento",
"Emiss�o", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if ((dataEmissaoInicial != null && !dataEmissaoInicial.equals(""))
&& ((dataEmissaoFinal != null && !dataEmissaoFinal
.equals("")))) {
filtroGuiaDevolucao
.adicionarParametro(new Intervalo(
FiltroGuiaDevolucao.DATA_EMISSAO,
dataEmissaoInicialFormatada,
dataEmissaoFinalFormatada));
} else if ((dataEmissaoInicial != null && !dataEmissaoInicial
.equals(""))) {
String anoMesPesquisa = Util.somaMesAnoMesReferencia(
anoMesFaturamento, 1).toString();
String ano = anoMesPesquisa.substring(0, 4);
String mes = anoMesPesquisa.substring(4, 6);
Date dataPesquisa = Util.converteStringParaDate("01/" + mes
+ "/" + ano);
filtroGuiaDevolucao.adicionarParametro(new MaiorQue(
FiltroGuiaDevolucao.DATA_EMISSAO,
dataEmissaoInicialFormatada));
filtroGuiaDevolucao.adicionarParametro(new MenorQue(
FiltroGuiaDevolucao.DATA_EMISSAO, dataPesquisa));
} else {
filtroGuiaDevolucao.adicionarParametro(new MenorQue(
FiltroGuiaDevolucao.DATA_EMISSAO,
dataEmissaoFinalFormatada));
}
}
// Per�odo Data Validade
if ((dataValidadeInicial != null && !dataValidadeInicial.equals(""))
|| (dataValidadeFinal != null && !dataValidadeFinal.equals(""))) {
peloMenosUmParametroInformado = true;
Date dataValidadeInicialFormatada = null;
Integer anoMesDataValidadeInicial = null;
if (dataValidadeInicial != null
&& !dataValidadeInicial.trim().equals("")) {
dataValidadeInicialFormatada = Util
.converteStringParaDate(dataValidadeInicial);
anoMesDataValidadeInicial = Util
.recuperaAnoMesDaData(dataValidadeInicialFormatada);
}
Date dataValidadeFinalFormatada = null;
Integer anoMesDataValidadeFinal = null;
if (dataValidadeFinal != null
&& !dataValidadeFinal.trim().equals("")) {
dataValidadeFinalFormatada = Util
.converteStringParaDate(dataValidadeFinal);
anoMesDataValidadeFinal = Util
.recuperaAnoMesDaData(dataValidadeFinalFormatada);
}
if (dataValidadeFinalFormatada != null
&& Util.compararAnoMesReferencia(anoMesDataValidadeFinal,
anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.data.posterior.ano.mes.faturamento",
"Validade", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if (dataValidadeInicialFormatada != null
&& Util.compararAnoMesReferencia(anoMesDataValidadeInicial,
anoMesFaturamento, ">")) {
throw new ActionServletException(
"atencao.ano.mes.data.posterior.ano.mes.faturamento",
"Validade", Util.formatarAnoMesParaMesAno(anoMesFaturamento));
}
if ((dataValidadeInicial != null && !dataValidadeInicial.equals(""))
&& ((dataValidadeFinal != null && !dataValidadeFinal
.equals("")))) {
filtroGuiaDevolucao.adicionarParametro(new Intervalo(
FiltroGuiaDevolucao.DATA_VALIDADE,
dataValidadeInicialFormatada,
dataValidadeFinalFormatada));
} else if ((dataValidadeInicial != null && !dataValidadeInicial
.equals(""))) {
String anoMesPesquisa = Util.somaMesAnoMesReferencia(
anoMesFaturamento, 1).toString();
String ano = anoMesPesquisa.substring(0, 4);
String mes = anoMesPesquisa.substring(4, 6);
Date dataPesquisa = Util.converteStringParaDate("01/" + mes
+ "/" + ano);
filtroGuiaDevolucao.adicionarParametro(new MaiorQue(
FiltroGuiaDevolucao.DATA_VALIDADE,
dataValidadeInicialFormatada));
filtroGuiaDevolucao.adicionarParametro(new MenorQue(
FiltroGuiaDevolucao.DATA_VALIDADE, dataPesquisa));
} else {
filtroGuiaDevolucao.adicionarParametro(new MenorQue(
FiltroGuiaDevolucao.DATA_VALIDADE,
dataValidadeFinalFormatada));
}
}
// Tipo de Cr�dito
int i = 0;
if (idsCreditosTipos != null) {
while (i < idsCreditosTipos.length) {
if (!idsCreditosTipos[i].equals("")
&& !idsCreditosTipos[i].equals(""
+ ConstantesSistema.NUMERO_NAO_INFORMADO)) {
peloMenosUmParametroInformado = true;
if (i + 1 < idsCreditosTipos.length) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.CREDITO_TIPO_ID,
idsCreditosTipos[i],
ConectorOr.CONECTOR_OR,
(idsCreditosTipos.length)));
} else {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.CREDITO_TIPO_ID,
idsCreditosTipos[i]));
}
}
i++;
}
}
i = 0;
if (idsTipoDebito != null) {
while (i < idsTipoDebito.length) {
if (!idsTipoDebito[i].equals("")
&& !idsTipoDebito[i].equals(""
+ ConstantesSistema.NUMERO_NAO_INFORMADO)) {
peloMenosUmParametroInformado = true;
if (i + 1 < idsTipoDebito.length) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DEBITO_TIPO_ID,
idsTipoDebito[i],
ConectorOr.CONECTOR_OR,
(idsTipoDebito.length)));
} else {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.CREDITO_TIPO_ID,
idsTipoDebito[i]));
}
}
i++;
}
}
// Cliente
if (idCliente != null && !idCliente.trim().equalsIgnoreCase("")) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, idCliente));
filtroCliente
.adicionarCaminhoParaCarregamentoEntidade("clienteTipo");
filtroCliente.adicionarCaminhoParaCarregamentoEntidade("profissao");
filtroCliente
.adicionarCaminhoParaCarregamentoEntidade("ramoAtividade");
Collection<Cliente> colecaoClientes = fachada.pesquisar(filtroCliente,
Cliente.class.getName());
if (colecaoClientes != null && !colecaoClientes.isEmpty()) {
Cliente cliente = ((List<Cliente>) colecaoClientes).get(0);
sessao.setAttribute("cliente", cliente);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Cliente");
}
peloMenosUmParametroInformado = true;
filtroGuiaDevolucao.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.CLIENTE_ID, idCliente));
i = 0;
if (idsDocumentosTipos != null) {
while (i < idsDocumentosTipos.length) {
if (!idsDocumentosTipos[i].equals("")
&& !idsDocumentosTipos[i].equals(""
+ ConstantesSistema.NUMERO_NAO_INFORMADO)) {
if (i + 1 < idsDocumentosTipos.length) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DOCUMENTO_TIPO_ID,
idsDocumentosTipos[i],
ConectorOr.CONECTOR_OR,
(idsDocumentosTipos.length)));
} else {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DOCUMENTO_TIPO_ID,
idsDocumentosTipos[i]));
}
// Cliente com Documento Tipo = Conta
if (idsDocumentosTipos[i].equals(DocumentoTipo.CONTA)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_CONTA_CLIENTE_CONTAS_CLIENTE_ID,
idCliente));
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_CONTA_DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
if (idTipoRelacao != null
&& !idTipoRelacao.trim().equalsIgnoreCase(
"")) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_CONTA_CLIENTE_CONTAS_CLIENTE_RELACAO_TIPO_ID,
idTipoRelacao));
}
}
// Cliente com Documento Tipo = Guia de Pagamento
else if (idsDocumentosTipos[i]
.equals(DocumentoTipo.GUIA_PAGAMENTO)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_GUIA_PAGAMENTO_CLIENTE_GUIA_PAGAMENTO_CLIENTE_ID,
idCliente));
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_GUIA_PAGAMENTO_DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
if (idTipoRelacao != null
&& !idTipoRelacao.trim().equalsIgnoreCase(
"")) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_GUIA_PAGAMENTO_CLIENTE_GUIA_PAGAMENTO_CLIENTE_RELACAO_TIPO_ID,
idTipoRelacao));
} else {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_GUIA_PAGAMENTO_CLIENTE_ID,
idCliente));
}
}
// Cliente com Documento Tipo = D�bito a Cobrar
else if (idsDocumentosTipos[i]
.equals(DocumentoTipo.DEBITO_A_COBRAR)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_DEBITO_A_COBRAR_IMOVEL_CLIENTE_IMOVEIS_CLIENTE_ID,
idCliente));
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_DEBITO_A_COBRAR_DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
if (idTipoRelacao != null
&& !idTipoRelacao.trim().equalsIgnoreCase(
"")) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_DEBITO_A_COBRAR_IMOVEL_CLIENTE_IMOVEIS_CLIENTE_RELACAO_TIPO_ID,
idTipoRelacao));
}
} else if (idsDocumentosTipos[i]
.equals(DocumentoTipo.DEVOLUCAO_VALOR)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
}
}
i++;
}
} else {
if (idTipoRelacao != null
&& !idTipoRelacao.equals("")
&& !idTipoRelacao.equals(""
+ ConstantesSistema.NUMERO_NAO_INFORMADO)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_CONTA_CLIENTE_CONTAS_CLIENTE_RELACAO_TIPO_ID,
idTipoRelacao, ConectorOr.CONECTOR_OR));
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_GUIA_PAGAMENTO_CLIENTE_GUIA_PAGAMENTO_CLIENTE_RELACAO_TIPO_ID,
idTipoRelacao, ConectorOr.CONECTOR_OR));
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimplesColecao(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_DEBITO_A_COBRAR_IMOVEL_CLIENTE_IMOVEIS_CLIENTE_RELACAO_TIPO_ID,
idTipoRelacao));
}
}
sessao.removeAttribute("filtroGuiaDevolucaoImovel");
sessao.setAttribute("filtroGuiaDevolucaoCliente",
filtroGuiaDevolucao);
}
// Im�vel
if (idImovel != null && !idImovel.trim().equalsIgnoreCase("")) {
peloMenosUmParametroInformado = true;
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, idImovel));
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
.adicionarCaminhoParaCarregamentoEntidade("ligacaoAguaSituacao");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("ligacaoEsgotoSituacao");
Collection<Imovel> colecaoImoveis = fachada.pesquisar(filtroImovel,
Imovel.class.getName());
if (colecaoImoveis != null && !colecaoImoveis.isEmpty()) {
Imovel imovel = ((List<Imovel>) colecaoImoveis).get(0);
sessao.setAttribute("imovel", imovel);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Matr�cula");
}
filtroGuiaDevolucao.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.IMOVEL_ID, idImovel));
i = 0;
if (idsDocumentosTipos != null) {
while (i < idsDocumentosTipos.length) {
if (!idsDocumentosTipos[i].equals("")
&& !idsDocumentosTipos[i].equals(""
+ ConstantesSistema.NUMERO_NAO_INFORMADO)) {
if (i + 1 < idsDocumentosTipos.length) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DOCUMENTO_TIPO_ID,
idsDocumentosTipos[i],
ConectorOr.CONECTOR_OR,
(idsDocumentosTipos.length)));
} else {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DOCUMENTO_TIPO_ID,
idsDocumentosTipos[i]));
}
// Im�vel com Documento Tipo = Conta
if (idsDocumentosTipos[i].equals(DocumentoTipo.CONTA)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_CONTA_DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
}
// Im�vel com Documento Tipo = Guia de Pagamento
else if (idsDocumentosTipos[i]
.equals(DocumentoTipo.GUIA_PAGAMENTO)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_GUIA_PAGAMENTO_DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
}
// Im�vel com Documento Tipo = D�bito a Cobrar
else if (idsDocumentosTipos[i]
.equals(DocumentoTipo.DEBITO_A_COBRAR)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.GUIA_DEVOLUCAO_DEBITO_A_COBRAR_DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
// Im�vel com Documento Tipo = Devolu��o de Valor
} else if (idsDocumentosTipos[i]
.equals(DocumentoTipo.DEVOLUCAO_VALOR)) {
filtroGuiaDevolucao
.adicionarParametro(new ParametroSimples(
FiltroGuiaDevolucao.DEBITO_CREDITO_SITUACAO_ATUAL_ID,
DebitoCreditoSituacao.NORMAL));
}
}
i++;
}
}
sessao.removeAttribute("filtroGuiaDevolucaoCliente");
sessao.setAttribute("filtroGuiaDevolucaoImovel",
filtroGuiaDevolucao);
}
// Erro caso o usu�rio mandou filtrar sem nenhum par�metro
if (!peloMenosUmParametroInformado) {
throw new ActionServletException(
"atencao.filtro.nenhum_parametro_informado");
}
if ((idCliente == null || idCliente.equals(""))
&& (idImovel == null || idImovel.equals(""))) {
throw new ActionServletException("atencao.informe.imovel.cliente");
}
// Devolve o mapeamento de retorno
return retorno;
}
}