package gcom.gui.relatorio.faturamento;
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.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.gui.ActionServletException;
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;
/**
* [UC1129] Gerar Relat�rio Devolu��o dos Pagamentos em Duplicidade
*
* @author Hugo Leonardo
*
* @date 10/03/2011
*/
public class ExibirGerarRelatorioDevolucaoPagamentosDuplicidadeAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioDevolucaoPagamentosDuplicidadeAction");
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form =
(GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
// Primeira vez que carrega a pagina
if ( httpServletRequest.getParameter("menu") != null &&
httpServletRequest.getParameter("menu").equals("sim")) {
//form.setSituacaoUsuario("0");
}
this.pesquisarGerencia(httpServletRequest,form);
this.pesquisarUnidadeNegocio(httpServletRequest,form);
this.pesquisarPerfilImovel(httpServletRequest,form);
this.pesquisarCategoriaImovel(httpServletRequest,form);
// Seta os request�s encontrados
if ( httpServletRequest.getParameter("validar") != null &&
httpServletRequest.getParameter("validar").equals("localidade")) {
this.validarLocalidade(httpServletRequest, form, sessao);
}
// Pega os codigos que o usuario digitou para a pesquisa direta da Localidade
if (form.getIdLocalidade() != null && !form.getIdLocalidade().trim().equals("")) {
this.pesquisarLocalidade( httpServletRequest, form);
}
return retorno;
}
private void pesquisarGerencia(HttpServletRequest httpServletRequest,
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.setConsultaSemLimites(true);
filtroGerenciaRegional.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME);
Collection colecaoGerenciaRegional =
this.getFachada().pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
if ( Util.isVazioOrNulo(colecaoGerenciaRegional)) {
throw new ActionServletException("atencao.naocadastrado", null, "Ger�ncia Regional");
} else {
httpServletRequest.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional);
}
}
private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest,
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form){
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
if(form.getIdGerencia() != null && !form.getIdGerencia().equals("-1")){
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.GERENCIA,
new Integer(form.getIdGerencia())));
}
filtroUnidadeNegocio.setConsultaSemLimites(true);
filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME);
filtroUnidadeNegocio.adicionarParametro(
new ParametroSimples(FiltroUnidadeNegocio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoUnidadeNegocio =
this.getFachada().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
if ( Util.isVazioOrNulo(colecaoUnidadeNegocio)) {
throw new ActionServletException("atencao.naocadastrado", null, "Unidade Neg�cio");
} else {
httpServletRequest.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio);
}
}
private void validarLocalidade(HttpServletRequest httpServletRequest,
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form, HttpSession sessao){
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, form.getIdLocalidade()));
Collection<Localidade> localidadePesquisada = this.getFachada().pesquisar(
filtroLocalidade, Localidade.class.getName());
// Se nenhum usu�rio for encontrado a mensagem � enviada para a p�gina
if ( !Util.isVazioOrNulo(localidadePesquisada)) {
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(localidadePesquisada);
if(form.getIdGerencia() != null && !form.getIdGerencia().equals("-1")
&& localidade.getGerenciaRegional().getId().compareTo(new Integer(form.getIdGerencia())) != 0){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.ID,
form.getIdGerencia()));
Collection colecaoGerencia =
this.getFachada().pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
GerenciaRegional gerenciaRegional = (GerenciaRegional)Util.retonarObjetoDeColecao(colecaoGerencia);
form.setIdLocalidade("");
form.setNomeLocalidade("");
httpServletRequest.setAttribute("limpar", "localidade");
throw new ActionServletException("atencao.localidade_nao_percente_gerencia_regional", null, gerenciaRegional.getNome());
}
if(form.getIdUnidadeNegocio() != null && !form.getIdUnidadeNegocio().equals("-1")
&& localidade.getUnidadeNegocio().getId().compareTo(new Integer(form.getIdUnidadeNegocio())) != 0){
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.adicionarParametro(
new ParametroSimples(FiltroUnidadeNegocio.ID, form.getIdUnidadeNegocio()));
Collection colecaoUnidadeNegocio =
this.getFachada().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
UnidadeNegocio unidadeNegocio = (UnidadeNegocio)Util.retonarObjetoDeColecao(colecaoUnidadeNegocio);
form.setIdLocalidade("");
form.setNomeLocalidade("");
httpServletRequest.setAttribute("limpar", "localidade");
throw new ActionServletException("atencao.localidade_nao_percente_unidade_negocio", null, unidadeNegocio.getNome());
}
}
}
private void pesquisarPerfilImovel(HttpServletRequest httpServletRequest,
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form){
FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil();
filtroImovelPerfil.setConsultaSemLimites(true);
filtroImovelPerfil.setCampoOrderBy(FiltroImovelPerfil.DESCRICAO);
filtroImovelPerfil.adicionarParametro(
new ParametroSimples(FiltroImovelPerfil.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoImovelPerfil =
this.getFachada().pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName());
if ( Util.isVazioOrNulo(colecaoImovelPerfil)) {
throw new ActionServletException("atencao.naocadastrado", null, "Im�vel Perfil");
} else {
httpServletRequest.setAttribute("colecaoImovelPerfil", colecaoImovelPerfil);
}
}
private void pesquisarCategoriaImovel(HttpServletRequest httpServletRequest,
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form){
FiltroCategoria filtroCategoria = new FiltroCategoria();
filtroCategoria.setConsultaSemLimites(true);
filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO);
filtroCategoria.adicionarParametro(
new ParametroSimples( FiltroCategoria.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoCategoria =
this.getFachada().pesquisar(filtroCategoria, Categoria.class.getName());
if ( Util.isVazioOrNulo(colecaoCategoria)) {
throw new ActionServletException("atencao.naocadastrado", null, "Categoria");
} else {
httpServletRequest.setAttribute("colecaoCategoria", colecaoCategoria);
}
}
private void pesquisarLocalidade(HttpServletRequest httpServletRequest,
GerarRelatorioDevolucaoPagamentosDuplicidadeActionForm form) {
// Pesquisa a usu�rio na base
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, form.getIdLocalidade()));
if(form.getIdUnidadeNegocio() != null && !form.getIdUnidadeNegocio().equals("-1")){
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.UNIDADE_NEGOCIO_ID,
new Integer(form.getIdUnidadeNegocio())));
}
if(form.getIdGerencia() != null && !form.getIdGerencia().equals("-1")){
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID_GERENCIA,
new Integer(form.getIdGerencia())));
}
Collection<Localidade> localidadePesquisada = this.getFachada().pesquisar(
filtroLocalidade, Localidade.class.getName());
// Se nenhum usu�rio for encontrado a mensagem � enviada para a p�gina
if ( !Util.isVazioOrNulo(localidadePesquisada)) {
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(localidadePesquisada);
form.setIdLocalidade("" + localidade.getId());
form.setNomeLocalidade( localidade.getDescricao());
} else {
form.setIdLocalidade("");
form.setNomeLocalidade("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeInexistente",true);
httpServletRequest.setAttribute("nomeCampo", "idLocalidade");
}
}
}