促销优惠券的应用范围超过了redemptionQuantityLimit和redemptionQuantityLimitPerUser

2020-09-11 03:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)根据凭证文档,凭证的兑换不得超过...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


根据凭证文档,凭证的兑换不得超过redemptionQuantityLimit或redemptionQuantityLimitPerUser。 但它没有发生。 优惠券的应用次数超过了两个属性中分配的次数。

我已经调试了代码,发现凭证服务中有两种方法可以兑换凭证。

  1)公共布尔redeemVoucher(String voucherCode,CartModel cart)
          引发JaloPriceFactoryException
        {
          saveIfModified(购物车);
          布尔值已更改= VoucherManager.getInstance()。redeemVoucher(voucherCode,getCart(cart));
          如果(已更改)
          {
            刷新(购物车);
          }
          返回更改;
        }
     
     
    2)public VoucherInvalidationModel redeemVoucher(String voucherCode,OrderModel order)
     
        {
      saveIfModified(order);
     
     
      VoucherInvalidation voucherInvalidation = VoucherManager.getInstance()。redeemVoucher(voucherCode,getOrder(order));
     
          如果(voucherInvalidation == null)
          {
            返回null;
          }
     
          刷新(顺序);
          return(((VoucherInvalidationModel)getModelService()。get(voucherInvalidation)));返回
        }

  

在Wiki中,提到了在应用凭证时,应在VoucherInvalidation表中创建带有促销代码,订购代码和用户的条目。 仅在调用第二个方法时才创建。 但是以某种方式没有调用此方法。 总是调用第一种方法,因此无法检查用户是否使用了给定次数的凭证。

请帮助我。 为什么要这样实现 尽管我们具有将凭证限制为给定次数的属性,但为何凭证无法按预期运行。