public ActionForward clearVendor(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    PurchasingFormBase baseForm = (PurchasingFormBase) form;
    CuRequisitionDocument document = (CuRequisitionDocument) baseForm.getDocument();

    document.setVendorHeaderGeneratedIdentifier(null);
    document.setVendorDetailAssignedIdentifier(null);
    document.setVendorDetail(null);
    document.setVendorName("");
    document.setVendorLine1Address("");
    document.setVendorLine2Address("");
    document.setVendorAddressInternationalProvinceName("");
    document.setVendorCityName("");
    document.setVendorStateCode("");
    document.setVendorPostalCode("");
    document.setVendorCountryCode("");
    document.setVendorContractGeneratedIdentifier(null);
    document.setVendorContract(null);
    document.setVendorFaxNumber("");
    document.setVendorCustomerNumber("");
    document.setVendorAttentionName("");
    document.setVendorAddressGeneratedIdentifier(null);
    // clearing value that was set in PurchasingDocumentBase.templateVendorAction
    document.setVendorAddressGeneratedIdentifier(null);
    // clearing value that was set in PurchasingDocumentBase.templateVendorAction
    return mapping.findForward(KFSConstants.MAPPING_BASIC);
  }
  @SuppressWarnings("unchecked")
  @Override
  public ActionForward addItem(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    PurchasingFormBase purchasingForm = (PurchasingFormBase) form;
    PurApItem item = purchasingForm.getNewPurchasingItemLine();
    RequisitionItem requisitionItem = (RequisitionItem) item;
    PurchasingDocument purDocument = (PurchasingDocument) purchasingForm.getDocument();

    if (StringUtils.isBlank(requisitionItem.getPurchasingCommodityCode())) {
      boolean commCodeParam =
          SpringContext.getBean(ParameterService.class)
              .getParameterValueAsBoolean(
                  CuRequisitionDocument.class,
                  PurapParameterConstants.ENABLE_DEFAULT_VENDOR_COMMODITY_CODE_IND);

      if (commCodeParam) {
        if (purchasingForm instanceof RequisitionForm) {
          CuRequisitionDocument reqs = (CuRequisitionDocument) purchasingForm.getDocument();
          VendorDetail dtl = reqs.getVendorDetail();
          if (ObjectUtils.isNotNull(dtl)) {
            List<VendorCommodityCode> vcc = dtl.getVendorCommodities();
            String defaultCommodityCode = "";
            Iterator<VendorCommodityCode> it = vcc.iterator();
            while (it.hasNext()) {
              VendorCommodityCode commodity = it.next();
              if (commodity.isCommodityDefaultIndicator()) {
                defaultCommodityCode = commodity.getPurchasingCommodityCode();
                requisitionItem.setPurchasingCommodityCode(defaultCommodityCode);
              }
            }
          }
        }
      }
    }

    boolean rulePassed =
        SpringContext.getBean(KualiRuleService.class)
            .applyRules(new AttributedAddPurchasingAccountsPayableItemEvent("", purDocument, item));

    if (rulePassed) {
      item = purchasingForm.getAndResetNewPurchasingItemLine();
      purDocument.addItem(item);
      // KFSPTS-985
      if (((PurchasingDocumentBase) (purDocument)).isIntegratedWithFavoriteAccount()) {
        populatePrimaryFavoriteAccount(
            item.getSourceAccountingLines(),
            getAccountClassFromNewPurApAccountingLine(purchasingForm));
      }
    }

    return mapping.findForward(KFSConstants.MAPPING_BASIC);
  }