package gcom.gui.relatorio.cobranca;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
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.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;
/**
* [UC0868]-Gerar Relat�rio de Pagamentos das Contas em Cobranca por Empresas
*
* @author R�mulo Aur�lio
* @date 08/01/2009
*/
public class ExibirGerarRelatorioPagamentosContasCobrancaEmpresaAction extends
GcomAction {
/**
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
@SuppressWarnings("unchecked")
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioPagamentosContasCobrancaEmpresaAction");
GerarRelatorioPagamentosContasCobrancaEmpresaActionForm form = (GerarRelatorioPagamentosContasCobrancaEmpresaActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
this.pesquisarCampoEnter(httpServletRequest, form, fachada);
if (httpServletRequest.getParameter("menu") != null) {
form.setOpcaoRelatorio(ConstantesSistema.INDICADOR_USO_ATIVO
.toString());
form.setOpcaoTotalizacao("estado");
}
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
Collection<GerenciaRegional> gerenciasRegionais = fachada.pesquisar(
filtroGerenciaRegional, GerenciaRegional.class.getName());
httpServletRequest.setAttribute("colecaoGerenciaRegional",
gerenciasRegionais);
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.setCampoOrderBy(FiltroUnidadeNegocio.NOME);
Collection<UnidadeNegocio> colecaoUnidadeNegocio = fachada.pesquisar(
filtroUnidadeNegocio, UnidadeNegocio.class.getName());
httpServletRequest.setAttribute("colecaoUnidadeNegocio",
colecaoUnidadeNegocio);
// Pega os codigos que o usuario digitou para a pesquisa direta de
// localidade
String codigoLocalidade = httpServletRequest
.getParameter("codigoLocalidade");
if (codigoLocalidade != null && !codigoLocalidade.trim().equals("")) {
pesquisarLocalidade(codigoLocalidade, httpServletRequest);
}
return retorno;
}
private void pesquisarCampoEnter(HttpServletRequest httpServletRequest,
GerarRelatorioPagamentosContasCobrancaEmpresaActionForm form,
Fachada fachada) {
String idEmpresa = form.getIdEmpresa();
// Pesquisa a empresa
if (idEmpresa != null && !idEmpresa.trim().equals("")) {
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimples(
FiltroEmpresa.ID, idEmpresa));
Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa,
Empresa.class.getName());
if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) {
Empresa empresa = (Empresa) Util
.retonarObjetoDeColecao(colecaoEmpresa);
form.setIdEmpresa(empresa.getId().toString());
form.setNomeEmpresa(empresa.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "idEmpresa");
} else {
form.setIdEmpresa("");
form.setNomeEmpresa("EMPRESA INEXISTENTE");
httpServletRequest.setAttribute("empresaInexistente", true);
httpServletRequest.setAttribute("nomeCampo", "idEmpresa");
}
} else {
form.setNomeEmpresa("");
}
}
/**
* Pesquisa uma localidade informada e prepara os dados para exibi��o na
* tela
*
*/
private void pesquisarLocalidade(String idLocalidade,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
// Pesquisa a localidade na base
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idLocalidade));
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()) {
// [FS0001 - Verificar exist�ncia de dados]
httpServletRequest.setAttribute("codigoLocalidade", "");
httpServletRequest.setAttribute("descricaoLocalidade",
"Localidade Inexistente".toUpperCase());
}
// obtem o imovel pesquisado
if (localidadePesquisada != null && !localidadePesquisada.isEmpty()) {
Localidade localidade = localidadePesquisada.iterator().next();
// Manda a Localidade pelo request
httpServletRequest.setAttribute("codigoLocalidade", idLocalidade);
httpServletRequest.setAttribute("descricaoLocalidade", localidade
.getDescricao());
}
}
}