/**
   * Do editar conciliacion.
   *
   * @param mapping the mapping
   * @param actionForm the action form
   * @param request the request
   * @param response the response
   * @return the action forward
   * @throws Exception the exception
   */
  public final ActionForward doEditarConciliacion(
      final ActionMapping mapping,
      final ActionForm actionForm,
      final HttpServletRequest request,
      final HttpServletResponse response)
      throws Exception {

    PseudoResponse res = new PseudoResponse(request, response);
    ReporteConciliacionForm form;
    String ejecucionNuevo = request.getParameter("ejecucionNuevo");
    String ejecucionAnterior = request.getParameter("ejecucionAnterior");
    String folioNuevo = request.getParameter("folioNuevo");
    String folioAnterior = request.getParameter("folioAnterior");
    final Boolean repBoletas =
        (request.getParameter(REP_BOLETAS) == null)
            ? false
            : Boolean.parseBoolean(request.getParameter(REP_BOLETAS));
    boolean isParcialidad = false;
    boolean isParcialidadAnt = false;
    boolean isFondeo = false;
    boolean isFondeoAnt = false;
    String error = "";

    if (TRUE.equals(request.getParameter("isParcialidad").trim())) {
      isParcialidad = true;
    }
    if (TRUE.equals(request.getParameter("isParcialidadAnt").trim())) {
      isParcialidadAnt = true;
    }
    if (TRUE.equals(request.getParameter("isFondeo").trim())) {
      isFondeo = true;
    }
    if (TRUE.equals(request.getParameter("isFondeoAnt").trim())) {
      isFondeoAnt = true;
    }

    if (actionForm instanceof ReporteConciliacionForm) {
      form = (ReporteConciliacionForm) actionForm;
    } else {
      form = new ReporteConciliacionForm();
    }

    final ReporteConciliacionService service =
        (ReporteConciliacionService)
            getWebApplicationContext().getBean(REPORTE_CONCILIACION_SERVICE);

    if (ejecucionNuevo.trim().equals(ejecucionAnterior.trim())
        && folioNuevo.trim().equals(folioAnterior.trim())
        && isParcialidad == isParcialidadAnt
        && isFondeo == isFondeoAnt) {
      error = ConciliaErrorKeys.PPINV_ERR_CONCILIACION_EDICION_NOCAMBIOS.toString();
    } else if ("".equals(folioNuevo.trim())) {
      error = ConciliaErrorKeys.PPINV_ERR_CONCILIACION_EDICION_FOLIO.toString();
    } else if ("".equals(ejecucionNuevo.trim())) {
      error = ConciliaErrorKeys.PPINV_ERR_CONCILIACION_EDICION_TIPOEJEC.toString();
    }

    if ("".equals(error)) {
      EditarConciliacionForm datosEditConciliacion = form.getDatosEditConciliacion();
      datosEditConciliacion.setFolio(folioNuevo.trim());
      datosEditConciliacion.setFolioAnt(folioAnterior.trim());
      datosEditConciliacion.setEjecucion(ejecucionNuevo.trim());
      datosEditConciliacion.setEjecucionAnt(ejecucionAnterior.trim());
      datosEditConciliacion.setCompraParcial(isParcialidad);
      datosEditConciliacion.setCompraParcialAnt(isParcialidadAnt);
      datosEditConciliacion.setFondeo(isFondeo);
      datosEditConciliacion.setFondeoAnt(isFondeoAnt);

      SantanderSecurityContext sc = null;
      try {
        sc = getSecurityContext(request);
      } catch (Exception e) {
        LOG.error(e.getMessage(), e);
        throw new FrontClientException(GralErrorKeys.PPINV_ERR_GRAL.toString(), e);
      }

      datosEditConciliacion.setMsjRespuesta(
          service.editarConciliacion(datosEditConciliacion, sc, repBoletas));
      res.setResponseError(null);
      res.setResponseContent(jsonize(form));

    } else {
      res.setResponseError(error);
    }
    res.commit();

    return null;
  }