/**
   * Adds handling for credit card receipt amount updates.
   *
   * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping,
   *     org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest,
   *     javax.servlet.http.HttpServletResponse)
   */
  @Override
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    CreditCardReceiptForm ccrForm = (CreditCardReceiptForm) form;

    if (ccrForm.hasDocumentId()) {
      CreditCardReceiptDocument ccrDoc = ccrForm.getCreditCardReceiptDocument();

      ccrDoc.setTotalCreditCardAmount(
          ccrDoc.calculateCreditCardReceiptTotal()); // recalc b/c changes to the amounts could
      // have happened

      // set bank
      ccrDoc.setBank(
          SpringContext.getBean(BankService.class)
              .getByPrimaryId(ccrDoc.getCreditCardReceiptBankCode()));
    }

    // proceed as usual
    return super.execute(mapping, form, request, response);
  }