package gcom.gui.arrecadacao;
import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao;
import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao.GROUP_BY;
import gcom.arrecadacao.bean.FiltrarDadosDiariosArrecadacaoHelper;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.Util;
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 26 de Maio de 2006
**/
public class ExibirConsultarDadosDiariosAgenteArrecadadorAction 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("exibirConsultarDadosDiariosAgente");
String referencia = httpServletRequest.getParameter("referencia");
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");
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.ARRECADADOR);
filtro.setAnoMesArrecadacao(referencia);
Map<Integer, Collection<FiltrarDadosDiariosArrecadacaoHelper>>
mapDadosDiariosAnoMes = fachada.filtrarDadosDiariosArrecadacao(
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){
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 colecaoArrecadacaoDadosDiariosArrecadador = new ArrayList();
//
// BigDecimal valorTotal = new BigDecimal("0.00");
//
// String descricao = "ARRECADADOR";
//
// Collection colecaoArrecadacaoDadosDiarios = (Collection) sessao
// .getAttribute("colecaoArrecadacaoDadosDiarios");
//
// ArrecadacaoDadosDiariosAcumuladorHelper acumuladorHelper = new ArrecadacaoDadosDiariosAcumuladorHelper(
// ArrecadacaoDadosDiariosItemAcumuladorHelper.GROUP_BY_ARRECADADOR);
//
// colecaoArrecadacaoDadosDiariosArrecadador = acumuladorHelper.aplicarFiltroEAcumularValores(
// colecaoArrecadacaoDadosDiarios,
// referencia, null, null, null, null, null, null, null, null, null, null, true,false, false, false, false);
//
// valorTotal = acumuladorHelper.getValorLiquidoTotal();
//
// Collections.sort((List) colecaoArrecadacaoDadosDiariosArrecadador,
// new Comparator() {
// public int compare(Object a, Object b) {
// String codigo1 = null;
// if(((ArrecadacaoDadosDiariosItemAcumuladorHelper) a)
// .getArrecadador() != null &&
// ((ArrecadacaoDadosDiariosItemAcumuladorHelper) a)
// .getArrecadador().getCliente() != null){
// codigo1 = ((ArrecadacaoDadosDiariosItemAcumuladorHelper) a)
// .getArrecadador().getCliente().getNome();
// }
//
//
// String codigo2 = null;
// if(((ArrecadacaoDadosDiariosItemAcumuladorHelper) b)
// .getArrecadador() != null &&
// ((ArrecadacaoDadosDiariosItemAcumuladorHelper) b)
// .getArrecadador().getCliente() != null){
// codigo2 = ((ArrecadacaoDadosDiariosItemAcumuladorHelper) b)
// .getArrecadador().getCliente().getNome();
// }
//
// if (codigo1 == null || codigo1.equals("")) {
// return -1;
// } else {
// return codigo1.compareTo(codigo2);
// }
// }
// });
//
//
// sessao.setAttribute("colecaoDadosDiarios",colecaoArrecadacaoDadosDiariosArrecadador);
//
//
//
// sessao.setAttribute("referencia",referencia);
// sessao.setAttribute("valorTotal",valorTotal);
return retorno;
}
}