VF01\VF04\ZSD170A开票增强检查/校验

1、SE18:增强点BADI_SD_BILLING

2、增强实施:SIPT_SD_BILLING

3、方法:INVOICE_DOCUMENT_CHECK

4、代码实现(隐式增强)

ENHANCEMENT 1  ZIM_INVOCE_CHECK.    "active version
*  CHECK SY-TCODE = 'VF01' OR SY-TCODE = 'VF04' OR SY-CPROG = 'SDBILLDL'.
    DATA:WS_VBRKVB TYPE VBRKVB.
    DATA:WS_FXVBRP TYPE VBRPVB.
    DATA:WADAT_IST TYPE LIKP-WADAT_IST.
    DATA:lv_dummy        TYPE C.
    DATA:lv_err TYPE C.
    "FKDAT
    LOOP AT FXVBRK INTO WS_VBRKVB.
      LOOP AT FXVBRP INTO WS_FXVBRP WHERE VBELN = WS_VBRKVB-VBELN.
        IF WS_FXVBRP-VGBEL IS NOT INITIAL.
          CLEAR WADAT_IST.
          SELECT SINGLE WADAT_IST INTO WADAT_IST FROM LIKP WHERE VBELN = WS_FXVBRP-VGBEL.
          IF WS_VBRKVB-FKDAT < WADAT_IST.

            FBAD_DATA = 'X'.
            IF sy-tcode = 'ZSD170A' AND SY-CPROG = 'ZSD170A'.
              MESSAGE e078(ZSD) INTO lv_dummy.
              CALL FUNCTION 'SIPT_VBFS_CREATE_MESSAGE_SD'
              EXPORTING
                IV_VBELN = WS_VBRKVB-VBELN
                IV_POSNR = '000000'
                IV_MSGID = SY-MSGID
                IV_MSGTY = SY-MSGTY
                IV_MSGNO = SY-MSGNO
                IV_MSGV1 = '开票日期不允许小于发货日期!'
                IV_MSGV2 = SY-MSGV2
                IV_MSGV3 = SY-MSGV3
                IV_MSGV4 = SY-MSGV4.
            ELSE.
                MESSAGE W078(ZSD) DISPLAY LIKE 'E'.
            ENDIF.

            "      lv_err = 'X'.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDLOOP.

*    IF lv_err = 'X'.
*      MESSAGE e078(ZSD) .
*      FBAD_DATA = 'X'.
*       " MESSAGE W078(ZSD) DISPLAY LIKE 'E'.
*    ENDIF.
ENDENHANCEMENT.

参考:https://blog.csdn.net/ROYHAO/article/details/124322194

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值