/**
   * <b> Permite llenar el grafico con los valores obtenidos. </b>
   *
   * <p>[Author: Paul Jimenez, Date: 22/06/2016]
   *
   * @return
   * @throws HiperionException
   */
  private BarChartModel initBarModel() throws HiperionException {
    BarChartModel model = new BarChartModel();

    ChartSeries recaudaciones = new ChartSeries();
    recaudaciones.setLabel("Certificaciones");

    ChartSeries recaudacionesPres = new ChartSeries();
    recaudacionesPres.setLabel("Presupuestadas");
    try {

      if (!recaudacionDTOs.isEmpty()) {

        for (RecaudacionDTO recaudacionDTO : recaudacionDTOs) {
          recaudaciones.set(
              recaudacionDTO.getPartida().getPartida(), recaudacionDTO.getValorRecaudacion());
        }

      } else {
        recaudaciones.set("A", 0);
        recaudaciones.set("B", 1);
      }

      Egreso egresoDB =
          egresoService.buscarEgresos(
              reporteRecaudacionBean.getPeriodo(), reporteRecaudacionBean.getIdAfectacion());

      if (egresoDB != null) {
        List<DetalleEgreso> detEgresos = egresoService.buscarEgresos(egresoDB.getIdEgreso());

        for (DetalleEgreso egreso : detEgresos) {
          recaudacionesPres.set(egreso.getPartida().getPartida(), egreso.getPresupuesto());
        }

      } else {
        recaudacionesPres.set("A", 0);
        recaudacionesPres.set("B", 1);
      }

      model.addSeries(recaudaciones);
      model.addSeries(recaudacionesPres);

    } catch (HiperionException e) {
      throw new HiperionException(e);
    }

    return model;
  }
  /**
   * <b> permite buscar las recaudaciones que fueron ingresadas. </b>
   *
   * <p>[Author: Paul Jimenez, Date: 09/06/2016]
   *
   * @throws HiperionException
   */
  public void generarReporte() throws HiperionException {

    totalGastos = 0.0;

    recaudacionDTOs.clear();

    try {

      Long idAfectacion = reporteRecaudacionBean.getIdAfectacion();

      List<Gasto> gastos = recaudacionService.obtenerGastos(idAfectacion);

      for (Gasto gasto : gastos) {
        RecaudacionDTO recaudacionDTO = new RecaudacionDTO();

        recaudacionDTO.setBeneficiario(gasto.getBeneficiarioGasto());
        recaudacionDTO.setComprobante(gasto.getComprobanteGasto());
        recaudacionDTO.setValorRecaudacion(gasto.getValorGasto());
        recaudacionDTO.setFechaRecaudacion(gasto.getFechaGasto());

        Partida partida = egresoService.obtenerPartidaById(gasto.getPartida().getIdPartida());
        recaudacionDTO.setPartida(partida);

        totalGastos += gasto.getValorGasto();
        recaudacionDTOs.add(recaudacionDTO);
      }

      obtenerTotalGastos();
      createBarModels();

    } catch (HiperionException e) {
      throw new HiperionException(e);
    }
  }