package gcom.gui.faturamento; import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoPerfil; import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoPerfil; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.cadastro.cliente.EsferaPoder; import gcom.cadastro.cliente.FiltroEsferaPoder; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.CategoriaTipo; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroCategoriaTipo; 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.FiltroLocalidade; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.ConsumoFaixaCategoria; import gcom.faturamento.FiltroConsumoFaixaCategoria; import gcom.faturamento.consumotarifa.ConsumoTarifa; import gcom.faturamento.consumotarifa.FiltroConsumoTarifa; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ConectorOr; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; 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; /** * [UC00605] Informar Dados para Emiss�o do Histograma de Esgoto Por Economia * * @author Rafael Pinto * * @date 07/05/2007 */ public class EmissaoHistogramaEsgotoEconomiaDadosInformarAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("emissaoHistogramaEsgotoEconomiaDadosInformar"); // Form EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form = (EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm) actionForm; String acao = httpServletRequest.getParameter("acao"); if(acao != null && !acao.equals("")){ String tipoConsumoCategoria = form.getTipoConsumoCategoria(); //Inserir Faixa - Mostrar Popup if(acao.equals("I")){ if(tipoConsumoCategoria.equals(""+Categoria.RESIDENCIAL)){ form.setSubTituloFaixaConsumo("Residencial"); }else if(tipoConsumoCategoria.equals(""+Categoria.COMERCIAL)){ form.setSubTituloFaixaConsumo("Comercial"); }else if(tipoConsumoCategoria.equals(""+Categoria.INDUSTRIAL)){ form.setSubTituloFaixaConsumo("Industrial"); }else if(tipoConsumoCategoria.equals(""+Categoria.PUBLICO)){ form.setSubTituloFaixaConsumo("Publico"); }else{ form.setSubTituloFaixaConsumo("Outros"); } form.setLimiteInferiorFaixa(null); form.setLimiteSuperiorFaixa(null); retorno = actionMapping.findForward("emissaoHistogramaEsgotoEconomiaDadosInformarFaixa"); //Remover Faixa }else if(acao.equals("R")) { String idRemover = httpServletRequest.getParameter("idRemover"); this.removeConsumoFaixaCategoria(form,Integer.parseInt(idRemover)); //Inserir Faixa - Insere na colecao }else if(acao.equals("A")) { this.validarInclusaoConsumoFaixaCategoria(form); } } else { // Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter String objetoConsulta = httpServletRequest.getParameter("objetoConsulta"); //[UC0018] - Pesquisar Elo if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("1")) { // Faz a consulta do Elo P�lo this.pesquisarEloPolo(form); } //[UC0023] - Pesquisar Localidade if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("2")) { // Faz a consulta de Localidade this.pesquisarLocalidade(form); } //[UC0142] - Pesquisar Setor Comercial if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("3")) { // Faz a consulta de Setor Comercial this.pesquisarSetorComercial(form); } //[UC0143] - Pesquisar Quadra if (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta.trim().equals("4")) { // Faz a consulta de Quadra this.pesquisarQuadra(httpServletRequest,form); } if ( objetoConsulta != null && !objetoConsulta.trim().equals( "" ) ){ this.pesquisarSubcategoria( httpServletRequest,form ); } } //Monta os select�s do jsp this.pesquisarGerenciaRegional(httpServletRequest); this.pesquisarUnidadeNegocio(httpServletRequest,form); this.pesquisarCategoriaTipo(httpServletRequest); this.pesquisarCategoria(httpServletRequest,form); this.pesquisarConsumoTarifa(httpServletRequest); this.pesquisarPerfilImovel(httpServletRequest); this.pesquisarEsferaPoder(httpServletRequest); this.pesquisarLigacaoEsgotoSituacao(httpServletRequest); this.pesquisarLigacaoEsgotoPerfil(httpServletRequest); this.pesquisarIndicadorTarifaCategoria( httpServletRequest ); if ( form.getIndicadorTarifaCategoria() == null || form.getIndicadorTarifaCategoria().equals( "" ) ){ form.setIndicadorTarifaCategoria( "1" ); } httpServletRequest.setAttribute( "indicadorTarifaCategoria", form.getIndicadorTarifaCategoria() ); if(acao == null || acao.equals("")){ this.pesquisarConsumoFaixaCategoria(form,httpServletRequest); }else if(acao.equals("M")){ Collection<ConsumoFaixaCategoria> colecaoFaixa= (Collection<ConsumoFaixaCategoria>) form.getLinkedHashMapConsumoFaixaCategoria().get(form.getTipoConsumoCategoria()); form.setColecaoConsumoFaixaCategoria(colecaoFaixa); form.setTamanhoColecao(colecaoFaixa.size()+""); } //Seta os request�s encontrados this.setaRequest(httpServletRequest,form); return retorno; } /** * Pesquisa Elo P�lo * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarEloPolo(EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID_ELO, form.getEloPolo())); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); // Recupera Elo P�lo Collection colecaoEloPolo = this.getFachada().pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoEloPolo != null && !colecaoEloPolo.isEmpty()) { Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoEloPolo); localidade = localidade.getLocalidade(); form.setEloPolo(localidade.getId().toString()); form.setNomeEloPolo(localidade.getDescricao()); } else { form.setEloPolo(null); form.setNomeEloPolo("Localidade inexistente"); } } /** * Pesquisa Localidade * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarLocalidade(EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm 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 Setor comercial * * @author Rafael Pinto * @date 16/06/2007 */ private void pesquisarSetorComercial(EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, form.getSetorComercial())); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.LOCALIDADE, form.getLocalidade())); // Recupera Setor Comercial Collection colecaoSetorComercial = this.getFachada().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoSetorComercial != null && !colecaoSetorComercial.isEmpty()) { SetorComercial setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercial); form.setSetorComercial(""+setorComercial.getCodigo()); form.setNomeSetorComercial(setorComercial.getDescricao()); } else { form.setSetorComercial(null); form.setNomeSetorComercial("Setor Comercial inexistente"); } } /** * Pesquisa Quadra * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarQuadra(HttpServletRequest httpServletRequest, EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form) { FiltroQuadra filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro( new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, form.getQuadra())); filtroQuadra.adicionarParametro( new ParametroSimples(FiltroQuadra.CODIGO_SETORCOMERCIAL, form.getSetorComercial())); // Recupera Quadra Collection colecaoQuadra = this.getFachada().pesquisar(filtroQuadra, Quadra.class.getName()); if (colecaoQuadra != null && !colecaoQuadra.isEmpty()) { Quadra quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra); form.setQuadra(""+quadra.getNumeroQuadra()); //form.setNomeQuadra(quadra.getDescricao()); } else { form.setQuadra(null); httpServletRequest.setAttribute("msgQuadra", "QUADRA INEXISTENTE"); } } /** * Seta os request com os id encontrados * * @author Rafael Pinto * @date 14/06/2007 */ private void setaRequest(HttpServletRequest httpServletRequest, EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form){ //Elo Polo if(form.getEloPolo() != null && !form.getEloPolo().equals("") && form.getNomeEloPolo() != null && !form.getNomeEloPolo().equals("")){ httpServletRequest.setAttribute("eloPoloEncontrado","true"); } //Localidade if(form.getLocalidade() != null && !form.getLocalidade().equals("") && form.getNomeLocalidade() != null && !form.getNomeLocalidade().equals("")){ httpServletRequest.setAttribute("localidadeEncontrada","true"); } //Setor Comercial if(form.getSetorComercial() != null && !form.getSetorComercial().equals("") && form.getNomeSetorComercial() != null && !form.getNomeSetorComercial().equals("")){ httpServletRequest.setAttribute("setorComercialEncontrado","true"); } //Quadra if(form.getNomeQuadra() != null && !form.getNomeQuadra().equals("")){ httpServletRequest.setAttribute("quadraNaoEncontrada","true"); } } /** * Pesquisa Gerencial Regional * * @author Rafael Pinto * @date 14/06/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 14/06/2007 */ private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest, EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm 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); } } /** * Pesquisa Categoria Tipo * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarCategoriaTipo(HttpServletRequest httpServletRequest){ FiltroCategoriaTipo filtroCategoriaTipo = new FiltroCategoriaTipo(); filtroCategoriaTipo.setConsultaSemLimites(true); filtroCategoriaTipo.setCampoOrderBy(FiltroCategoriaTipo.DESCRICAO); Collection colecaoTipoCategoria = this.getFachada().pesquisar(filtroCategoriaTipo,CategoriaTipo.class.getName()); if (colecaoTipoCategoria == null || colecaoTipoCategoria.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Categoria Tipo"); } else { httpServletRequest.setAttribute("colecaoTipoCategoria",colecaoTipoCategoria); } } /** * Pesquisa Categoria * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarCategoria(HttpServletRequest httpServletRequest, EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form){ FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.setConsultaSemLimites(true); filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); if(form.getTipoCategoria() != null && !form.getTipoCategoria().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.TIPO_CATEGORIA, form.getTipoCategoria())); } Collection colecaoCategoria = this.getFachada().pesquisar(filtroCategoria,Categoria.class.getName()); if (colecaoCategoria == null || colecaoCategoria.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Categoria"); } else { httpServletRequest.setAttribute("colecaoCategoria",colecaoCategoria); } } /** * Pesquisa Consumo Tarifa * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarConsumoTarifa(HttpServletRequest httpServletRequest){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setConsultaSemLimites(true); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoTarifa = this.getFachada().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); if (colecaoTarifa == null || colecaoTarifa.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Tarifa"); } else { httpServletRequest.setAttribute("colecaoTarifa",colecaoTarifa); } } /** * Pesquisa Perfil Imovel * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarPerfilImovel(HttpServletRequest httpServletRequest){ FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.setConsultaSemLimites(true); filtroImovelPerfil.setCampoOrderBy(FiltroImovelPerfil.DESCRICAO); filtroImovelPerfil.adicionarParametro( new ParametroSimples(FiltroImovelPerfil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoPerfilImovel = this.getFachada().pesquisar(filtroImovelPerfil,ImovelPerfil.class.getName()); if (colecaoPerfilImovel == null || colecaoPerfilImovel.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Perfil do Im�vel"); } else { httpServletRequest.setAttribute("colecaoPerfilImovel",colecaoPerfilImovel); } } /** * Pesquisa Esfera Poder * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarEsferaPoder(HttpServletRequest httpServletRequest){ FiltroEsferaPoder filtroEsferaPoder = new FiltroEsferaPoder(); filtroEsferaPoder.setConsultaSemLimites(true); filtroEsferaPoder.setCampoOrderBy(FiltroEsferaPoder.DESCRICAO); filtroEsferaPoder.adicionarParametro( new ParametroSimples(FiltroEsferaPoder.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoEsferaPoder = this.getFachada().pesquisar(filtroEsferaPoder,EsferaPoder.class.getName()); if (colecaoEsferaPoder == null || colecaoEsferaPoder.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Esfera Poder"); } else { httpServletRequest.setAttribute("colecaoEsferaPoder",colecaoEsferaPoder); } } /** * Pesquisa Situacao Ligacao Esgoto * * @author Rafael Pinto * @date 14/06/2007 */ private void pesquisarLigacaoEsgotoSituacao(HttpServletRequest httpServletRequest){ FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao(); filtroLigacaoEsgotoSituacao.setConsultaSemLimites(true); filtroLigacaoEsgotoSituacao.setCampoOrderBy(FiltroLigacaoEsgotoSituacao.DESCRICAO); filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples(FiltroLigacaoEsgotoSituacao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoSituacaoLigacaoEsgoto = this.getFachada().pesquisar(filtroLigacaoEsgotoSituacao,LigacaoEsgotoSituacao.class.getName()); if (colecaoSituacaoLigacaoEsgoto == null || colecaoSituacaoLigacaoEsgoto.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Situa��o da Liga��o de Esgoto"); } else { httpServletRequest.setAttribute("colecaoSituacaoLigacaoEsgoto",colecaoSituacaoLigacaoEsgoto); } } /** * Pesquisa Perfil Ligacao Esgoto * * @author Rafael Pinto * @date 07/11/2007 */ private void pesquisarLigacaoEsgotoPerfil(HttpServletRequest httpServletRequest){ FiltroLigacaoEsgotoPerfil filtroLigacaoEsgotoPerfil = new FiltroLigacaoEsgotoPerfil(); filtroLigacaoEsgotoPerfil.setConsultaSemLimites(true); filtroLigacaoEsgotoPerfil.setCampoOrderBy(FiltroLigacaoEsgotoPerfil.PERCENTUAL); filtroLigacaoEsgotoPerfil.adicionarParametro( new ParametroSimples(FiltroLigacaoEsgotoPerfil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoPerfilLigacaoEsgoto = this.getFachada().pesquisar(filtroLigacaoEsgotoPerfil,LigacaoEsgotoPerfil.class.getName()); if (colecaoPerfilLigacaoEsgoto == null || colecaoPerfilLigacaoEsgoto.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Perfil da Liga��o de Esgoto"); } else { httpServletRequest.setAttribute("colecaoPerfilLigacaoEsgoto", this.montarColecaoUnicaPerfilLigacaoEsgoto(colecaoPerfilLigacaoEsgoto)); } } /** * Criar uma colecao de perfil somente com um unico percentual * Ele pega o primeiro que vier * * @author Rafael Pinto * @date 07/11/2007 */ private Collection montarColecaoUnicaPerfilLigacaoEsgoto(Collection colecaoPerfilLigacaoEsgoto){ LinkedHashMap map = new LinkedHashMap(); if (colecaoPerfilLigacaoEsgoto != null && !colecaoPerfilLigacaoEsgoto.isEmpty()) { Iterator itera = colecaoPerfilLigacaoEsgoto.iterator(); while (itera.hasNext()) { LigacaoEsgotoPerfil element = (LigacaoEsgotoPerfil) itera.next(); map.put(element.getPercentualEsgotoConsumidaColetada(),element); } } return map.values(); } /** * Pesquisa Consumo Faixa Por Categoria * * @author Rafael Pinto * @date 15/06/2007 */ private void pesquisarConsumoFaixaCategoria(EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form, HttpServletRequest httpServletRequest){ Collection colecaoCategoria = (Collection) httpServletRequest.getAttribute("colecaoCategoria"); LinkedHashMap<String,Collection<ConsumoFaixaCategoria>> linkedHashMapConsumoFaixaCategoria = new LinkedHashMap<String,Collection<ConsumoFaixaCategoria>>(); FiltroConsumoFaixaCategoria filtro = new FiltroConsumoFaixaCategoria(); filtro.setConsultaSemLimites(true); filtro.setCampoOrderBy(FiltroConsumoFaixaCategoria.NUMERO_FAIXA_INICIO); if(colecaoCategoria != null && !colecaoCategoria.isEmpty()){ if(colecaoCategoria.size() == 1){ Categoria categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoCategoria); filtro.adicionarParametro( new ParametroSimples(FiltroConsumoFaixaCategoria.ID_CATEGORIA, categoria.getId())); }else{ Iterator itera = colecaoCategoria.iterator(); while (itera.hasNext()) { Categoria cat = (Categoria) itera.next(); filtro.adicionarParametro(new ParametroSimples( FiltroConsumoFaixaCategoria.ID_CATEGORIA, cat.getId(), ConectorOr.CONECTOR_OR, colecaoCategoria.size())); } } } if (form.getTipoCategoria() != null && !form.getTipoCategoria().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { filtro.adicionarParametro( new ParametroSimples(FiltroConsumoFaixaCategoria.ID_CATEGORIA_TIPO, form.getTipoCategoria())); } filtro.adicionarCaminhoParaCarregamentoEntidade("categoria"); Collection colecaoConsumoFaixaCategoria = this.getFachada().pesquisar(filtro,ConsumoFaixaCategoria.class.getName()); if(colecaoConsumoFaixaCategoria != null && !colecaoConsumoFaixaCategoria.isEmpty()){ Collection<ConsumoFaixaCategoria> colecaoFaixa = null; Iterator itera = colecaoConsumoFaixaCategoria.iterator(); while (itera.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) itera.next(); Categoria categoria = consumoFaixaCategoria.getCategoria(); if(linkedHashMapConsumoFaixaCategoria.get(""+categoria.getId()) != null){ colecaoFaixa = linkedHashMapConsumoFaixaCategoria.get(""+categoria.getId()); colecaoFaixa.add(consumoFaixaCategoria); linkedHashMapConsumoFaixaCategoria.put(""+categoria.getId(),colecaoFaixa); }else{ colecaoFaixa = new ArrayList<ConsumoFaixaCategoria>(); colecaoFaixa.add(consumoFaixaCategoria); linkedHashMapConsumoFaixaCategoria.put(""+categoria.getId(),colecaoFaixa); } } if(form.getTipoConsumoCategoria() != null && !form.getTipoConsumoCategoria().equals("")){ colecaoFaixa = linkedHashMapConsumoFaixaCategoria.get(form.getTipoConsumoCategoria()); } if(colecaoFaixa == null || colecaoFaixa.isEmpty()){ Categoria categoria = (Categoria) colecaoCategoria.iterator().next(); colecaoFaixa = linkedHashMapConsumoFaixaCategoria.get(""+categoria.getId()); String tipoConsumoCategoria= ""+categoria.getId(); form.setTipoConsumoCategoria(tipoConsumoCategoria); }else if(form.getTipoConsumoCategoria() == null){ String idCategoria = (String) linkedHashMapConsumoFaixaCategoria.keySet().iterator().next(); String tipoConsumoCategoria= idCategoria; form.setTipoConsumoCategoria(tipoConsumoCategoria); } form.setColecaoConsumoFaixaCategoria(colecaoFaixa); form.setTamanhoColecao(colecaoFaixa.size()+""); form.setLinkedHashMapConsumoFaixaCategoria(linkedHashMapConsumoFaixaCategoria); }else{ throw new ActionServletException("atencao.naocadastrado", null,"Consumo Faixa Categoria"); } } /** * Remove o Objeto Consumo Faixa Categoria * * @author Rafael Pinto * @date 15/06/2007 * * @param EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm * @param idRemover */ private void removeConsumoFaixaCategoria(EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form, int idRemover) { Collection<ConsumoFaixaCategoria> novaColecaoConsumoFaixaCategoria = new ArrayList<ConsumoFaixaCategoria>(); Collection<ConsumoFaixaCategoria> colecaoParaIterar = (Collection<ConsumoFaixaCategoria>) form.getLinkedHashMapConsumoFaixaCategoria().get(form.getTipoConsumoCategoria()); int index = 0; for (Iterator iter = colecaoParaIterar.iterator(); iter.hasNext();) { index++; ConsumoFaixaCategoria element = (ConsumoFaixaCategoria) iter.next(); if (index != idRemover) { novaColecaoConsumoFaixaCategoria.add(element); } } if(novaColecaoConsumoFaixaCategoria.size() == 0){ throw new ActionServletException("atencao.consumo_faixa_nao_informada"); } this.ordenaColecaoFaixaConsumoCategoria(novaColecaoConsumoFaixaCategoria); form.getLinkedHashMapConsumoFaixaCategoria().put(form.getTipoConsumoCategoria(),novaColecaoConsumoFaixaCategoria); form.setColecaoConsumoFaixaCategoria(novaColecaoConsumoFaixaCategoria); form.setTamanhoColecao(novaColecaoConsumoFaixaCategoria.size()+""); } /** * Valida a inclus�o do Objeto Consumo Faixa Categoria * * @author Rafael Pinto * @date 15/06/2007 */ private void validarInclusaoConsumoFaixaCategoria(EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form){ boolean ehValido = true; Collection<ConsumoFaixaCategoria> colecaoFaixas = (Collection<ConsumoFaixaCategoria>) form.getLinkedHashMapConsumoFaixaCategoria().get(form.getTipoConsumoCategoria()); int numeroFaixaInicio = Integer.parseInt(form.getLimiteInferiorFaixa()); int numeroFaixaFim = Integer.parseInt(form.getLimiteSuperiorFaixa()); Iterator itera = colecaoFaixas.iterator(); while (itera.hasNext()) { ConsumoFaixaCategoria consumoExistente = (ConsumoFaixaCategoria) itera.next(); int numeroFaixaInicioExistente = consumoExistente.getNumeroFaixaInicio(); int numeroFaixaFimExistente = consumoExistente.getNumeroFaixaFim(); if((numeroFaixaInicio >= numeroFaixaInicioExistente && numeroFaixaInicio <= numeroFaixaFimExistente) || (numeroFaixaFim >= numeroFaixaInicioExistente && numeroFaixaInicio <= numeroFaixaFimExistente) ){ ehValido = false; } } if(ehValido){ ConsumoFaixaCategoria consumoFaixaCategoria = new ConsumoFaixaCategoria(); consumoFaixaCategoria.setNumeroFaixaInicio(numeroFaixaInicio); consumoFaixaCategoria.setNumeroFaixaFim(numeroFaixaFim); colecaoFaixas.add(consumoFaixaCategoria); this.ordenaColecaoFaixaConsumoCategoria(colecaoFaixas); form.setColecaoConsumoFaixaCategoria(colecaoFaixas); form.setTamanhoColecao(colecaoFaixas.size()+""); }else{ throw new ActionServletException("atencao.consumo_faixa_ja_informada"); } } /** * Ordena a colecao de consumo faixa categoria * * @author Rafael Pinto * @date 21/06/2007 * * @param Collection<ConsumoFaixaCategoria> */ private void ordenaColecaoFaixaConsumoCategoria(Collection colecaoConsumoFaixaCategoria) { Collections.sort((List) colecaoConsumoFaixaCategoria, new Comparator() { public int compare(Object a, Object b) { ConsumoFaixaCategoria consumo1 = (ConsumoFaixaCategoria) a; ConsumoFaixaCategoria consumo2 = (ConsumoFaixaCategoria) b; Integer faixaInicio1 = consumo1.getNumeroFaixaInicio(); Integer faixaInicio2 = consumo2.getNumeroFaixaInicio(); return faixaInicio1.compareTo(faixaInicio2); } } ); } /** * Pesquisa Tipo de Tarifa Por Categoria * * @author Bruno Barros * @date 11/11/2010 */ private void pesquisarIndicadorTarifaCategoria(HttpServletRequest httpServletRequest){ SistemaParametro sp = Fachada.getInstancia().pesquisarParametrosDoSistema(); int indicador = sp.getIndicadorTarifaCategoria(); httpServletRequest.setAttribute("indicadorTarifaCategoria", indicador); } /** * Pesquisa as subcategorias da categoria informada * * @author Bruno Barros * @date 11/11/2010 */ private void pesquisarSubcategoria(HttpServletRequest httpServletRequest, EmissaoHistogramaEsgotoEconomiaDadosInformarActionForm form) { if ( form.getCategoria() != null ) { FiltroSubCategoria filtro = new FiltroSubCategoria(); filtro.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, form.getCategoria()[0] ) ); filtro.setCampoOrderBy( FiltroSubCategoria.DESCRICAO ); Collection colecaoSubcategoria = this.getFachada().pesquisar( filtro, Subcategoria.class.getName() ); httpServletRequest.setAttribute("colecaoSubcategoria", colecaoSubcategoria); } else { httpServletRequest.setAttribute("colecaoSubcategoria", null); } } }