package gcom.gui.relatorio.faturamento;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.cliente.FiltroEsferaPoder;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.fachada.Fachada;
import gcom.faturamento.conta.ContaMotivoRevisao;
import gcom.faturamento.conta.FiltroContaMotivoRevisao;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* Action que faz a exibi��o da tela para o usu�rio setar os par�metros
* necess�rio para a gera��o do relat�rio
*
* [UC0635] Gerar Relat�rios de Contas em Revis�o
*
* @author Rafael Corr�a
* @since 20/09/2007
*/
public class ExibirGerarRelatorioContasEmRevisaoAction extends GcomAction {
/**
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioContasEmRevisao");
GerarRelatorioContasEmRevisaoActionForm gerarRelatorioContasEmRevisaoActionForm = (GerarRelatorioContasEmRevisaoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
String parametroIdGerenciaRegional = httpServletRequest.getParameter("idGerenciaRegional");
if (parametroIdGerenciaRegional != null) {
if (parametroIdGerenciaRegional.equals("-1")) {
gerarRelatorioContasEmRevisaoActionForm.setIdGerenciaRegional(null);
} else {
gerarRelatorioContasEmRevisaoActionForm.setIdGerenciaRegional(parametroIdGerenciaRegional);
}
}
// Carrega as cole��es que ser�o exibidas na tela
// Ger�ncia Regional
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.INDICADOR_USO, ConstantesSistema.SIM));
Collection colecaoGerenciaRegional = fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
sessao.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional);
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
if ( gerarRelatorioContasEmRevisaoActionForm.getIdGerenciaRegional() != null &&
!gerarRelatorioContasEmRevisaoActionForm.getIdGerenciaRegional().trim().equals("")) {
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(
FiltroUnidadeNegocio.GERENCIA, gerarRelatorioContasEmRevisaoActionForm.getIdGerenciaRegional()));
}
Collection colecaoUnidadeNegocio = fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
sessao.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio);
// Motivo de Revis�o
FiltroContaMotivoRevisao filtroContaMotivoRevisao = new FiltroContaMotivoRevisao();
Collection colecaoContaMotivoRevisao = fachada.pesquisar(filtroContaMotivoRevisao, ContaMotivoRevisao.class.getName());
sessao.setAttribute("colecaoContaMotivoRevisao", colecaoContaMotivoRevisao);
// Perfil do Im�vel
FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil();
Collection colecaoImovelPerfil = fachada.pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName());
sessao.setAttribute("colecaoImovelPerfil", colecaoImovelPerfil);
// Categoria
FiltroCategoria filtroCategoria = new FiltroCategoria();
Collection colecaoCategoria = fachada.pesquisar(filtroCategoria, Categoria.class.getName());
sessao.setAttribute("colecaoCategoria", colecaoCategoria);
// Esfera Poder
FiltroEsferaPoder filtroEsferaPoder = new FiltroEsferaPoder();
Collection colecaoEsferaPoder = fachada.pesquisar(filtroEsferaPoder, EsferaPoder.class.getName());
sessao.setAttribute("colecaoEsferaPoder", colecaoEsferaPoder);
// Valida a parte de quando o usu�rio pesquisa pelo enter
// Elo
// String idElo = gerarRelatorioContasEmRevisaoActionForm
// .getIdElo();
//
// if (idElo != null && !idElo.equals("")) {
// FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
//
// filtroLocalidade.adicionarParametro(new ParametroSimples(
// FiltroLocalidade.ID, idElo));
// filtroLocalidade.adicionarParametro(new ParametroSimples(
// FiltroLocalidade.ID_ELO, idElo));
//
// Collection colecaoElos = fachada.pesquisar(filtroLocalidade,
// Localidade.class.getName());
//
// if (colecaoElos != null && !colecaoElos.isEmpty()) {
// Localidade localidade = (Localidade) Util
// .retonarObjetoDeColecao(colecaoElos);
//
// gerarRelatorioContasEmRevisaoActionForm
// .setIdElo(localidade.getId().toString());
// gerarRelatorioContasEmRevisaoActionForm
// .setNomeElo(localidade.getDescricao());
// httpServletRequest.setAttribute("nomeCampo", "idLocalidadeInicial");
//
// } else {
// gerarRelatorioContasEmRevisaoActionForm.setIdElo("");
// gerarRelatorioContasEmRevisaoActionForm
// .setNomeElo("Elo Inexistente");
//
// httpServletRequest.setAttribute("idEloNaoEncontrado",
// "true");
//
// httpServletRequest.setAttribute("nomeCampo", "idElo");
// }
// }
// Localidade Inicial
String idLocalidadeInicial = gerarRelatorioContasEmRevisaoActionForm
.getIdLocalidadeInicial();
if (idLocalidadeInicial != null && !idLocalidadeInicial.equals("")) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idLocalidadeInicial));
Collection colecaoLocalidades = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoLocalidades != null && !colecaoLocalidades.isEmpty()) {
Localidade localidade = (Localidade) Util
.retonarObjetoDeColecao(colecaoLocalidades);
gerarRelatorioContasEmRevisaoActionForm
.setIdLocalidadeInicial(localidade.getId().toString());
gerarRelatorioContasEmRevisaoActionForm
.setNomeLocalidadeInicial(localidade.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "idLocalidadeFinal");
} else {
gerarRelatorioContasEmRevisaoActionForm.setIdLocalidadeInicial("");
gerarRelatorioContasEmRevisaoActionForm
.setNomeLocalidadeInicial("Localidade Inexistente");
httpServletRequest.setAttribute("idLocalidadeInicialNaoEncontrada",
"true");
httpServletRequest.setAttribute("nomeCampo", "idLocalidadeInicial");
}
}
// Localidade Final
String idLocalidadeFinal = gerarRelatorioContasEmRevisaoActionForm
.getIdLocalidadeFinal();
if (idLocalidadeFinal != null && !idLocalidadeFinal.equals("")) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idLocalidadeFinal));
Collection colecaoLocalidades = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoLocalidades != null && !colecaoLocalidades.isEmpty()) {
Localidade localidade = (Localidade) Util
.retonarObjetoDeColecao(colecaoLocalidades);
gerarRelatorioContasEmRevisaoActionForm
.setIdLocalidadeFinal(localidade.getId().toString());
gerarRelatorioContasEmRevisaoActionForm
.setNomeLocalidadeFinal(localidade.getDescricao());
} else {
gerarRelatorioContasEmRevisaoActionForm.setIdLocalidadeFinal("");
gerarRelatorioContasEmRevisaoActionForm
.setNomeLocalidadeFinal("Localidade Inexistente");
httpServletRequest.setAttribute("idLocalidadeFinalNaoEncontrada",
"true");
httpServletRequest.setAttribute("nomeCampo", "idLocalidadeFinal");
}
}
String codigoSetorComercialInicial = gerarRelatorioContasEmRevisaoActionForm.getCodigoSetorComercialInicial();
if (codigoSetorComercialInicial != null && !codigoSetorComercialInicial.equals("") &&
idLocalidadeInicial != null && !idLocalidadeInicial.equals("")) {
FiltroSetorComercial filtro = new FiltroSetorComercial();
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercialInicial));
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, idLocalidadeInicial));
Collection pesquisa = (Collection) fachada.pesquisar(filtro, SetorComercial.class.getName());
if (pesquisa != null && !pesquisa.isEmpty()) {
SetorComercial inicial = (SetorComercial) Util.retonarObjetoDeColecao(pesquisa);
gerarRelatorioContasEmRevisaoActionForm.setCodigoSetorComercialInicial(inicial.getCodigo() + "");
gerarRelatorioContasEmRevisaoActionForm.setNomeSetorComercialInicial(inicial.getDescricao());
} else {
gerarRelatorioContasEmRevisaoActionForm.setCodigoSetorComercialInicial("");
gerarRelatorioContasEmRevisaoActionForm.setNomeSetorComercialInicial("SETOR COMERCIAL INEXISTENTE");
httpServletRequest.setAttribute("setorComercialInicialInexistente",true);
}
} else {
gerarRelatorioContasEmRevisaoActionForm.setCodigoSetorComercialInicial("");
gerarRelatorioContasEmRevisaoActionForm.setNomeSetorComercialInicial("");
}
String codigoSetorComercialFinal = gerarRelatorioContasEmRevisaoActionForm.getCodigoSetorComercialFinal();
if (codigoSetorComercialFinal != null && !codigoSetorComercialFinal.equals("") &&
idLocalidadeFinal != null && !idLocalidadeFinal.equals("")) {
FiltroSetorComercial filtro = new FiltroSetorComercial();
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercialFinal));
filtro.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, idLocalidadeFinal));
Collection pesquisa = (Collection) fachada.pesquisar(filtro, SetorComercial.class.getName());
if (pesquisa != null && !pesquisa.isEmpty()) {
SetorComercial Final = (SetorComercial) Util.retonarObjetoDeColecao(pesquisa);
gerarRelatorioContasEmRevisaoActionForm.setCodigoSetorComercialFinal(Final.getCodigo() + "");
gerarRelatorioContasEmRevisaoActionForm.setNomeSetorComercialFinal(Final.getDescricao());
} else {
gerarRelatorioContasEmRevisaoActionForm.setCodigoSetorComercialFinal("");
gerarRelatorioContasEmRevisaoActionForm.setNomeSetorComercialFinal("SETOR COMERCIAL INEXISTENTE");
httpServletRequest.setAttribute("setorComercialFinalInexistente",true);
}
} else {
gerarRelatorioContasEmRevisaoActionForm.setCodigoSetorComercialFinal("");
gerarRelatorioContasEmRevisaoActionForm.setNomeSetorComercialFinal("");
}
return retorno;
}
}