package gcom.gui.arrecadacao; import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao; import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao.GROUP_BY; import gcom.arrecadacao.bean.FiltrarDadosDiariosArrecadacaoHelper; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.Util; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Map; import java.util.TreeMap; 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 23 de Maio de 2006 **/ public class ExibirConsultarDadosDiariosArrecadadorAction 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("exibirConsultarDadosDiariosArrecadador"); 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"); FiltrarDadosDiariosArrecadacaoActionForm filtroDadosDiarios = (FiltrarDadosDiariosArrecadacaoActionForm) sessao.getAttribute("FiltrarDadosDiariosArrecadacaoActionForm"); String nomeArrecadador = filtroDadosDiarios.getNomeArrecadador(); Collection<BigDecimal> colecaoValorTotal = new ArrayList<BigDecimal>(); BigDecimal valorTotalPeriodo = new BigDecimal(0.0); String dataAtualAux = null; if (filtro != null){ filtro = filtro.clone(); filtro.setAgrupamento(GROUP_BY.ANO_MES); Map<Integer, Collection<FiltrarDadosDiariosArrecadacaoHelper>> mapDadosDiariosAnoMes = fachada.filtrarDadosDiariosArrecadacao( periodoArrecadacaoInicial, periodoArrecadacaoFinal, filtro); Map<Integer, FiltrarDadosDiariosArrecadacaoHelper> mapDadosProcessamento = new TreeMap<Integer, FiltrarDadosDiariosArrecadacaoHelper>(); for(Integer itemAnoMes : mapDadosDiariosAnoMes.keySet()){ BigDecimal valorTotal = new BigDecimal(0.0); for (FiltrarDadosDiariosArrecadacaoHelper helper : mapDadosDiariosAnoMes.get(itemAnoMes)){ valorTotal = valorTotal.add(helper.getValorArrecadacaoLiquida()); } colecaoValorTotal.add(valorTotal); valorTotalPeriodo = valorTotalPeriodo.add(valorTotal); Date dataMesInformado = fachada.pesquisarDataProcessamentoMes(itemAnoMes); Date dataAtual = fachada.pesquisarDataProcessamentoMes(this.getSistemaParametro().getAnoMesArrecadacao()); FiltrarDadosDiariosArrecadacaoHelper helperDadasProcessamento = new FiltrarDadosDiariosArrecadacaoHelper(); if(dataMesInformado!=null){ helperDadasProcessamento .setUltimoProcessamentoMesInformado(Util.formatarDataComHora(dataMesInformado)); } if(dataAtual!=null){ helperDadasProcessamento .setUltimoProcessamentoAtualSistema(Util.formatarDataComHora(dataAtual)); dataAtualAux = Util.formatarDataComHora(dataAtual); } if ( itemAnoMes >= this.getSistemaParametro().getAnoMesArrecadacao() ){ // httpServletRequest.setAttribute("tipoProcessamento","provisorio"); helperDadasProcessamento.setTipoProcessamento("provisorio"); }else{ // httpServletRequest.setAttribute("tipoProcessamento","definitivo"); helperDadasProcessamento.setTipoProcessamento("definitivo"); } Integer anoMesAnterior = Util.subtrairMesDoAnoMes(itemAnoMes, 1); BigDecimal faturamentoCobradoEmConta = fachada.pesquisarFaturamentoCobradoEmConta(anoMesAnterior); helperDadasProcessamento.setFaturamentoCobradoEmConta( Util.formatarMoedaReal(faturamentoCobradoEmConta)); mapDadosProcessamento.put(itemAnoMes, helperDadasProcessamento); } if ( dataAtualAux != null ){ sessao.setAttribute("dataAtual", dataAtualAux); } sessao.setAttribute("mapDadosDiariosAnoMes", mapDadosDiariosAnoMes); sessao.setAttribute("colecaoValorTotal", colecaoValorTotal); sessao.setAttribute("valorTotalPeriodo", valorTotalPeriodo); sessao.setAttribute("mapDadosProcessamento", mapDadosProcessamento); sessao.setAttribute("nomeArrecadador", nomeArrecadador); SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); if (sistemaParametro.getCdDadosDiarios() != null && sistemaParametro.getCdDadosDiarios() == 1){ sessao.setAttribute("exibirFaturamentoCobrado", true); } } // Collection colecaoArrecadacaoDadosDiariosArrecadador = (Collection) sessao // .getAttribute("colecaoArrecadacaoDadosDiarios"); // // if(sessao.getAttribute("dadosArrecadacaoArrecadador") == null && colecaoArrecadacaoDadosDiariosArrecadador != null){ // BigDecimal valor = new BigDecimal("0.00"); // // Comparator comparadorAnoMes = new Comparator(){ // public int compare(Object a, Object b) { // String codigo1 = ((ArrecadacaoDadosDiariosItemAcumuladorHelper) a) // .getAnoMesReferencia() + ""; // String codigo2 = ((ArrecadacaoDadosDiariosItemAcumuladorHelper) b) // .getAnoMesReferencia() + ""; // if (codigo1 == null || codigo1.equals("")) { // return -1; // } else { // return codigo1.compareTo(codigo2); // } // } // }; // // Map<ArrecadacaoDadosDiariosItemAcumuladorHelper, // Collection<ArrecadacaoDadosDiariosItemAcumuladorHelper>> mapAnoMes = new TreeMap(comparadorAnoMes); // // ArrecadacaoDadosDiariosAcumuladorHelper acumuladorHelper = new ArrecadacaoDadosDiariosAcumuladorHelper( // ArrecadacaoDadosDiariosItemAcumuladorHelper.GROUP_BY_ANO_MES); // // Collection<ArrecadacaoDadosDiariosItemAcumuladorHelper> itensAgrupadosAnoMes = // acumuladorHelper.aplicarFiltroEAcumularValores( // colecaoArrecadacaoDadosDiariosArrecadador, null, null, null, null, // null, null, null, null, null, null, null, false, false, false, false, false); // // valor = acumuladorHelper.getValorLiquidoTotal(); // // sessao.setAttribute("dadosArrecadacaoArrecadador",itensAgrupadosAnoMes); // sessao.setAttribute("valordadosArrecadacaoArrecadador",valor); // } return retorno; } }