public static void index(
      String accion, Long idSolicitud, Long idCEconomico, Long idCEconomicosManuales) {
    if (accion == null) accion = getAccion();
    if (!permiso(accion)) {
      Messages.fatal("No tiene permisos suficientes para realizar esta acción");
      renderTemplate("fap/PaginaCEconomicoManualCopia/PaginaCEconomicoManualCopia.html");
    }

    SolicitudGenerica solicitud =
        PaginaCEconomicoManualCopiaController.getSolicitudGenerica(idSolicitud);
    CEconomico cEconomico =
        PaginaCEconomicoManualCopiaController.getCEconomico(idSolicitud, idCEconomico);

    TipoEvaluacion tipoEvaluacion = TipoEvaluacion.all().first();
    Integer duracion = tipoEvaluacion.duracion - 1;

    CEconomicosManuales cEconomicosManuales = null;
    if ("crear".equals(accion)) {
      cEconomicosManuales = PaginaCEconomicoManualCopiaController.getCEconomicosManuales();
      cEconomicosManuales.valores = new ArrayList<ValoresCEconomico>();
      for (int i = 0; i <= duracion; i++) {
        ValoresCEconomico vCE = new ValoresCEconomico(i);
        cEconomicosManuales.valores.add(vCE);
      }
      if (properties.FapProperties.getBoolean("fap.entidades.guardar.antes")) {

        cEconomicosManuales.save();
        idCEconomicosManuales = cEconomicosManuales.id;
        cEconomico.otros.add(cEconomicosManuales);
        cEconomico.save();

        accion = "editar";
      }

    } else if (!"borrado".equals(accion)) {
      cEconomicosManuales =
          PaginaCEconomicoManualCopiaController.getCEconomicosManuales(
              idCEconomico, idCEconomicosManuales);
      if (cEconomicosManuales == null) {
        cEconomicosManuales = getFlashCEconomicosManuales();
        accion = "crear";
        Messages.clear();
      }
    }

    log.info(
        "Visitando página: " + "fap/PaginaCEconomicoManualCopia/PaginaCEconomicoManualCopia.html");
    renderTemplate(
        "fap/PaginaCEconomicoManualCopia/PaginaCEconomicoManualCopia.html",
        accion,
        idSolicitud,
        idCEconomico,
        idCEconomicosManuales,
        solicitud,
        cEconomico,
        cEconomicosManuales,
        duracion);
  }
  public static void index(
      String accion, Long idSolicitud, Long idRegistroModificacion, Long idRegistro) {
    if (accion == null) accion = getAccion();
    if (!permiso(accion)) {
      Messages.fatal("No tiene suficientes privilegios para acceder a esta solicitud");
      renderTemplate(
          "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html");
    }

    SolicitudGenerica solicitud =
        SolicitudPresentarModificacionFAPController.getSolicitudGenerica(idSolicitud);
    idRegistroModificacion =
        solicitud.registroModificacion.get(solicitud.registroModificacion.size() - 1).id;
    RegistroModificacion registroModificacion =
        SolicitudPresentarModificacionFAPController.getRegistroModificacion(
            idSolicitud, idRegistroModificacion);
    idRegistro = registroModificacion.registro.id;

    Registro registro = null;
    if ("crear".equals(accion)) {
      registro = SolicitudPresentarModificacionFAPController.getRegistro();
      if (properties.FapProperties.getBoolean("fap.entidades.guardar.antes")) {

        registro.save();
        idRegistro = registro.id;
        registroModificacion.registro = registro;
        registroModificacion.save();

        accion = "editar";
      }

    } else if (!"borrado".equals(accion)) {
      registro =
          SolicitudPresentarModificacionFAPController.getRegistro(
              idRegistroModificacion, idRegistro);
    }

    log.info(
        "Visitando página: "
            + "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html");
    renderTemplate(
        "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html",
        accion,
        idSolicitud,
        idRegistroModificacion,
        idRegistro,
        solicitud,
        registroModificacion,
        registro);
  }