package gcom.gui.relatorio.cobranca; import java.util.Collection; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaBoletimMedicao; import gcom.cobranca.CobrancaGrupo; import gcom.cobranca.FiltroCobrancaBoletimMedicao; import gcom.cobranca.FiltroCobrancaGrupo; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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; /** * [UC1153] Solicitar Gera��o/Emiss�o Boletim de Medi��o de Cobran�a * * @author Mariana Victor * * @date 21/03/2011 */ public class ExibirSolicitarGeracaoBoletimMedicaoCobrancaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirSolicitarGeracaoBoletimMedicaoCobranca"); GerarRelatorioBoletimMedicaoCobrancaForm form = (GerarRelatorioBoletimMedicaoCobrancaForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); if (form.getMesAnoReferencia() != null && !form.getMesAnoReferencia().equals("")) { Integer anoMes = Util.formatarMesAnoComBarraParaAnoMes(form.getMesAnoReferencia()); if (!Util.validarMesAno(form.getMesAnoReferencia())) { throw new ActionServletException("atencao.mes.ano.informado.invalido"); } if (Util.compararAnoMesReferencia(anoMes, sistemaParametro.getAnoMesFaturamento(), ">")){ throw new ActionServletException("atencao.mes.ano.informado.maior.faturamento.atual", null, sistemaParametro.getAnoMesFaturamento().toString()); } } if (form.getTipoOperacao() != null && form.getTipoOperacao().equals("1")) { Integer anoMes = Util.formatarMesAnoComBarraParaAnoMes(form.getMesAnoReferencia()); Integer idGrupoCobranca = new Integer(form.getGrupoCobranca()); // [FS0002] � A��es n�o encerradas no cronograma. Integer contador = fachada.pesquisarAcoesEncerradasCronograma( anoMes, idGrupoCobranca); if (contador != null && contador > 0){ throw new ActionServletException("atencao.faltam.acoes.encerradas.cronograma.grupo"); } //[FS0003] � Boletim j� existe. FiltroCobrancaBoletimMedicao filtroCobrancaBoletimMedicao = new FiltroCobrancaBoletimMedicao(); filtroCobrancaBoletimMedicao.adicionarParametro( new ParametroSimples(FiltroCobrancaBoletimMedicao.ANO_MES_REFERENCIA, anoMes)); filtroCobrancaBoletimMedicao.adicionarParametro( new ParametroSimples(FiltroCobrancaBoletimMedicao.COBRANCA_GRUPO_ID, idGrupoCobranca)); Collection colecaoCobrancaBoletimMedicao = fachada.pesquisar( filtroCobrancaBoletimMedicao, CobrancaBoletimMedicao.class.getName()); if (colecaoCobrancaBoletimMedicao != null && !colecaoCobrancaBoletimMedicao.isEmpty()) { throw new ActionServletException("atencao.boletim.ja.existe"); } // Usuario logado no sistema Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); //[UC1151] Gerar Boletim de Medi��o fachada.gerarBoletimMedicao(idGrupoCobranca,anoMes,usuarioLogado); retorno = actionMapping .findForward("telaSucesso"); montarPaginaSucesso(httpServletRequest, " Gerar Boletim de Medi��o encaminhado para processamento. ","Voltar","/exibirSolicitarGeracaoBoletimMedicaoCobrancaAction.do?menu=sim"); return retorno; } // Tipo da Opera��o igual a Emitir Boletim if (form.getTipoOperacao() != null && form.getTipoOperacao().equals("2")) { // Pesquisa Localidade Inicial if(form.getIdLocalidadeInicial() != null && !form.getIdLocalidadeInicial().equals("") && (form.getDescricaoLocalidadeInicial() == null || form.getDescricaoLocalidadeInicial().equals(""))){ FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, form.getIdLocalidadeInicial())); Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if(colecaoLocalidade.isEmpty()){ form.setIdLocalidadeInicial(""); form.setDescricaoLocalidadeInicial("Localidade Inexistente"); httpServletRequest.setAttribute("idLocalidadeInicialNaoEncontrado","exception"); httpServletRequest.setAttribute("nomeCampo","idLocalidadeInicial"); }else{ Localidade localidade = (Localidade)Util.retonarObjetoDeColecao(colecaoLocalidade); form.setIdLocalidadeInicial(localidade.getId().toString()); form.setDescricaoLocalidadeInicial(localidade.getDescricao()); if(form.getIdLocalidadeFinal() == null || form.getIdLocalidadeFinal().equals("")){ form.setIdLocalidadeFinal(localidade.getId().toString()); form.setDescricaoLocalidadeFinal(localidade.getDescricao()); } httpServletRequest.setAttribute("nomeCampo","idLocalidadeFinal"); } } // Pesquisa Localidade Final if(form.getIdLocalidadeFinal() != null && !form.getIdLocalidadeFinal().equals("") &&(form.getDescricaoLocalidadeFinal() == null || form.getDescricaoLocalidadeFinal().equals(""))){ FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, form.getIdLocalidadeFinal())); Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if(colecaoLocalidade.isEmpty()){ form.setIdLocalidadeFinal(""); form.setDescricaoLocalidadeFinal("Localidade Inexistente"); httpServletRequest.setAttribute("nomeCampo","idLocalidadeFinal"); httpServletRequest.setAttribute("idLocalidadeFinalNaoEncontrado","exception"); }else{ Localidade localidade = (Localidade)Util.retonarObjetoDeColecao(colecaoLocalidade); form.setIdLocalidadeFinal(localidade.getId().toString()); form.setDescricaoLocalidadeFinal(localidade.getDescricao()); httpServletRequest.setAttribute("nomeCampo","codigoSetorComercialInicial"); } } } if (httpServletRequest.getAttribute("colecaoCobrancaGrupo") == null || httpServletRequest.getAttribute("colecaoCobrancaGrupo").equals("")){ // Popular o combo-box de Grupo de Cobran�a this.pesquisarCobrancaGrupo(httpServletRequest); } if (httpServletRequest.getAttribute("colecaoGerenciaRegional") == null || httpServletRequest.getAttribute("colecaoGerenciaRegional").equals("")){ // Popular o combo-box de Ger�ncia Regional this.pesquisarGerenciaRegional(httpServletRequest); } this.pesquisarUnidadeNegocio(httpServletRequest,form); return retorno; } private void pesquisarCobrancaGrupo(HttpServletRequest httpServletRequest){ FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo(); filtroCobrancaGrupo.setConsultaSemLimites(true); filtroCobrancaGrupo.setCampoOrderBy(FiltroCobrancaGrupo.DESCRICAO); filtroCobrancaGrupo.adicionarParametro( new ParametroSimples(FiltroCobrancaGrupo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoCobrancaGrupo = this.getFachada().pesquisar(filtroCobrancaGrupo,CobrancaGrupo.class.getName()); if (colecaoCobrancaGrupo == null || colecaoCobrancaGrupo.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null,"Grupo de cobran�a"); } else { httpServletRequest.setAttribute("colecaoCobrancaGrupo",colecaoCobrancaGrupo); } } private void pesquisarGerenciaRegional(HttpServletRequest httpServletRequest){ FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.setConsultaSemLimites(true); filtroGerenciaRegional.setCampoOrderBy(FiltroGerenciaRegional.NOME); filtroGerenciaRegional.adicionarParametro( new ParametroSimples(FiltroGerenciaRegional.INDICADOR_USO, 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); } } private void pesquisarUnidadeNegocio(HttpServletRequest httpServletRequest, GerarRelatorioBoletimMedicaoCobrancaForm 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); } } }