package gcom.gui.gerencial.cadastro;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.FiltroSubCategoria;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.Subcategoria;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.fachada.Fachada;
import gcom.faturamento.consumotarifa.ConsumoTarifa;
import gcom.faturamento.consumotarifa.FiltroConsumoTarifa;
import gcom.gui.GcomAction;
import gcom.micromedicao.consumo.ConsumoAnormalidade;
import gcom.micromedicao.consumo.FiltroConsumoAnormalidade;
import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade;
import gcom.micromedicao.hidrometro.HidrometroCapacidade;
import gcom.micromedicao.leitura.FiltroLeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraAnormalidade;
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;
/**
* Descri��o da classe
*
* @author Pedro Alexandre
* @date 21/05/2007
*/
public class ExibirGerarRelatorioClientesEspeciaisAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
HttpSession sessao = httpServletRequest.getSession(false);
GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm = (GerarRelatorioClientesEspeciaisActionForm) actionForm;
if (httpServletRequest.getParameter("menu") != null) {
carregarColecoes(sessao);
gerarRelatorioClientesEspeciaisActionForm.setConsumoAnormalidade("");
gerarRelatorioClientesEspeciaisActionForm.setLeituraAnormalidade("");
}
consultarLocalidadeInicial(gerarRelatorioClientesEspeciaisActionForm,httpServletRequest);
consultarLocalidadeFinal(gerarRelatorioClientesEspeciaisActionForm,httpServletRequest);
consultarSetorComercialInicial(gerarRelatorioClientesEspeciaisActionForm, httpServletRequest);
consultarSetorComercialFinal(gerarRelatorioClientesEspeciaisActionForm, httpServletRequest);
consultarClienteResponsavel(gerarRelatorioClientesEspeciaisActionForm, httpServletRequest);
consultarLeituraAnormalidade(gerarRelatorioClientesEspeciaisActionForm,httpServletRequest);
return actionMapping.findForward("exibirGerarRelatorioClientesEspeciais");
}
/**
* Esse m�todo consulta a leitura anormalidade, caso o usu�rio a tenha informado.
* Se por acaso ela n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarLeituraAnormalidade(GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
String idLeituraAnormalidade = gerarRelatorioClientesEspeciaisActionForm.getIdLeituraAnormalidade();
if ( Util.verificarNaoVazio(idLeituraAnormalidade)) {
FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade();
filtroLeituraAnormalidade.adicionarParametro(new ParametroSimples(
FiltroLeituraAnormalidade.ID, idLeituraAnormalidade));
Collection<LeituraAnormalidade> colecaoLeiturasAnormalidades = fachada.pesquisar(
filtroLeituraAnormalidade, LeituraAnormalidade.class.getName());
if ( Util.isVazioOrNulo(colecaoLeiturasAnormalidades)) {
gerarRelatorioClientesEspeciaisActionForm.setIdLeituraAnormalidade("");
gerarRelatorioClientesEspeciaisActionForm.setDescricaoLeituraAnormalidade("ANORM. DE LEITURA INEXISTENTE");
httpServletRequest.setAttribute("anormalidadeLeituraInexistente", true);
} else {
LeituraAnormalidade leituraAnormalidade = colecaoLeiturasAnormalidades.iterator().next();
gerarRelatorioClientesEspeciaisActionForm
.setDescricaoLeituraAnormalidade(leituraAnormalidade.getDescricao());
}
} else {
gerarRelatorioClientesEspeciaisActionForm.setDescricaoLeituraAnormalidade("");
}
}
/**
* Esse m�todo consulta cliente responsavel, caso o usu�rio o tenha informado.
* Se por acaso ele n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarClienteResponsavel(GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
String idClienteResponsavel = gerarRelatorioClientesEspeciaisActionForm.getIdClienteResponsavel();
if ( Util.verificarNaoVazio(idClienteResponsavel)) {
Cliente clienteResponsavel = fachada
.pesquisarClienteDigitado(new Integer(idClienteResponsavel));
if (clienteResponsavel == null) {
gerarRelatorioClientesEspeciaisActionForm.setIdClienteResponsavel("");
gerarRelatorioClientesEspeciaisActionForm.setNomeClienteResponsavel("CLIENTE INEXISTENTE");
httpServletRequest.setAttribute("clienteResponsavelInexistente", true);
} else {
gerarRelatorioClientesEspeciaisActionForm.setNomeClienteResponsavel(clienteResponsavel.getNome());
}
} else {
gerarRelatorioClientesEspeciaisActionForm.setNomeClienteResponsavel("");
}
}
/**
* Esse m�todo consulta a localidade final, caso o usu�rio a tenha informado.
* Se por acaso ela n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarLocalidadeFinal(GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
String idLocalidadeFinalForm = gerarRelatorioClientesEspeciaisActionForm.getIdLocalidadeFinal();
if ( Util.verificarNaoVazio(idLocalidadeFinalForm)) {
Integer idLocalidadeFinal = new Integer(idLocalidadeFinalForm);
Localidade localidadeDestino = fachada
.pesquisarLocalidadeDigitada(new Integer(idLocalidadeFinal));
if (localidadeDestino == null) {
gerarRelatorioClientesEspeciaisActionForm.setNomeLocalidadeFinal("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeFinalInexistente",true);
} else {
gerarRelatorioClientesEspeciaisActionForm
.setNomeLocalidadeFinal(localidadeDestino.getDescricao());
}
} else {
gerarRelatorioClientesEspeciaisActionForm.setNomeLocalidadeFinal("");
}
}
/**
* Esse m�todo consulta a localidade inicial, caso o usu�rio a tenha informado.
* Se por acaso ela n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarLocalidadeInicial(GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
String idLocalidadeInicialForm = gerarRelatorioClientesEspeciaisActionForm.getIdLocalidadeInicial();
if ( Util.verificarNaoVazio(idLocalidadeInicialForm)) {
Integer idLocalidadeInicial = new Integer(idLocalidadeInicialForm);
Localidade localidadeOrigem =
fachada.pesquisarLocalidadeDigitada(new Integer(idLocalidadeInicial));
if (localidadeOrigem == null) {
gerarRelatorioClientesEspeciaisActionForm.setNomeLocalidadeInicial("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("localidadeInicialInexistente",true);
} else {
gerarRelatorioClientesEspeciaisActionForm
.setNomeLocalidadeInicial(localidadeOrigem.getDescricao());
}
} else {
gerarRelatorioClientesEspeciaisActionForm.setNomeLocalidadeInicial("");
}
}
/**
* Esse m�todo consulta o setor inicial, caso o usu�rio o tenha informado.
* Se por acaso ele n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarSetorComercialInicial(GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm,
HttpServletRequest httpServletRequest) {
if ( Util.verificarNaoVazio(gerarRelatorioClientesEspeciaisActionForm.getCodigoSetorComercialInicial())) {
Integer codigoSetorInicial = new Integer(gerarRelatorioClientesEspeciaisActionForm.getCodigoSetorComercialInicial());
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,codigoSetorInicial));
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.LOCALIDADE_ID,new Integer(gerarRelatorioClientesEspeciaisActionForm.getIdLocalidadeInicial())));
Collection<SetorComercial> colecaoSetorComercial =
this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if ( Util.isVazioOrNulo(colecaoSetorComercial)) {
gerarRelatorioClientesEspeciaisActionForm.setNomeSetorComercialInicial("SETOR COMERCIAL INEXISTENTE");
httpServletRequest.setAttribute("setorComercialInicialInexistente",true);
} else {
SetorComercial setor = colecaoSetorComercial.iterator().next();
gerarRelatorioClientesEspeciaisActionForm
.setNomeSetorComercialInicial(setor.getDescricao());
}
} else {
gerarRelatorioClientesEspeciaisActionForm.setNomeSetorComercialInicial("");
}
}
/**
* Esse m�todo consulta o setor final, caso o usu�rio o tenha informado.
* Se por acaso ele n�o existir, � enviada a mensagem informando isso.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void consultarSetorComercialFinal(GerarRelatorioClientesEspeciaisActionForm gerarRelatorioClientesEspeciaisActionForm,
HttpServletRequest httpServletRequest) {
if ( Util.verificarNaoVazio(gerarRelatorioClientesEspeciaisActionForm.getCodigoSetorComercialFinal())) {
Integer codigoSetorFinal = new Integer(gerarRelatorioClientesEspeciaisActionForm.getCodigoSetorComercialFinal());
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,codigoSetorFinal));
filtroSetorComercial.adicionarParametro(
new ParametroSimples(FiltroSetorComercial.LOCALIDADE_ID,new Integer(gerarRelatorioClientesEspeciaisActionForm.getIdLocalidadeFinal())));
Collection<SetorComercial> colecaoSetorComercial =
this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName());
if ( Util.isVazioOrNulo(colecaoSetorComercial)) {
gerarRelatorioClientesEspeciaisActionForm.setNomeSetorComercialFinal("SETOR COMERCIAL INEXISTENTE");
httpServletRequest.setAttribute("setorComercialFinalInexistente",true);
} else {
SetorComercial setor = colecaoSetorComercial.iterator().next();
gerarRelatorioClientesEspeciaisActionForm
.setNomeSetorComercialFinal(setor.getDescricao());
}
} else {
gerarRelatorioClientesEspeciaisActionForm.setNomeSetorComercialFinal("");
}
}
/**
* Esse m�todo carrega todas as cole��es a serem exibidas na tela
* na sess�o.
*
*@since 02/10/2009
*@author Marlon Patrick
*/
private void carregarColecoes(HttpSession sessao) {
Fachada fachada = Fachada.getInstancia();
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(FiltroUnidadeNegocio.NOME);
Collection<UnidadeNegocio> colecaoUnidadeNegocio = fachada.pesquisar(
filtroUnidadeNegocio, UnidadeNegocio.class.getName());
FiltroImovelPerfil filtroPerfilImovel = new FiltroImovelPerfil(FiltroImovelPerfil.DESCRICAO);
Collection<ImovelPerfil> colecaoPerfilImovel = fachada.pesquisar(
filtroPerfilImovel, ImovelPerfil.class.getName());
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(
FiltroGerenciaRegional.NOME);
Collection<GerenciaRegional> colecaoGerenciaRegional = fachada.pesquisar(
filtroGerenciaRegional, GerenciaRegional.class.getName());
FiltroCategoria filtroCategoria = new FiltroCategoria(
FiltroCategoria.DESCRICAO);
Collection<Categoria> colecaoCategoria = fachada.pesquisar(filtroCategoria,
Categoria.class.getName());
FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(
FiltroSubCategoria.DESCRICAO);
Collection<Subcategoria> colecaoSubCategoria = fachada.pesquisar(
filtroSubCategoria, Subcategoria.class.getName());
FiltroLigacaoAguaSituacao filtroSituacaoLigacaoAgua = new FiltroLigacaoAguaSituacao(
FiltroLigacaoAguaSituacao.DESCRICAO);
Collection<LigacaoAguaSituacao> colecaoSituacaoLigacaoAgua = fachada.pesquisar(
filtroSituacaoLigacaoAgua, LigacaoAguaSituacao.class
.getName());
FiltroLigacaoEsgotoSituacao filtroSituacaoLigacaoEsgoto = new FiltroLigacaoEsgotoSituacao(
FiltroLigacaoEsgotoSituacao.DESCRICAO);
Collection<LigacaoEsgotoSituacao> colecaoSituacaoLigacaoEsgoto = fachada.pesquisar(
filtroSituacaoLigacaoEsgoto, LigacaoEsgotoSituacao.class
.getName());
FiltroHidrometroCapacidade filtroCapacidadeHidrometro = new FiltroHidrometroCapacidade(
FiltroHidrometroCapacidade.NUMERO_ORDEM);
Collection<HidrometroCapacidade> colecaoCapacidadeHidrometro = fachada.pesquisar(
filtroCapacidadeHidrometro, HidrometroCapacidade.class
.getName());
FiltroConsumoTarifa filtroTarifaConsumo = new FiltroConsumoTarifa(
FiltroConsumoTarifa.DESCRICAO);
Collection<ConsumoTarifa> colecaoTarifaConsumo = fachada.pesquisar(
filtroTarifaConsumo, ConsumoTarifa.class.getName());
FiltroConsumoAnormalidade filtroConsumoAnormalidade = new FiltroConsumoAnormalidade(
FiltroConsumoAnormalidade.DESCRICAO);
Collection<ConsumoAnormalidade> colecaoConsumosAnormalidades = fachada.pesquisar(
filtroConsumoAnormalidade, ConsumoAnormalidade.class
.getName());
sessao.setAttribute("colecaoUnidadeNegocio", colecaoUnidadeNegocio);
sessao.setAttribute("colecaoPerfilImovel", colecaoPerfilImovel);
sessao.setAttribute("colecaoGerenciaRegional",colecaoGerenciaRegional);
sessao.setAttribute("colecaoCategoria", colecaoCategoria);
sessao.setAttribute("colecaoSubCategoria", colecaoSubCategoria);
sessao.setAttribute("colecaoSituacaoLigacaoAgua",colecaoSituacaoLigacaoAgua);
sessao.setAttribute("colecaoSituacaoLigacaoEsgoto",colecaoSituacaoLigacaoEsgoto);
sessao.setAttribute("colecaoCapacidadeHidrometro",colecaoCapacidadeHidrometro);
sessao.setAttribute("colecaoTarifaConsumo", colecaoTarifaConsumo);
sessao.setAttribute("colecaoConsumosAnormalidades",colecaoConsumosAnormalidades);
}
}