package gcom.gui.arrecadacao; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.FiltroArrecadador; import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao; import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao.GROUP_BY; import gcom.arrecadacao.bean.FiltrarDadosDiariosArrecadacaoHelper; import gcom.batch.FiltroFuncionalidadeIniciada; import gcom.batch.FuncionalidadeIniciada; import gcom.batch.FuncionalidadeSituacao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.Funcionalidade; import gcom.util.Util; import gcom.util.filtro.ConectorOr; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; import java.util.Map; 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; /** * Description of the Class * * @author Fernanda Paiva * @created 25 de Maio de 2006 **/ public class ExibirConsultarDadosDiariosFormasArrecadacaoComTarifaAction 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("exibirConsultarDadosDiariosFormasArrecadacaoComTarifa"); /** filtro para verificar se a funcionalidade de gerar dados di�rios de arrecada��o esta executando */ FiltroFuncionalidadeIniciada filtroFuncionalidadeIniciada = new FiltroFuncionalidadeIniciada(); filtroFuncionalidadeIniciada.adicionarParametro(new ParametroSimples(FiltroFuncionalidadeIniciada.FUNCIONALIDADE_ID,Funcionalidade.GERAR_DADOS_DIARIOS_ARRECADACAO)); filtroFuncionalidadeIniciada.adicionarParametro(new ParametroSimples(FiltroFuncionalidadeIniciada.FUNCIONALIDADE_SITUACAO,FuncionalidadeSituacao.EM_ESPERA, ConectorOr.CONECTOR_OR, 2)); filtroFuncionalidadeIniciada.adicionarParametro(new ParametroSimples(FiltroFuncionalidadeIniciada.FUNCIONALIDADE_SITUACAO,FuncionalidadeSituacao.EM_PROCESSAMENTO)); Collection colecaoFuncionalidadeEmProcessamento = Fachada.getInstancia().pesquisar(filtroFuncionalidadeIniciada,FuncionalidadeIniciada.class.getName()); /* * Caso a funcionalidade esteja emprocessamento ou em espera * envia uma mensagem ao usu�rio negando o acesso a consulta. */ if(colecaoFuncionalidadeEmProcessamento != null && !colecaoFuncionalidadeEmProcessamento.isEmpty()){ throw new ActionServletException("atencao.funcionalidade.processando"); } String referencia = httpServletRequest.getParameter("referencia"); String idArrecadadorPopup = httpServletRequest.getParameter("idArrecadadorPopup"); httpServletRequest.setAttribute("idArrecadadorPopup", idArrecadadorPopup); Fachada fachada = Fachada.getInstancia(); // Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); FiltroConsultarDadosDiariosArrecadacao filtro = (FiltroConsultarDadosDiariosArrecadacao) sessao.getAttribute("filtroConsultarDadosDiariosArrecadacao"); Integer periodoArrecadacaoInicial = (Integer) sessao.getAttribute("periodoArrecadacaoInicial"); Integer periodoArrecadacaoFinal = (Integer) sessao.getAttribute("periodoArrecadacaoFinal"); if (filtro != null){ filtro = filtro.clone(); filtro.setAgrupamento(GROUP_BY.DATA); filtro.setAnoMesArrecadacao(referencia); if (idArrecadadorPopup != null && !idArrecadadorPopup.equals("") && !idArrecadadorPopup.equals("-1")){ filtro.setIdArrecadador(idArrecadadorPopup); //pesquisar na base o arrecadador FiltroArrecadador filtroArrecadador = new FiltroArrecadador(); filtroArrecadador.adicionarParametro(new ParametroSimples(FiltroArrecadador.ID, idArrecadadorPopup)); filtroArrecadador.adicionarCaminhoParaCarregamentoEntidade("cliente"); Collection colecaoArrecadador = fachada.pesquisar(filtroArrecadador, Arrecadador.class.getName()); Arrecadador arrecadador = (Arrecadador)Util.retonarObjetoDeColecao(colecaoArrecadador); httpServletRequest.setAttribute("nomeAgente", arrecadador.getCliente().getNome()); } Map<Integer, Collection<FiltrarDadosDiariosArrecadacaoHelper>> mapDadosDiariosAnoMes = fachada.filtrarDadosDiariosFormasArrecadacaoComTarifa( periodoArrecadacaoInicial, periodoArrecadacaoFinal, filtro); BigDecimal valorTotal = new BigDecimal(0.0); Collection<FiltrarDadosDiariosArrecadacaoHelper> colecaoDadosDiarios = mapDadosDiariosAnoMes.get(new Integer(referencia)); for (FiltrarDadosDiariosArrecadacaoHelper helper : colecaoDadosDiarios){ valorTotal = valorTotal.add(helper.getValorArrecadacaoLiquida()); } sessao.setAttribute("colecaoDadosDiarios", colecaoDadosDiarios); sessao.setAttribute("valorTotal", valorTotal); Date dataMesInformado = fachada.pesquisarDataProcessamentoMes(new Integer(referencia)); Date dataAtual = fachada.pesquisarDataProcessamentoMes(this.getSistemaParametro().getAnoMesArrecadacao()); if(dataMesInformado!=null){ httpServletRequest .setAttribute("dadosMesInformado", Util.formatarDataComHora(dataMesInformado)); } if(dataAtual!=null){ httpServletRequest .setAttribute("dadosAtual", Util.formatarDataComHora(dataAtual)); } } sessao.setAttribute("referencia",referencia); return retorno; } }