ABAP:VF02/VF03销售发票保存前增强

VF02/VF03销售发票保存前增强

SE38:RV60AFZZ

 

 

 

 创建实施

复制代码
ENHANCEMENT 1  ZCD_BL_SAVE_CHECK.    "active version
  DATA:lv_flag TYPE char1.
  DATA:ls_zsdt031 TYPE zsdt031,
       ls_zsdt017 TYPE zsdt017.
  CLEAR:ls_zsdt031,ls_zsdt017.
  IMPORT lv_flag FROM MEMORY ID 'ZSDU003'.
  FREE MEMORY ID 'ZSDU003'.
  IF ( sy-tcode = 'VF02' OR sy-tcode = 'VF03' ) AND lv_flag NE 'X'.
    SELECT SINGLE * FROM zsdt017 INTO ls_zsdt017 WHERE objkey = vbrk-vbeln
                                                   AND objtype = 'BL'
                                                   AND fksto = ''.
    IF sy-subrc = 0.
      IF ls_zsdt017-canum = '0010'.
        SELECT SINGLE zbs INTO @DATA(lv_zbs) FROM zsdt031 WHERE bukrs = @vbrk-vkorg
                                                            AND objtype = 'BL'.
        IF lv_zbs = 'Y'.
          MESSAGE '发票是自动创建的,不能修改及过账' TYPE 'E'.
        ENDIF.
      ELSE.
        SELECT SINGLE * FROM zsdt017 INTO @DATA(ls_zsdt017_2) WHERE zrfc_logid = @ls_zsdt017-zrfc_logid
                                                               AND canum = '0010'.
        IF sy-subrc = 0.
          SELECT SINGLE bukrs INTO @DATA(lv_bukrs) FROM rbkp WHERE belnr = @ls_zsdt017_2-objkey
                                                               AND gjahr = @ls_zsdt017_2-gjahr.
          IF sy-subrc = 0.
            SELECT SINGLE zbs INTO lv_zbs FROM zsdt031 WHERE bukrs = lv_bukrs
                                                         AND objtype = 'IN'.
            IF sy-subrc = 0 AND lv_zbs = 'Y'.
              MESSAGE '发票是自动创建的,不能修改及过账' TYPE 'E'.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.
*    SELECT SINGLE * FROM zsdt031 INTO ls_zsdt031 WHERE bukrs = vbrk-vkorg
*                                                   AND objtype = 'BL'.
*    IF ls_zsdt031-zbs = 'Y'.
*      SELECT SINGLE * FROM zsdt017 INTO ls_zsdt017 WHERE objkey = vbrk-vbeln
*                                                     AND objtype = 'BL'.
*      IF sy-subrc = 0.
*        MESSAGE '发票是自动创建的,不能修改及过账' TYPE 'E'.
*      ENDIF.
*    ENDIF.
  ENDIF.

ENDENHANCEMENT.
复制代码
posted @   阿胖的阿多  阅读(825)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示