package gcom.gui.relatorio.cadastro.micromedicao;
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.fachada.Fachada;
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 org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* [UC0997] Gerar Resumo de Liga��es por Capacidade de Hidr�metro
*
* @author Hugo Leonardo
*
* @date 29/03/2010
*/
public class ExibirGerarRelatorioResumoLigacoesCapacidadeHidrometroAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioResumoLigacoesCapacidadeHidrometroAction");
GerarRelatorioResumoLigacoesCapacidadeHidrometroActionForm form =
(GerarRelatorioResumoLigacoesCapacidadeHidrometroActionForm) actionForm;
//Primeira vez que carrega a pagina
if ( httpServletRequest.getParameter("menu") != null &&
httpServletRequest.getParameter("menu").equals("sim")) {
}
this.pesquisarGerenciaRegional(httpServletRequest,form);
this.pesquisarUnidadeNegocio(httpServletRequest,form);
//Seta os request�s encontrados
this.setaRequest(httpServletRequest,form);
// Pega os codigos que o usuario digitou para a pesquisa direta de
// localidade
if (form.getIdLocalidade() != null && !form.getIdLocalidade().trim().equals("")) {
pesquisarLocalidade( httpServletRequest, form);
}
return retorno;
}
private void setaRequest(HttpServletRequest httpServletRequest,
GerarRelatorioResumoLigacoesCapacidadeHidrometroActionForm form){
//Localidade Inicial
if(form.getIdLocalidade() != null &&
!form.getIdLocalidade().equals("") &&
form.getNomeLocalidade() != null &&
!form.getNomeLocalidade().equals("")){
httpServletRequest.setAttribute("localidadeEncontrada","true");
}
}
// -------[FS0002 - VERIFICAR EXISTENCIA DE DADOS] ---- LOCALIDADE
private void pesquisarLocalidade(HttpServletRequest httpServletRequest,
GerarRelatorioResumoLigacoesCapacidadeHidrometroActionForm form) {
Fachada fachada = Fachada.getInstancia();
// Pesquisa a localidade na base
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, form.getIdLocalidade()));
Collection<Localidade> localidadePesquisada = fachada.pesquisar(
filtroLocalidade, Localidade.class.getName());
// Se nenhuma localidade for encontrada a mensagem � enviada para a
// p�gina
if (localidadePesquisada != null && !localidadePesquisada.isEmpty()) {
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");
}
}
// -------[FS0001 - VERIFICAR EXISTENCIA DE DADOS] ---- UNIDADE DE NEGOCIO
private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest,
GerarRelatorioResumoLigacoesCapacidadeHidrometroActionForm form){
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
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 (colecaoUnidadeNegocio == null || colecaoUnidadeNegocio.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,"Unidade de Neg�cio");
} else {
httpServletRequest.setAttribute("colecaoUnidadeNegocio",colecaoUnidadeNegocio);
}
}
// -------[FS0001 - VERIFICAR EXISTENCIA DE DADOS] ---- GERENCIA REGIONAL
private void pesquisarGerenciaRegional(HttpServletRequest httpServletRequest,
GerarRelatorioResumoLigacoesCapacidadeHidrometroActionForm form){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.setConsultaSemLimites(true);
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME);
filtroGerenciaRegional.adicionarParametro(
new ParametroSimples(FiltroGerenciaRegional.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoGerenciaRegional =
this.getFachada().pesquisar(filtroGerenciaRegional,GerenciaRegional.class.getName());
if (colecaoGerenciaRegional == null || colecaoGerenciaRegional.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,"Ger�ncia Regional");
} else {
httpServletRequest.setAttribute("colecaoGerenciaRegional",colecaoGerenciaRegional);
}
}
}