package gcom.gui.arrecadacao;
import gcom.arrecadacao.ArrecadacaoForma;
import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao;
import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacaoAuxiliar;
import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacao.GROUP_BY;
import gcom.arrecadacao.FiltroConsultarDadosDiariosArrecadacaoAuxiliar.GROUP_BY_AUX;
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 ExibirConsultarDadosDiariosArrecadacaoFormaComTarifaAction 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("exibirConsultarDadosDiariosArrecadacaoFormaComTarifa");
String referencia = httpServletRequest.getParameter("referencia");
String idArrecadador = httpServletRequest.getParameter("idArrecadadorPopup");
httpServletRequest.setAttribute("idArrecadadorPopup", idArrecadador);
httpServletRequest.setAttribute("nomeAgente", httpServletRequest.getParameter("nomeAgente"));
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando implementar a parte de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
FiltroConsultarDadosDiariosArrecadacaoAuxiliar filtro = (FiltroConsultarDadosDiariosArrecadacaoAuxiliar)
sessao.getAttribute("filtroConsultarDadosDiariosArrecadacaoAuxiliar");
Integer periodoArrecadacaoInicial = (Integer)
sessao.getAttribute("periodoArrecadacaoInicial");
Integer periodoArrecadacaoFinal = (Integer)
sessao.getAttribute("periodoArrecadacaoFinal");
String valorTotalArrecadador = httpServletRequest.getParameter("valorTotalArrecadador");
httpServletRequest.setAttribute("valorTotalArrecadador", new BigDecimal(valorTotalArrecadador));
httpServletRequest.setAttribute("referencia", referencia);
if (filtro != null){
filtro = filtro.clone();
filtro.setAgrupamento(GROUP_BY_AUX.FORMA_ARRECADACAO);
filtro.setAnoMesArrecadacao(referencia);
filtro.setIdArrecadador(idArrecadador);
Map<Integer, Collection<FiltrarDadosDiariosArrecadacaoHelper>>
mapDadosDiariosAnoMes = fachada.filtrarDadosDiariosArrecadacaoAuxiliar(
periodoArrecadacaoInicial,
periodoArrecadacaoFinal,
filtro);
BigDecimal valorTotal = new BigDecimal(0.0);
// variaveis para gerar a linha de TODAS para as arrecadacao formas
int qtdDocumentos = 0;
int qtdPagamentos = 0;
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());
qtdDocumentos += helper.getQuantidadeDocumentos();
qtdPagamentos += helper.getQuantidadePagamentos();
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
ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma();
arrecadacaoForma.setId(-1);
arrecadacaoForma.setDescricao("TODAS");
FiltrarDadosDiariosArrecadacaoHelper helperTodos = new FiltrarDadosDiariosArrecadacaoHelper();
helperTodos.setItemAgrupado(arrecadacaoForma);
helperTodos.setQuantidadeDocumentos(qtdDocumentos);
helperTodos.setQuantidadePagamentos(qtdPagamentos);
helperTodos.setValorDebitos(totalDebitos);
helperTodos.setValorDescontos(totalDescontos);
helperTodos.setValorArrecadacao(totalArrecadacao);
helperTodos.setValorDevolucoes(totalDevolucoes);
helperTodos.setValorArrecadacaoLiquida(totalArrecadacaoLiquida);
helperTodos.setPercentual(new BigDecimal(100.00));
colecaoDadosDiarios.add(helperTodos);
httpServletRequest.setAttribute("colecaoDadosDiarios", colecaoDadosDiarios);
httpServletRequest.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));
}
}
return retorno;
}
}