package gcom.gui.relatorio.financeiro;
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 org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Pr�-processamento da primeira p�gina de
* [UC0717] Gerar Relat�rio do Saldo do Contas a Receber Cont�bil
*
*/
public class ExibirGerarRelatorioSaldoContasAReceberContabilAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioSaldoContasAReceberContabil");
Fachada fachada = Fachada.getInstancia();
//ActionForm
GerarRelatorioSaldoContasAReceberContabilActionForm form =
(GerarRelatorioSaldoContasAReceberContabilActionForm) actionForm;
//Gerencia Regional
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
Collection<GerenciaRegional> gerenciasRegionais = fachada.pesquisar(
filtroGerenciaRegional, GerenciaRegional.class.getName());
httpServletRequest.setAttribute("colecaoGerenciaRegional",gerenciasRegionais);
//Unidade de Negocio
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);
}
// Localidade
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,
GerarRelatorioSaldoContasAReceberContabilActionForm 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,
GerarRelatorioSaldoContasAReceberContabilActionForm 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");
}
}
}