package gcom.gui.relatorio.cobranca; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.Localidade; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio; import gcom.relatorio.cobranca.RelatorioPagamentosContasCobrancaEmpresa; 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; /** * [UC0868]-Gerar Relat�rio de Pagamentos das Contas em Cobranca por EmpresaS * * @author R�mulo Aur�lio * @date 08/01/2009 */ public class GerarRelatorioPagamentosContasCobrancaEmpresaAction extends ExibidorProcessamentoTarefaRelatorio { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // cria a vari�vel de retorno ActionForward retorno = null; GerarRelatorioPagamentosContasCobrancaEmpresaActionForm form = (GerarRelatorioPagamentosContasCobrancaEmpresaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Inicio da parte que vai mandar os parametros para o relat�rio Empresa empresa = new Empresa(); String idEmpresa = form.getIdEmpresa(); Integer gerenciaRegional = null; Integer localidade = null; Integer unidadeNegocio = null; String opcaoTotalizacao = form.getOpcaoTotalizacao(); 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); } Integer referenciaInicialFormatada = null; Integer referenciaFinalFormatada = null; RelatorioPagamentosContasCobrancaEmpresa relatorioPagamentosContasCobrancaEmpresa = new RelatorioPagamentosContasCobrancaEmpresa( (Usuario) (httpServletRequest.getSession(false)) .getAttribute("usuarioLogado")); if (idEmpresa != null && !idEmpresa.trim().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.ID, idEmpresa)); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) { empresa = (Empresa) Util.retonarObjetoDeColecao(colecaoEmpresa); } } String dataInicialForm = form.getPeriodoComandoInicial(); String dataFinalForm = form.getPeriodoComandoFinal(); if (dataInicialForm != null && !dataInicialForm.equalsIgnoreCase("")) { referenciaInicialFormatada = Util .formatarMesAnoComBarraParaAnoMes(dataInicialForm); referenciaFinalFormatada = Util .formatarMesAnoComBarraParaAnoMes(dataFinalForm); if (referenciaInicialFormatada.compareTo(referenciaFinalFormatada) > 0) { throw new ActionServletException( "atencao.referencia.final.menor.referencia.inicial"); } String opcaoRelatorio = form.getOpcaoRelatorio(); relatorioPagamentosContasCobrancaEmpresa.addParametro( "opcaoTotalizacao", opcaoTotalizacao); relatorioPagamentosContasCobrancaEmpresa.addParametro("localidade", localidade); relatorioPagamentosContasCobrancaEmpresa.addParametro( "gerenciaRegional", gerenciaRegional); relatorioPagamentosContasCobrancaEmpresa.addParametro( "unidadeNegocio", unidadeNegocio); relatorioPagamentosContasCobrancaEmpresa.addParametro("empresa", empresa); relatorioPagamentosContasCobrancaEmpresa.addParametro( "opcaoRelatorio", opcaoRelatorio); relatorioPagamentosContasCobrancaEmpresa.addParametro( "referenciaPagamentoInicial", referenciaInicialFormatada); relatorioPagamentosContasCobrancaEmpresa.addParametro( "referenciaPagamentoFinal", referenciaFinalFormatada); } // Verifica se a pesquisa retorno algum resultado int qtdeResultados = fachada .pesquisarDadosGerarRelatorioPagamentosContasCobrancaEmpresaCount( new Integer(idEmpresa), referenciaInicialFormatada, referenciaFinalFormatada); if (qtdeResultados == 0) { // Caso a pesquisa n�o retorne nenhum resultado comunica ao // usu�rio; throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } // Flag para tela de sucesso apos a tela de espera de processamento de relatorio httpServletRequest.setAttribute("telaSucessoRelatorio",true); // Fim da parte que vai mandar os parametros para o relat�rio String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio"); if (tipoRelatorio == null) { tipoRelatorio = TarefaRelatorio.TIPO_PDF + ""; } relatorioPagamentosContasCobrancaEmpresa.addParametro( "tipoFormatoRelatorio", Integer.parseInt(tipoRelatorio)); retorno = processarExibicaoRelatorio( relatorioPagamentosContasCobrancaEmpresa, tipoRelatorio, httpServletRequest, httpServletResponse, actionMapping); // devolve o mapeamento contido na vari�vel retorno return retorno; } /** * Pesquisa uma localidade informada e prepara os dados para exibi��o na * tela * */ 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()); // Se nenhuma localidade for encontrada a mensagem � enviada para a // p�gina if (localidadePesquisada == null || localidadePesquisada.isEmpty()) { // [FS0001 - Verificar exist�ncia de dados] httpServletRequest.setAttribute("codigoLocalidade", ""); httpServletRequest.setAttribute("descricaoLocalidade", "Localidade Inexistente".toUpperCase()); } // obtem o imovel pesquisado if (localidadePesquisada != null && !localidadePesquisada.isEmpty()) { Localidade localidade = localidadePesquisada.iterator().next(); // Manda a Localidade pelo request httpServletRequest.setAttribute("codigoLocalidade", idLocalidade); httpServletRequest.setAttribute("descricaoLocalidade", localidade .getDescricao()); } } }