package gcom.gui.gerencial.cobranca;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.cadastro.cliente.EsferaPoder;
import gcom.cadastro.cliente.FiltroEsferaPoder;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cobranca.CobrancaGrupo;
import gcom.cobranca.FiltroCobrancaGrupo;
import gcom.fachada.Fachada;
import gcom.gerencial.bean.InformarDadosGeracaoResumoAcaoConsultaHelper;
import gcom.gui.GcomAction;
import gcom.gui.StatusWizard;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
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;
/**
* @author Ana Maria
* @date 26/10/2006
*
*/
public class ExibirDadosGeracaoConsultaAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirDadosGeracaoConsulta");
//obt�m a inst�ncia da sess�o
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
InformarDadosGeracaoResumoAcaoConsultaActionForm form = (InformarDadosGeracaoResumoAcaoConsultaActionForm) actionForm;
String[] imovelPerfil = form.getPerfilImovel();
String[] ligacaoAguaSituacao = form.getSituacaoLigacaoAgua();
String[] ligacaoEsgotoSituacao = form.getSituacaoLigacaoEsgoto();
String[] categoria = form.getCategoria();
String[] esferaPoder = form.getEsferaPoder();
String[] empresa = form.getEmpresa();
String[] grupoCobranca = form.getGrupoCobranca();
String[] gerenciaRegional = form.getGerencialRegional();
String[] unidadeNegocio = form.getUnidadeNegocio();
InformarDadosGeracaoResumoAcaoConsultaHelper helper = new InformarDadosGeracaoResumoAcaoConsultaHelper();
helper.setAnoMesReferencia(Util.formatarMesAnoComBarraParaAnoMes(form.getMesAnoFaturamento()));
sessao.setAttribute("informarDadosGeracaoResumoAcaoConsultaHelper", helper);
Integer idLocalidade = null;
Integer idSetor = null;
Integer numeroQuadra = null;
Integer eloPolo = null;
if(form.getLocalidade() != null && !form.getLocalidade().trim().equals("")){
idLocalidade = new Integer(form.getLocalidade());
}
if(form.getIdSetorComercial() != null && !form.getIdSetorComercial().trim().equals("")){
idSetor = new Integer(form.getIdSetorComercial());
}
if(form.getQuadra() != null && !form.getQuadra().trim().equals("")){
numeroQuadra = new Integer(form.getQuadra());
}
if(form.getEloPolo() != null && !form.getEloPolo().trim().equals("")){
eloPolo = new Integer(form.getEloPolo());
}
//colecao com parametros escolhidos ------------------
//na tela n tem filtro por unidade
sessao.removeAttribute("colecaoGerenciaRegionalResultado");
sessao.removeAttribute("colecaoUnidadeNegocioResultado");
sessao.removeAttribute("colecaoCobrancaGrupoResultado");
sessao.removeAttribute("colecaoEmpresaResultado");
sessao.removeAttribute("colecaoEsferaPoderResultado");
sessao.removeAttribute("colecaoCategoriaResultado");
sessao.removeAttribute("colecaoImovelPerfilResultado");
sessao.removeAttribute("colecaoLigacaoAguaSituacaoResultado");
sessao.removeAttribute("colecaoLigacaoEsgotoSituacaoResultado");
Collection colecaoGerenciaRegional = new ArrayList();
if(gerenciaRegional != null && gerenciaRegional.length > 0){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
for (int i = 0; i < gerenciaRegional.length; i++) {
if(!gerenciaRegional[i].trim().equals("")){
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.ID, gerenciaRegional[i]));
Collection itemGerencia = fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
colecaoGerenciaRegional.add(Util.retonarObjetoDeColecao(itemGerencia));
filtroGerenciaRegional.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoGerenciaRegionalResultado", colecaoGerenciaRegional);
Collection colecaoUnidadeNegocio = new ArrayList();
if(unidadeNegocio != null && unidadeNegocio.length > 0){
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
for (int i = 0; i < unidadeNegocio.length; i++) {
if(!unidadeNegocio[i].trim().equals("")){
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.ID, unidadeNegocio[i]));
Collection itemUN = fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
colecaoUnidadeNegocio.add(Util.retonarObjetoDeColecao(itemUN));
filtroUnidadeNegocio.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoUnidadeNegocioResultado", colecaoUnidadeNegocio);
Collection colecaoGrupoCobranca = new ArrayList();
if(grupoCobranca != null && grupoCobranca.length > 0){
FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo();
for (int i = 0; i < grupoCobranca.length; i++) {
if(!grupoCobranca[i].trim().equals("")){
filtroCobrancaGrupo.adicionarParametro(new ParametroSimples(FiltroCobrancaGrupo.ID, grupoCobranca[i]));
Collection itemGC = fachada.pesquisar(filtroCobrancaGrupo, CobrancaGrupo.class.getName());
colecaoGrupoCobranca.add(Util.retonarObjetoDeColecao(itemGC));
filtroCobrancaGrupo.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoCobrancaGrupoResultado", colecaoGrupoCobranca);
Collection colecaoEmpresa = new ArrayList();
if(empresa != null && empresa.length > 0){
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
for (int i = 0; i < empresa.length; i++) {
if(!empresa[i].trim().equals("")){
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.ID, empresa[i]));
Collection itemEmp = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
colecaoEmpresa.add(Util.retonarObjetoDeColecao(itemEmp));
filtroEmpresa.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoEmpresaResultado", colecaoEmpresa);
Collection colecaoEsferaPoder = new ArrayList();
if(esferaPoder != null && esferaPoder.length > 0){
FiltroEsferaPoder filtroEsferaPoder = new FiltroEsferaPoder();
for (int i = 0; i < esferaPoder.length; i++) {
if(!esferaPoder[i].trim().equals("")){
filtroEsferaPoder.adicionarParametro(new ParametroSimples(FiltroEsferaPoder.ID, esferaPoder[i]));
Collection itemEP = fachada.pesquisar(filtroEsferaPoder, EsferaPoder.class.getName());
colecaoEsferaPoder.add(Util.retonarObjetoDeColecao(itemEP));
filtroEsferaPoder.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoEsferaPoderResultado", colecaoEsferaPoder);
Collection colecaoCategoria = new ArrayList();
if(categoria != null && categoria.length > 0){
FiltroCategoria filtroCategoria = new FiltroCategoria();
for (int i = 0; i < categoria.length; i++) {
if(!categoria[i].trim().equals("")){
filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.CODIGO, categoria[i]));
Collection itemCatg = fachada.pesquisar(filtroCategoria, Categoria.class.getName());
colecaoCategoria.add(Util.retonarObjetoDeColecao(itemCatg));
filtroCategoria.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoCategoriaResultado", colecaoCategoria);
Collection colecaoImovelPerfil = new ArrayList();
if(imovelPerfil != null && imovelPerfil.length > 0){
FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil();
for (int i = 0; i < imovelPerfil.length; i++) {
if(!imovelPerfil[i].trim().equals("")){
filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.ID, imovelPerfil[i]));
Collection itemPerfil = fachada.pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName());
colecaoImovelPerfil.add(Util.retonarObjetoDeColecao(itemPerfil));
filtroImovelPerfil.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoImovelPerfilResultado", colecaoImovelPerfil);
Collection colecaoLigacaoAguaSituacao = new ArrayList();
if(ligacaoAguaSituacao != null && ligacaoAguaSituacao.length > 0){
FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao();
for (int i = 0; i < ligacaoAguaSituacao.length; i++) {
if(!ligacaoAguaSituacao[i].trim().equals("")){
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoAguaSituacao.ID,
ligacaoAguaSituacao[i]));
Collection itemLigacaoAgua = fachada.pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
colecaoLigacaoAguaSituacao.add(Util.retonarObjetoDeColecao(itemLigacaoAgua));
filtroLigacaoAguaSituacao.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoLigacaoAguaSituacaoResultado", colecaoLigacaoAguaSituacao);
Collection colecaoLigacaoEsgotoSituacao = new ArrayList();
if(ligacaoEsgotoSituacao != null && ligacaoEsgotoSituacao.length > 0){
FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao();
for (int i = 0; i < ligacaoEsgotoSituacao.length; i++) {
if(!ligacaoEsgotoSituacao[i].trim().equals("")){
filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoEsgotoSituacao.ID,
ligacaoEsgotoSituacao[i]));
Collection itemLigacaoEsgoto = fachada.pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName());
colecaoLigacaoEsgotoSituacao.add(Util.retonarObjetoDeColecao(itemLigacaoEsgoto));
filtroLigacaoEsgotoSituacao.limparListaParametros();
}
}
}
sessao.setAttribute("colecaoLigacaoEsgotoSituacaoResultado", colecaoLigacaoEsgotoSituacao);
//----------------------------------------------------
InformarDadosGeracaoResumoAcaoConsultaHelper informarDadosGeracaoResumoAcaoConsultaHelper =
informarDadosGeracaoResumoAcaoConsultaHelper = fachada
.informarDadosGeracaoResumoAcaoConsulta(form.getMesAnoFaturamento(),
grupoCobranca, gerenciaRegional,unidadeNegocio, eloPolo,
idLocalidade, idSetor, numeroQuadra, imovelPerfil,
ligacaoAguaSituacao, ligacaoEsgotoSituacao, categoria,
esferaPoder, empresa, form.getTipoImpressao());
//Pesquisa os dados do resumo das a��es de cobran�a
Collection colecaoResumoAcaoCobranca = fachada.consultarResumoCobrancaAcao(informarDadosGeracaoResumoAcaoConsultaHelper);
sessao.setAttribute("colecaoResumoAcaoCobranca", colecaoResumoAcaoCobranca);
Collection colecaoAgrupamento = fachada.criarColecaoAgrupamentoResumosCobrancaAcao(informarDadosGeracaoResumoAcaoConsultaHelper);
sessao.setAttribute("colecaoAgrupamento", colecaoAgrupamento);
sessao.setAttribute("mesAnoReferencia", Util.formatarAnoMesParaMesAno(informarDadosGeracaoResumoAcaoConsultaHelper.getAnoMesReferencia()));
StatusWizard statusWizard = (StatusWizard)sessao.getAttribute("statusWizard");
adicionarTextoParametrosParaHintStatusWizard(statusWizard, informarDadosGeracaoResumoAcaoConsultaHelper);
sessao.setAttribute("statusWizard", statusWizard);
sessao.setAttribute("informarDadosGeracaoResumoAcaoConsultaHelper", informarDadosGeracaoResumoAcaoConsultaHelper);
sessao.removeAttribute("colecaoImoveisPerfil");
sessao.removeAttribute("colecaoLigacaoAgua");
sessao.removeAttribute("colecaoImoveisPerfil");
sessao.removeAttribute("colecaoLigacaoEsgoto");
sessao.removeAttribute("colecaoCategoria");
sessao.removeAttribute("colecaoEsferaPoder");
sessao.removeAttribute("colecaoGrupoCobranca");
sessao.removeAttribute("colecaoEmpresa");
return retorno;
}
private void adicionarTextoParametrosParaHintStatusWizard(StatusWizard statusWizard,
InformarDadosGeracaoResumoAcaoConsultaHelper helper){
StringBuffer texto = new StringBuffer();
texto.append("<B>Par�metros:</B>");
texto.append("<BR>M�s/Ano de Refer�ncia: <I>" + Util.
formatarAnoMesParaMesAno(helper.getAnoMesReferencia()) + "</I>");
String grupos = "";
if (helper.getColecaoCobrancaGrupo() != null){
for (Iterator iter = helper.getColecaoCobrancaGrupo().iterator();iter.hasNext();) {
CobrancaGrupo grupo = (CobrancaGrupo) iter.next();
grupos += grupo.getDescricao() + " / ";
}
if (!grupos.equals("")){
grupos = grupos.substring(0, grupos.length() - 3);
}
} else {
grupos = "TODOS";
}
texto.append("<BR>Grupo de Cobran�a:<I>" + grupos + "</I>");
String gerencias = "";
if (helper.getColecaoGerenciaRegional() != null){
for (Iterator iter = helper.getColecaoGerenciaRegional().iterator();iter.hasNext();) {
GerenciaRegional GR = (GerenciaRegional) iter.next();
gerencias += GR.getNome() + " / ";
}
if (!gerencias.equals("")){
gerencias = gerencias.substring(0, gerencias.length() - 3);
}
} else {
gerencias = "TODAS";
}
texto.append("<BR>Ger�ncia Regional: <I>" + gerencias + "</I>");
String unidadesNegocio = "";
if (helper.getColecaoUnidadeNegocio() != null){
for (Iterator iter = helper.getColecaoUnidadeNegocio().iterator();iter.hasNext();) {
UnidadeNegocio unidadeNeg = (UnidadeNegocio) iter.next();
unidadesNegocio += unidadeNeg.getNome() + " / ";
}
if (!unidadesNegocio.equals("")){
unidadesNegocio = unidadesNegocio.substring(0, unidadesNegocio.length() - 3);
}
} else {
unidadesNegocio = "TODAS";
}
texto.append("<BR>Unidade de Neg�cio: <I>" + unidadesNegocio + "</I>");
if (helper.getEloPolo() != null){
texto.append("<BR>Elo Polo: <I>" + helper.getEloPolo().getDescricao() + "</I>");
}
if (helper.getLocalidade() != null){
texto.append("<BR>Localidade: <I>" + helper.getLocalidade().getDescricaoParaRegistroTransacao() + "</I>");
}
if (helper.getSetorComercial() != null){
texto.append("<BR>Setor Comercial: <I>" + helper.getSetorComercial().getCodigo() + "</I>");
}
if (helper.getQuadra() != null){
texto.append("<BR>Quadra: <I>" + helper.getQuadra().getNumeroQuadra() + "</I>");
}
String perfisImovel = "";
if (helper.getColecaoImovelPerfil() != null){
for (Iterator iter = helper.getColecaoImovelPerfil().iterator();iter.hasNext();) {
ImovelPerfil imovelPerfil = (ImovelPerfil) iter.next();
perfisImovel += imovelPerfil.getDescricao() + " / ";
}
if (!perfisImovel.equals("")){
perfisImovel = perfisImovel.substring(0, perfisImovel.length() - 3);
}
} else {
perfisImovel = "TODOS";
}
texto.append("<BR>Perfil do Im�vel: <I>" + perfisImovel + "</I>");
String situacoesLigacaoAgua = "";
if (helper.getColecaoLigacaoAguaSituacao() != null){
for (Iterator iter = helper.getColecaoLigacaoAguaSituacao().iterator();iter.hasNext();) {
LigacaoAguaSituacao ligacaoAguaSituacao = (LigacaoAguaSituacao) iter.next();
situacoesLigacaoAgua += ligacaoAguaSituacao.getDescricao() + " / ";
}
if (!situacoesLigacaoAgua.equals("")){
situacoesLigacaoAgua = situacoesLigacaoAgua.substring(0, situacoesLigacaoAgua.length() - 3);
}
} else {
situacoesLigacaoAgua = "TODAS";
}
texto.append("<BR>Situa��o de Liga��o de �gua: <I>" + situacoesLigacaoAgua + "</I>");
String situacoesLigacaoEsgoto = "";
if (helper.getColecaoLigacaoEsgotoSituacao() != null){
for (Iterator iter = helper.getColecaoLigacaoEsgotoSituacao().iterator();iter.hasNext();) {
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) iter.next();
situacoesLigacaoEsgoto += ligacaoEsgotoSituacao.getDescricao() + " / ";
}
if (!situacoesLigacaoEsgoto.equals("")){
situacoesLigacaoEsgoto = situacoesLigacaoEsgoto.substring(0, situacoesLigacaoEsgoto.length() - 3);
}
} else {
situacoesLigacaoEsgoto = "TODAS";
}
texto.append("<BR>Situa��o de Liga��o de Esgoto: <I>" + situacoesLigacaoEsgoto + "</I>");
String categorias = "";
if (helper.getColecaoCategoria() != null){
for (Iterator iter = helper.getColecaoCategoria().iterator();iter.hasNext();) {
Categoria categoria = (Categoria) iter.next();
categorias += categoria.getDescricao() + " / ";
}
if (!categorias.equals("")){
categorias = categorias.substring(0, categorias.length() - 3);
}
} else {
categorias = "TODAS";
}
texto.append("<BR>Categoria: <I>" + categorias + "</I>");
String esferasPoder = "";
if (helper.getColecaoEsferaPoder() != null){
for (Iterator iter = helper.getColecaoEsferaPoder().iterator();iter.hasNext();) {
EsferaPoder esferaPoder = (EsferaPoder) iter.next();
esferasPoder += esferaPoder.getDescricao() + " / ";
}
if (!esferasPoder.equals("")){
esferasPoder = esferasPoder.substring(0, esferasPoder.length() - 3);
}
} else {
esferasPoder = "TODAS";
}
texto.append("<BR>Esfera de Poder: <I>" + esferasPoder + "</I>");
String empresas = "";
if (helper.getColecaoEmpresa() != null){
for (Iterator iter = helper.getColecaoEmpresa().iterator();iter.hasNext();) {
Empresa empresa = (Empresa) iter.next();
empresas += empresa.getDescricao() + " / ";
}
if (!empresas.equals("")){
empresas = empresas.substring(0, empresas.length() - 3);
}
} else {
empresas = "TODAS";
}
texto.append("<BR>Empresa: <I>" + empresas + "</I>");
statusWizard.adicionarItemHint("",texto.toString());
}
}