package gcom.gui.relatorio.financeiro; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.RelatorioVazioException; import gcom.relatorio.financeiro.RelatorioResumoDevedoresDuvidosos; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; 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; /** * [UC0487] Gerar Relat�rio de Resumo de Devedores Duvidosos * * @author Vivianne Sousa * @created 20/07/2007 */ public class GerarRelatorioResumoDevedoresDuvidososAction extends ExibidorProcessamentoTarefaRelatorio { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = null; GerarRelatorioResumoDevedoresDuvidososActionForm form = (GerarRelatorioResumoDevedoresDuvidososActionForm) actionForm; String mesAno = form.getMesAno(); Integer gerenciaRegional = null; Integer localidade = null; Integer unidadeNegocio = null; String opcaoTotalizacao = form.getOpcaoTotalizacao(); if(mesAno == null || mesAno.equals("")){ throw new ActionServletException("atencao.required", null, "M�s/Ano da Arrecada��o"); } if (opcaoTotalizacao == null || opcaoTotalizacao.equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Op��o de Totaliza��o "); } if (opcaoTotalizacao.trim().equals("gerenciaRegional")) { gerenciaRegional = Integer.parseInt(form.getGerenciaRegionalId()); if (gerenciaRegional == null || gerenciaRegional.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ActionServletException("atencao.required", null, "Ger�ncia Regional"); } } else if (opcaoTotalizacao.trim().equals("gerenciaRegionalLocalidade")) { gerenciaRegional = Integer.parseInt(form.getGerenciaRegionalporLocalidadeId()); if (gerenciaRegional == null || gerenciaRegional.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ActionServletException("atencao.required", null, "Ger�ncia Regional"); } } if (opcaoTotalizacao.trim().equals("localidade")) { String codigoLocalidade = form.getCodigoLocalidade(); if (codigoLocalidade == null || codigoLocalidade.equalsIgnoreCase("")) { throw new ActionServletException("atencao.required", null, "Localidade "); } else { pesquisarLocalidade(codigoLocalidade, httpServletRequest); } localidade = Integer.parseInt(codigoLocalidade); } if (opcaoTotalizacao.trim().equals("unidadeNegocio")) { String idUnidadeNegocio = form.getUnidadeNegocioId(); if (idUnidadeNegocio == null || idUnidadeNegocio.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { throw new ActionServletException("atencao.required", null, "Unidade de Neg�cio "); } unidadeNegocio = Integer.parseInt(idUnidadeNegocio); } int mesAnoInteger = Integer.parseInt(mesAno.substring(0, 2) + mesAno.substring(3, 7)); // Verificar se o Ano/M�s est� valido [FS0002] if (!Util.validarMesAno(mesAno)) { // Se deu algum erro neste ponto, indica falha no sistema throw new ActionServletException("erro.sistema"); } // [FS0002] Verificar Refer�ncia Contabil verificarReferenciaContabilCorrente(mesAno); // Parte que vai mandar o relat�rio para a tela // cria uma inst�ncia da classe do relat�rio RelatorioResumoDevedoresDuvidosos relatorioResumoDevedoresDuvidosos = new RelatorioResumoDevedoresDuvidosos( (Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado")); relatorioResumoDevedoresDuvidosos.addParametro("opcaoTotalizacao", opcaoTotalizacao); relatorioResumoDevedoresDuvidosos.addParametro("mesAnoInteger", mesAnoInteger); relatorioResumoDevedoresDuvidosos.addParametro("localidade", localidade); relatorioResumoDevedoresDuvidosos.addParametro("gerenciaRegional", gerenciaRegional); relatorioResumoDevedoresDuvidosos.addParametro("unidadeNegocio",unidadeNegocio); String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorioResumoDevedoresDuvidosos.addParametro("tipoFormatoRelatorio", Integer .parseInt(tipoRelatorio)); try { retorno = processarExibicaoRelatorio(relatorioResumoDevedoresDuvidosos, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); } catch (RelatorioVazioException ex) { // manda o erro para a p�gina no request atual reportarErros(httpServletRequest, "atencao.relatorio.vazio"); // seta o mapeamento de retorno para a tela de aten��o de popup retorno = actionMapping.findForward("telaAtencaoPopup"); } return retorno; } private void pesquisarLocalidade(String idLocalidade, HttpServletRequest httpServletRequest) { Fachada fachada = Fachada.getInstancia(); // Pesquisa a localidade na base FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, idLocalidade)); Collection<Localidade> localidadePesquisada = fachada.pesquisar( filtroLocalidade, Localidade.class.getName()); if (localidadePesquisada == null || localidadePesquisada.isEmpty()) { // a localidade n�o foi encontrada throw new ActionServletException("atencao.localidade.inexistente"); } } //[FS0002] Verificar Refer�ncia Contabil public void verificarReferenciaContabilCorrente(String anoMes){ Fachada fachada = Fachada.getInstancia(); SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); boolean verificacao = Util.compararAnoMesReferencia(anoMes .substring(3, 7) + anoMes.substring(0, 2), sistemaParametro .getAnoMesArrecadacao().toString(), ">"); if (verificacao) { String anoMesSistema = sistemaParametro.getAnoMesArrecadacao().toString(); throw new ActionServletException("atencao.mes_ano.contabil.superior", null, anoMesSistema.substring(0, 2)+ "/" + anoMesSistema.substring(3, 7)); } } }