package gcom.gui.relatorio.gerencial.faturamento;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.UnidadeNegocio;
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;
/**
* [UC01003] Emitir Relat�rio Demonstrativo Sint�tico das Liga��es
*
* @author Daniel Alves
*
* @date 08/04/2010
*/
public class ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("emissaoRelatorioDemonstrativoSinteticoLigacoes");
ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesActionForm form =
(ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesActionForm) actionForm;
// Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter
String objetoConsulta = httpServletRequest.getParameter("objetoConsulta");
// Pesquisar Localidade
if (objetoConsulta != null && !objetoConsulta.trim().equals("") &&
objetoConsulta.trim().equals("2")) {
// Faz a consulta de Localidade
this.pesquisarLocalidade(form);
}
// Pesquisar municipio
if (objetoConsulta != null && !objetoConsulta.trim().equals("") &&
objetoConsulta.trim().equals("3")) {
// Faz a consulta de Localidade
this.pesquisarMunicipio(form);
}
this.pesquisarGerenciaRegional(httpServletRequest);
this.pesquisarUnidadeNegocio(httpServletRequest,form);
//Seta os request�s encontrados
this.setaRequest(httpServletRequest,form);
return retorno;
}
/**
* Pesquisa Localidade
*
* @author Rafael Pinto
* @date 23/11/2007
*/
private void pesquisarLocalidade(ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesActionForm form) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(
new ParametroSimples(FiltroLocalidade.ID,
form.getLocalidade()));
// Recupera Localidade
Collection colecaoLocalidade =
this.getFachada().pesquisar(filtroLocalidade, Localidade.class.getName());
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
Localidade localidade =
(Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
form.setLocalidade(localidade.getId().toString());
form.setNomeLocalidade(localidade.getDescricao());
} else {
form.setLocalidade(null);
form.setNomeLocalidade("Localidade inexistente");
}
}
/**
* Pesquisa Gerencial Regional
*
* @author Rafael Pinto
* @date 23/11/2007
*/
private void pesquisarGerenciaRegional(HttpServletRequest httpServletRequest){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.setConsultaSemLimites(true);
filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME);
filtroGerenciaRegional.adicionarParametro(
new ParametroSimples(FiltroQuadra.INDICADORUSO,
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);
}
}
/**
* Pesquisa Unidade Negocio
*
* @author Rafael Pinto
* @date 23/11/2007
*/
private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest,
ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesActionForm form){
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_GERENCIA,
form.getGerenciaRegional()));
}
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);
}
}
/**
* Seta os request com os id encontrados
*
* @author Rafael Pinto
* @date 23/11/2007
*/
private void setaRequest(HttpServletRequest httpServletRequest,
ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesActionForm form){
//Localidade
if(form.getLocalidade() != null &&
!form.getLocalidade().equals("") &&
form.getNomeLocalidade() != null &&
!form.getNomeLocalidade().equals("")){
httpServletRequest.setAttribute("localidadeEncontrada","true");
}
//municipio
if(form.getMunicipio() != null &&
!form.getMunicipio().equals("") &&
form.getNomeMunicipio() != null &&
!form.getNomeMunicipio().equals("")){
httpServletRequest.setAttribute("municipioEncontrado","true");
}
}
/**
* Pesquisa Municipio
*
* @author S�vio Luiz
* @date 25/02/2008
*/
private void pesquisarMunicipio(ExibirEmissaoRelatorioDemonstrativoSinteticoLigacoesActionForm form) {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(
new ParametroSimples(FiltroMunicipio.ID,
form.getMunicipio()));
// Recupera Localidade
Collection colecaoMunicipio =
this.getFachada().pesquisar(filtroMunicipio, Municipio.class.getName());
if (colecaoMunicipio != null && !colecaoMunicipio.isEmpty()) {
Municipio municipio =
(Municipio) Util.retonarObjetoDeColecao(colecaoMunicipio);
form.setMunicipio(municipio.getId().toString());
form.setNomeMunicipio(municipio.getNome());
} else {
form.setMunicipio(null);
form.setNomeMunicipio("Munic�pio inexistente");
}
}
}