package gcom.gui.relatorio.gerencial.micromedicao;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.gerencial.cadastro.localidade.FiltroGLocalidade;
import gcom.gerencial.cadastro.localidade.GLocalidade;
import gcom.gui.ActionServletException;
import gcom.operacional.DistritoOperacional;
import gcom.operacional.FiltroDistritoOperacional;
import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio;
import gcom.relatorio.gerencial.micromedicao.FiltrarRelatorioResumoDistritoOperacionalHelper;
import gcom.relatorio.gerencial.micromedicao.RelatorioResumoDistritoOperacional;
import gcom.relatorio.gerencial.micromedicao.RelatorioResumoZonaAbastecimento;
import gcom.tarefa.TarefaRelatorio;
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;
public class GerarRelatorioResumoDistritoOperacionalAction extends
ExibidorProcessamentoTarefaRelatorio {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = null;
GerarRelatorioResumoDistritoOperacionalActionForm form = (GerarRelatorioResumoDistritoOperacionalActionForm) actionForm;
FiltrarRelatorioResumoDistritoOperacionalHelper filtro = new FiltrarRelatorioResumoDistritoOperacionalHelper();
httpServletRequest.setAttribute("telaSucessoRelatorio",true);
// Ger�ncia Regional
if (form.getGerenciaRegional() != null
&& !form.getGerenciaRegional().equals(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.ID, form.getGerenciaRegional()));
Collection colecaoGerenciaRegional = this.getFachada().pesquisar(
filtroGerenciaRegional, GerenciaRegional.class.getName());
GerenciaRegional gerencia = (GerenciaRegional) Util
.retonarObjetoDeColecao(colecaoGerenciaRegional);
filtro.setGerenciaRegional(gerencia.getId().toString());
filtro.setDescGerenciaRegional(gerencia.getNome());
}
// Unidade de Negocio
if (form.getUnidadeNegocio() != null
&& !form.getUnidadeNegocio().equals(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.setConsultaSemLimites(true);
filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME);
if (form.getGerenciaRegional() != null
&& !form.getGerenciaRegional().equals(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(
FiltroUnidadeNegocio.ID, form.getUnidadeNegocio()));
}
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(
FiltroUnidadeNegocio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoUnidadeNegocio = this.getFachada().pesquisar(
filtroUnidadeNegocio, UnidadeNegocio.class.getName());
UnidadeNegocio unidade = (UnidadeNegocio) Util
.retonarObjetoDeColecao(colecaoUnidadeNegocio);
filtro.setUnidadeNegocio(unidade.getId().toString());
filtro.setDescUnidadeNegocio(unidade.getNome());
}
// Distrito Operacinal
if (form.getDistritoOperacional() != null
&& !form.getDistritoOperacional().equals(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
FiltroDistritoOperacional filtroDistritoOperacional = new FiltroDistritoOperacional();
filtroDistritoOperacional
.adicionarParametro(new ParametroSimples(
FiltroDistritoOperacional.ID, form
.getDistritoOperacional()));
Collection colecaoDistritoOperacional = this.getFachada()
.pesquisar(filtroDistritoOperacional,
DistritoOperacional.class.getName());
DistritoOperacional distritoOperacional = (DistritoOperacional) Util
.retonarObjetoDeColecao(colecaoDistritoOperacional);
filtro.setDistritoOperacional(distritoOperacional.getId().toString());
filtro.setDescDistritoOperacional(distritoOperacional.getDescricao());
}
// Localidade Inicial
if (form.getLocalidadeInicial() != null
&& !form.getLocalidadeInicial().equals("")) {
FiltroGLocalidade filtroGLocalidade = new FiltroGLocalidade();
filtroGLocalidade.adicionarParametro(new ParametroSimples(
FiltroGLocalidade.ID, form.getLocalidadeInicial()));
Collection colecaoLocalidade = this.getFachada()
.pesquisarGerencial(filtroGLocalidade,
GLocalidade.class.getName());
if (colecaoLocalidade != null && colecaoLocalidade.isEmpty()) {
throw new ActionServletException(
"pesquisa.localidade.inexistente");
} else {
GLocalidade glocalidade = (GLocalidade) Util
.retonarObjetoDeColecao(colecaoLocalidade);
filtro.setLocalidadeInicial(glocalidade.getId());
filtro
.setNomeLocalidadeInicial(glocalidade
.getNomelocalidade());
}
}
// Setor Comercial Inicial
if (form.getSetorComercialInicial() != null
&& !form.getSetorComercialInicial().equals("")) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, form
.getSetorComercialInicial()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.LOCALIDADE, filtro.getLocalidadeInicial()));
Collection colecaoSetor = this.getFachada().pesquisar(
filtroSetorComercial, SetorComercial.class.getName());
if (colecaoSetor != null && colecaoSetor.isEmpty()) {
throw new ActionServletException(
"atencao.setor_comercial.inexistente");
} else {
SetorComercial setorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoSetor);
filtro.setSetorComercialInicial(setorComercial.getId());
filtro.setCodigoSetorComercialInicial(setorComercial.getCodigo());
}
}
// Localidade Final
if (form.getLocalidadeFinal() != null
&& !form.getLocalidadeFinal().equals("")) {
FiltroGLocalidade filtroGLocalidade = new FiltroGLocalidade();
filtroGLocalidade.adicionarParametro(new ParametroSimples(
FiltroGLocalidade.ID, form.getLocalidadeFinal()));
Collection colecaoLocalidade = this.getFachada()
.pesquisarGerencial(filtroGLocalidade,
GLocalidade.class.getName());
if (colecaoLocalidade != null && colecaoLocalidade.isEmpty()) {
throw new ActionServletException(
"pesquisa.localidade.inexistente");
} else {
GLocalidade glocalidade = (GLocalidade) Util
.retonarObjetoDeColecao(colecaoLocalidade);
filtro.setLocalidadeFinal(glocalidade.getId());
filtro.setNomeLocalidadeFinal(glocalidade.getNomelocalidade());
}
}
// Setor Comercial Final
if (form.getSetorComercialFinal() != null
&& !form.getSetorComercialFinal().equals("")) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, form
.getSetorComercialFinal()));
Collection colecaoSetor = this.getFachada().pesquisar(
filtroSetorComercial, SetorComercial.class.getName());
if (colecaoSetor != null && colecaoSetor.isEmpty()) {
throw new ActionServletException(
"atencao.setor_comercial.inexistente");
} else {
SetorComercial setorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoSetor);
filtro.setSetorComercialFinal(setorComercial.getId());
filtro.setCodigoSetorComercialFinal(setorComercial.getCodigo());
}
}
// Referencia
if (form.getMesAno() != null && !form.getMesAno().equals("")) {
filtro.setMesAno(Util.formatarMesAnoComBarraParaAnoMes(
form.getMesAno()).toString());
}
// Tipo
if (form.getTipo() != null && !form.getTipo().equals("")) {
filtro.setTipo(form.getTipo());
}
String tipoRelatorio = null;
if (form.getTipo().equals("A")) {
RelatorioResumoDistritoOperacional relatorioA = new RelatorioResumoDistritoOperacional(
this.getUsuarioLogado(httpServletRequest));
relatorioA.addParametro(
"filtrarRelatorioResumoDistritoOperacionalHelper", filtro);
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorioA.addParametro("tipoFormatoRelatorio", Integer
.parseInt(tipoRelatorio));
retorno = processarExibicaoRelatorio(relatorioA, tipoRelatorio,
httpServletRequest, httpServletResponse, actionMapping);
} else if (form.getTipo().equals("D")) {
RelatorioResumoZonaAbastecimento relatorioD = new RelatorioResumoZonaAbastecimento(
this.getUsuarioLogado(httpServletRequest));
relatorioD.addParametro(
"filtrarRelatorioResumoDistritoOperacionalHelper", filtro);
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorioD.addParametro("tipoFormatoRelatorio", Integer
.parseInt(tipoRelatorio));
retorno = processarExibicaoRelatorio(relatorioD, tipoRelatorio,
httpServletRequest, httpServletResponse, actionMapping);
}
return retorno;
}
}