/**
   * 保存修改的PurchaseOrderItem
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return ActionForward
   * @throws Exception
   */
  public ActionForward update(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    BeanForm itemForm = (BeanForm) form;
    itemForm.setBeanLoader(ServiceLocator.getBeanLoader(request));

    PurchaseOrderItem poi = this.getPurchaseOrderItemFromSession(request);

    if (itemForm.getString("isRecharge").equals(YesNo.YES.getEnumCode().toString()))
      itemForm.populateToBean(poi, request, new String[] {"buyForDepartment.id", "buyForUser.id"});
    else itemForm.populateToBean(poi, request);

    poi.setRecharges(this.getRechargeInfoFromRequest(poi, request));
    poi.setAttachments(this.getPurchaseOrderItemAttachmentListFromRequest(request));

    request.setAttribute("X_OBJECT", poi);
    request.setAttribute("X_ROWPAGE", "purchaseOrder/itemRow.jsp");

    // make itemRow.jsp edit version
    this.setEditing(true, request);

    return mapping.findForward("success");
  }
  /**
   * action method for updating PurchaseOrderItemReceipt
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ActionForward update(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    PurchaseOrderItemReceipt poir = this.getPurchaseOrderItemReceiptFromRequest(request);
    this.checkEditPower(poir, request);

    BeanForm purchaseOrderItemReceiptForm = (BeanForm) form;
    purchaseOrderItemReceiptForm.populateToBean(poir, request);

    PurchaseOrderItemReceiptManager pm = ServiceLocator.getPurchaseOrderItemReceiptManager(request);

    if (!pm.checkQty(poir))
      throw new BackToInputActionException("purchaseOrderItemReceipt.qtyExceeds");

    PurchaseOrderItemReceipt oldPoir = this.getPurchaseOrderItemReceiptFromRequest(request);
    request.setAttribute(
        "X_OBJECT", pm.updatePurchaseOrderItemReceipt(oldPoir, poir, this.getCurrentUser(request)));
    request.setAttribute("X_ROWPAGE", "purchaseOrderItemReceipt/row.jsp");

    return mapping.findForward("success");
  }