package gcom.gui.relatorio.arrecadacao;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
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.GcomAction;
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;
/**
* Pr�-processamento da primeira p�gina de [UC0345] Gerar Relat�rio de Resumo do
* Arrecadacao
*
* @author Vivianne Sousa
*/
public class ExibirGerarRelatorioResumoArrecadacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioResumoArrecadacao");
GerarRelatorioResumoArrecadacaoActionForm form =
(GerarRelatorioResumoArrecadacaoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME);
Collection<GerenciaRegional> gerenciasRegionais = fachada.pesquisar(
filtroGerenciaRegional, GerenciaRegional.class.getName());
sessao.setAttribute("colecaoGerenciaRegional", gerenciasRegionais);
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME);
Collection<UnidadeNegocio> colecaoUnidadeNegocio = fachada.pesquisar(
filtroUnidadeNegocio, UnidadeNegocio.class.getName());
httpServletRequest.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio);
String pesquisarLocalidade = httpServletRequest.getParameter("pesquisarLocalidade");
// Pesquisando a Localidade pelo c�digo que o usu�rio digitou
if(pesquisarLocalidade != null && pesquisarLocalidade.equalsIgnoreCase("OK")){
String codigoLocalidade = form.getCodigoLocalidade();
if (codigoLocalidade != null && !codigoLocalidade.trim().equals("")) {
pesquisarLocalidade(httpServletRequest, form);
}
// Localidade
if (form.getCodigoLocalidade() != null &&
!form.getCodigoLocalidade().equals("") &&
form.getDescricaoLocalidade() != null &&
!form.getDescricaoLocalidade().equals("")) {
httpServletRequest.setAttribute("localidadeEncontrada", true);
}
}
String pesquisarMunicipio = httpServletRequest.getParameter("pesquisarMunicipio");
//Pesquisando o munic�pio pelo c�digo que o usu�rio digitou
if(pesquisarMunicipio != null && pesquisarMunicipio.equalsIgnoreCase("OK")){
String codigoMunicipio = form.getCodigoMunicipio();
if (codigoMunicipio != null && !codigoMunicipio.trim().equals("")) {
pesquisarMunicipio(httpServletRequest, form);
}
// Munic�pio
if (form.getCodigoMunicipio() != null &&
!form.getCodigoMunicipio().equals("") &&
form.getDescricaoMunicipio() != null &&
!form.getDescricaoMunicipio().equals("")) {
httpServletRequest.setAttribute("municipioEncontrado", true);
}
}
return retorno;
}
/*
* M�todos que far�o a pesquisa da localidade ou do munic�pio
* informado pelo usu�rio (Pressionando a telca ENTER).
*/
private void pesquisarLocalidade(HttpServletRequest request,
GerarRelatorioResumoArrecadacaoActionForm form) {
Fachada fachada = Fachada.getInstancia();
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, form.getCodigoLocalidade()));
Collection pesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
if (pesquisa != null && !pesquisa.isEmpty()) {
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(pesquisa);
form.setCodigoLocalidade("" + localidade.getId());
form.setDescricaoLocalidade(localidade.getDescricao());
} else {
form.setCodigoLocalidade("");
form.setDescricaoLocalidade("Localidade Inexistente");
}
}
private void pesquisarMunicipio(HttpServletRequest request,
GerarRelatorioResumoArrecadacaoActionForm form) {
Fachada fachada = Fachada.getInstancia();
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.ID, form.getCodigoMunicipio()));
Collection pesquisa = fachada.pesquisar(filtroMunicipio, Municipio.class.getName());
if (pesquisa != null && !pesquisa.isEmpty()) {
Municipio municipio = (Municipio) Util.retonarObjetoDeColecao(pesquisa);
form.setCodigoMunicipio("" + municipio.getId());
form.setDescricaoMunicipio(municipio.getNome());
} else {
form.setCodigoMunicipio("");
form.setDescricaoMunicipio("Munic�pio Inexistente");
}
}
}