package gcom.gui.arrecadacao; import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao; import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao.GROUP_BY; import gcom.arrecadacao.bean.FiltrarDadosDiariosArrecadacaoHelper; 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.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.Util; 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, Francisco do Nascimento * @date 26 de Maio de 2006, 08/10/2008 **/ public class ExibirConsultarDadosDiariosLocalidadeAction 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("exibirConsultarDadosDiariosLocalidade"); String referencia = httpServletRequest.getParameter("referencia"); String idGerencia = httpServletRequest.getParameter("idGerencia"); String idEloPopup = httpServletRequest.getParameter("idEloPopup"); String idUnidadeNegocio = httpServletRequest.getParameter("idUnidadeNegocio"); 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"); BigDecimal valorTotalGerencia = new BigDecimal(httpServletRequest.getParameter("valorTotalGerencia")); BigDecimal valorTotalUNEG = new BigDecimal(httpServletRequest.getParameter("valorTotalUnidadeNegocio")); BigDecimal valorTotalElo = new BigDecimal(httpServletRequest.getParameter("valorTotalElo")); sessao.setAttribute("valorTotalGerencia", valorTotalGerencia); sessao.setAttribute("valorTotalUnidadeNegocio", valorTotalUNEG); sessao.setAttribute("valorTotalElo",valorTotalElo); sessao.setAttribute("idGerencia", idGerencia); sessao.setAttribute("idUnidadeNegocio", idUnidadeNegocio); sessao.setAttribute("idEloPopup", idEloPopup); if (idGerencia != null && !idGerencia.equals("") && !idGerencia.equals("-1")){ // pesquisar na base a gerencia Regional FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional (); filtroGerenciaRegional.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.ID, idGerencia)); Collection colecaoGerenciaRegional = fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName()); GerenciaRegional gerenciaRegional = (GerenciaRegional) Util.retonarObjetoDeColecao(colecaoGerenciaRegional); if (gerenciaRegional != null) { sessao.setAttribute("nomeGerencia", gerenciaRegional.getNomeAbreviado() + " - " + gerenciaRegional.getNome()); } else { sessao.removeAttribute("nomeGerencia"); } } else if(idGerencia.equals("-1")){ sessao.setAttribute("nomeGerencia", "TODAS"); } else { sessao.removeAttribute("nomeGerencia"); } if (idUnidadeNegocio != null && !idUnidadeNegocio.equals("") && !idUnidadeNegocio.equals("-1")){ //pesquisar na base a gerencia FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.ID, idUnidadeNegocio)); Collection colecaoUnidadeNegocio = fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); UnidadeNegocio unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoUnidadeNegocio); if (unidadeNegocio != null) { sessao.setAttribute("nomeUnidadeNegocio",unidadeNegocio.getNome()); } else { sessao.removeAttribute("nomeUnidadeNegocio"); } } else if(idUnidadeNegocio.equals("-1")){ sessao.setAttribute("nomeUnidadeNegocio","TODAS"); } else { sessao.removeAttribute("nomeUnidadeNegocio"); } if (idEloPopup != null && !idEloPopup.equals("") && !idEloPopup.equals("-1")){ FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples("id",idEloPopup)); Collection colecaoElo = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if(colecaoElo != null && !colecaoElo.isEmpty()){ Localidade elo = (Localidade) colecaoElo.iterator().next(); sessao.setAttribute("nomeElo",elo.getDescricao()); } else { sessao.removeAttribute("nomeElo"); } } else if(idEloPopup.equals("-1")){ sessao.setAttribute("nomeElo","TODOS"); } else { sessao.removeAttribute("nomeElo"); } sessao.setAttribute("referencia", referencia); Integer anoMesAnterior = Util.subtrairMesDoAnoMes(new Integer(referencia).intValue(), 1); BigDecimal faturamentoCobradoEmConta = fachada.pesquisarFaturamentoCobradoEmConta(anoMesAnterior); sessao.setAttribute("faturamentoCobradoEmConta", Util.formatarMoedaReal(faturamentoCobradoEmConta)); if (filtro != null){ filtro = filtro.clone(); filtro.setAgrupamento(GROUP_BY.LOCALIDADE); filtro.setIdGerenciaRegional(idGerencia); filtro.setIdUnidadeNegocio(idUnidadeNegocio); filtro.setIdElo(idEloPopup); filtro.setAnoMesArrecadacao(referencia); Map<Integer, Collection<FiltrarDadosDiariosArrecadacaoHelper>> mapDadosDiariosAnoMes = fachada.filtrarDadosDiariosArrecadacao( periodoArrecadacaoInicial, periodoArrecadacaoFinal, filtro); BigDecimal valorTotal = new BigDecimal(0.0); // variaveis para gerar a linha de TODOS para as localidades BigDecimal totalDebitos = new BigDecimal(0.0); BigDecimal totalDescontos = new BigDecimal(0.0); BigDecimal totalArrecadacao = new BigDecimal(0.0); BigDecimal totalDevolucoes = new BigDecimal(0.0); BigDecimal totalArrecadacaoLiquida = new BigDecimal(0.0); Collection<FiltrarDadosDiariosArrecadacaoHelper> colecaoDadosDiarios = mapDadosDiariosAnoMes.get(new Integer(referencia)); for (FiltrarDadosDiariosArrecadacaoHelper helper : colecaoDadosDiarios){ valorTotal = valorTotal.add(helper.getValorArrecadacaoLiquida()); totalDebitos = totalDebitos.add(helper.getValorDebitos()); totalDescontos = totalDescontos.add(helper.getValorDescontos()); totalArrecadacao = totalArrecadacao.add(helper.getValorArrecadacao()); totalDevolucoes = totalDevolucoes.add(helper.getValorDevolucoes()); totalArrecadacaoLiquida = totalArrecadacaoLiquida.add(helper.getValorArrecadacaoLiquida()); } // criando helper para ser incluido como um ultimo item da lista Localidade localidade = new Localidade(); localidade.setId(-1); localidade.setDescricao("TODAS"); FiltrarDadosDiariosArrecadacaoHelper helperTodos = new FiltrarDadosDiariosArrecadacaoHelper(); helperTodos.setItemAgrupado(localidade); helperTodos.setValorDebitos(totalDebitos); helperTodos.setValorDescontos(totalDescontos); helperTodos.setValorArrecadacao(totalArrecadacao); helperTodos.setValorDevolucoes(totalDevolucoes); helperTodos.setValorArrecadacaoLiquida(totalArrecadacaoLiquida); helperTodos.setPercentual(new BigDecimal(100.00)); colecaoDadosDiarios.add(helperTodos); 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){ sessao .setAttribute("dadosMesInformado", Util.formatarDataComHora(dataMesInformado)); } else { sessao.removeAttribute("dadosMesInformado"); } if(dataAtual!=null){ sessao .setAttribute("dadosAtual", Util.formatarDataComHora(dataAtual)); } else { sessao.removeAttribute("dadosAtual"); } } else { sessao.removeAttribute("colecaoDadosDiarios"); sessao.removeAttribute("valorTotal"); sessao.removeAttribute("dadosMesInformado"); sessao.removeAttribute("dadosAtual"); } // //////////////////////////////////// // Collection colecaoArrecadacaoDadosDiariosLocalidade = new ArrayList(); // // String descricao = "LOCALIDADE"; // // Collection colecaoArrecadacaoDadosDiarios = (Collection) sessao // .getAttribute("colecaoArrecadacaoDadosDiarios"); // // if(idGerencia != null){ // FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); // // filtroGerenciaRegional.adicionarParametro(new ParametroSimples( // FiltroArrecadacaoDadosDiarios.ID, // idGerencia)); // // Collection colecaoGerenciaRegional = fachada.pesquisar(filtroGerenciaRegional, // GerenciaRegional.class.getName()); // // if (colecaoGerenciaRegional != null // && !colecaoGerenciaRegional.isEmpty()){ // // GerenciaRegional dadosGerencia = (GerenciaRegional) ((List) colecaoGerenciaRegional).get(0); // // if (dadosGerencia.getNome() != null // && !dadosGerencia.getNome().equals("")) { // httpServletRequest.setAttribute("nomeGerencia",dadosGerencia.getNome()); // } // } // } // // if(idUnidadeNegocio != null){ // FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio(); // // filtroUnidadeNegocio.adicionarParametro(new ParametroSimples( // FiltroUnidadeNegocio.ID, // idUnidadeNegocio)); // // Collection colecaoUnidadeNegocio = fachada.pesquisar(filtroUnidadeNegocio, // UnidadeNegocio.class.getName()); // // if (colecaoUnidadeNegocio != null // && !colecaoUnidadeNegocio.isEmpty()){ // // UnidadeNegocio unidadeNegocio = (UnidadeNegocio) ((List) colecaoUnidadeNegocio).get(0); // // if (unidadeNegocio.getNome() != null // && !unidadeNegocio.getNome().equals("")) { // sessao.setAttribute("nomeUnidadeNegocio",unidadeNegocio.getNome()); // httpServletRequest.setAttribute("nomeUnidadeNegocio",unidadeNegocio.getNome()); // httpServletRequest.setAttribute("idUnidadeNegocio",unidadeNegocio.getId().toString()); // } // } // } // // ArrecadacaoDadosDiariosAcumuladorHelper acumuladorHelper = new ArrecadacaoDadosDiariosAcumuladorHelper( // ArrecadacaoDadosDiariosItemAcumuladorHelper.GROUP_BY_LOCALIDADE); // // colecaoArrecadacaoDadosDiariosLocalidade = acumuladorHelper.aplicarFiltroEAcumularValores( // colecaoArrecadacaoDadosDiarios, // referencia, null, null, idGerencia, idUnidadeNegocio, null, null, // null, null, null, null, false, false, false, false, false); // // Collections.sort((List) colecaoArrecadacaoDadosDiariosLocalidade, // new Comparator() { // public int compare(Object a, Object b) { // String codigo1 = ((ArrecadacaoDadosDiariosItemAcumuladorHelper) a) // .getUnidadeNegocio().getNomeAbreviado(); // String codigo2 = ((ArrecadacaoDadosDiariosItemAcumuladorHelper) b) // .getUnidadeNegocio().getNomeAbreviado(); // if (codigo1 == null || codigo1.equals("")) { // return -1; // } else { // return codigo1.compareTo(codigo2); // } // } // }); // // valorTotal = acumuladorHelper.getValorLiquidoTotal(); // // if(colecaoArrecadacaoDadosDiariosLocalidade != null) // { // sessao.setAttribute("colecaoDadosDiarios",colecaoArrecadacaoDadosDiariosLocalidade); // sessao.setAttribute("valorTotal",valorTotal); // sessao.setAttribute("valorTotalElo",valorTotalElo); // } // sessao.setAttribute("idGerencia", idGerencia); // sessao.setAttribute("referencia", referencia); // httpServletRequest.setAttribute("idEloPopup",idEloPopup); return retorno; } }