package gcom.gui.relatorio.cadastro.micromedicao;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupo;
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;
/**
* [UC0999] Gerar Relat�rio de Coleta de Medidor de Energia.
*
* @author Hugo Leonardo
*
* @date 08/03/2010
*/
public class ExibirGerarRelatorioColetaMedidorEnergiaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirGerarRelatorioColetaMedidorEnergia");
GerarRelatorioColetaMedidorEnergiaActionForm form =
(GerarRelatorioColetaMedidorEnergiaActionForm) 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("1")|| objetoConsulta.trim().equals("2")) ) {
// Faz a consulta de Localidade
this.pesquisarLocalidade(form,objetoConsulta);
}
// Pesquisar Setor Comercial
if (objetoConsulta != null && !objetoConsulta.trim().equals("") &&
(objetoConsulta.trim().equals("3")|| objetoConsulta.trim().equals("4")) ) {
// Faz a consulta do Setor Comercial
this.pesquisarSetorComercial(form,objetoConsulta);
}
//this.pesquisarUnidadeNegocio(httpServletRequest,form);
this.pesquisarGrupoFaturamento(httpServletRequest);
//Seta os request�s encontrados
this.setaRequest(httpServletRequest,form);
return retorno;
}
/**
* Pesquisa Setor Comercial
*
* @author Hugo Leonardo
* @date 09/04/2010
*/
private void pesquisarSetorComercial(GerarRelatorioColetaMedidorEnergiaActionForm form,
String objetoConsulta) {
Object idSetorComercial = null;
Object local = null;
local = form.getLocalidadeInicial();
if(objetoConsulta.trim().equals("3")){
idSetorComercial = form.getCodigoSetorComercialInicial();
}else if(objetoConsulta.trim().equals("4")){
idSetorComercial = form.getCodigoSetorComercialFinal();
}
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,idSetorComercial));
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE,local));
// Recupera Setor Comercial
Collection colecaoSetorComercial =
this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if (colecaoSetorComercial != null && !colecaoSetorComercial.isEmpty()) {
SetorComercial setorComercial =
(SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercial);
if(objetoConsulta.trim().equals("3")){
form.setCodigoSetorComercialInicial(""+setorComercial.getCodigo());
form.setSetorComercialInicialDescricao(setorComercial.getDescricao());
form.setCodigoSetorComercialFinal(""+setorComercial.getCodigo());
form.setSetorComercialFinalDescricao(setorComercial.getDescricao());
}
if(objetoConsulta.trim().equals("4")){
form.setCodigoSetorComercialFinal(""+setorComercial.getCodigo());
form.setSetorComercialFinalDescricao(setorComercial.getDescricao());
}
} else {
if(objetoConsulta.trim().equals("3")){
form.setCodigoSetorComercialInicial(null);
form.setSetorComercialInicialDescricao("Setor Comercial Inexistente");
form.setCodigoSetorComercialFinal(null);
form.setSetorComercialFinalDescricao(null);
}else if(objetoConsulta.trim().equals("4")){
form.setCodigoSetorComercialFinal(null);
form.setSetorComercialFinalDescricao("Setor Comercial Inexistente");
}
}
}
/**
* Pesquisa Localidade
*
* @author Hugo Leonardo
* @date 08/03/2010
*/
private void pesquisarLocalidade(GerarRelatorioColetaMedidorEnergiaActionForm form,
String objetoConsulta) {
Object local = null;
if(objetoConsulta.trim().equals("1")){
local = form.getLocalidadeInicial();
}else if(objetoConsulta.trim().equals("2")){
local = form.getLocalidadeFinal();
}
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(
new ParametroSimples(FiltroLocalidade.ID,local));
// Recupera Localidade
Collection colecaoLocalidade =
this.getFachada().pesquisar(filtroLocalidade, Localidade.class.getName());
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
Localidade localidade =
(Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
if(objetoConsulta.trim().equals("1")){
form.setLocalidadeInicial(localidade.getId().toString());
form.setNomeLocalidadeInicial(localidade.getDescricao());
form.setLocalidadeFinal(localidade.getId().toString());
form.setNomeLocalidadeFinal(localidade.getDescricao());
}
if(objetoConsulta.trim().equals("2")){
form.setLocalidadeFinal(localidade.getId().toString());
form.setNomeLocalidadeFinal(localidade.getDescricao());
}
} else {
if(objetoConsulta.trim().equals("1")){
form.setLocalidadeInicial(null);
form.setNomeLocalidadeInicial("Localidade Inicial inexistente");
form.setLocalidadeFinal(null);
form.setNomeLocalidadeFinal(null);
}else if(objetoConsulta.trim().equals("2")){
form.setLocalidadeFinal(null);
form.setNomeLocalidadeFinal("Localidade Final inexistente");
}
}
}
/**
* Seta os request com os id encontrados
*
* @author Rafael Pinto
* @date 02/01/2008
*/
private void setaRequest(HttpServletRequest httpServletRequest,
GerarRelatorioColetaMedidorEnergiaActionForm form){
//Localidade Inicial
if(form.getLocalidadeInicial() != null &&
!form.getLocalidadeInicial().equals("") &&
form.getNomeLocalidadeInicial() != null &&
!form.getNomeLocalidadeInicial().equals("")){
httpServletRequest.setAttribute("localidadeInicialEncontrada","true");
httpServletRequest.setAttribute("localidadeFinalEncontrada","true");
}else{
if(form.getLocalidadeFinal() != null &&
!form.getLocalidadeFinal().equals("") &&
form.getNomeLocalidadeFinal() != null &&
!form.getNomeLocalidadeFinal().equals("")){
httpServletRequest.setAttribute("localidadeFinalEncontrada","true");
}
}
//Setor Comercial Inicial
if(form.getCodigoSetorComercialInicial() != null &&
!form.getCodigoSetorComercialInicial().equals("") &&
form.getSetorComercialInicialDescricao() != null &&
!form.getSetorComercialInicialDescricao().equals("")){
httpServletRequest.setAttribute("setorComercialInicialEncontrada","true");
httpServletRequest.setAttribute("setorComercialFinalEncontrada","true");
}else{
if(form.getCodigoSetorComercialFinal() != null &&
!form.getCodigoSetorComercialFinal().equals("") &&
form.getSetorComercialFinalDescricao() != null &&
!form.getSetorComercialFinalDescricao().equals("")){
httpServletRequest.setAttribute("setorComercialFinalEncontrada","true");
}
}
}
private void pesquisarGrupoFaturamento(HttpServletRequest httpServletRequest) {
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo();
filtroFaturamentoGrupo.setConsultaSemLimites(true);
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples(
FiltroFaturamentoGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO ));
filtroFaturamentoGrupo.setCampoOrderBy(FiltroFaturamentoGrupo.DESCRICAO);
Collection colecaoFaturamentoGrupo = this.getFachada().pesquisar(
filtroFaturamentoGrupo, FaturamentoGrupo.class.getName());
if (colecaoFaturamentoGrupo == null
|| colecaoFaturamentoGrupo.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,
"Grupo Faturamento");
} else {
httpServletRequest.setAttribute("colecaoFaturamentoGrupo",
colecaoFaturamentoGrupo);
}
}
}