zoukankan      html  css  js  c++  java
  • 返回支付成功的发票、报销凭证、借款凭证

    FUNCTION zrfc_mm014.
    *"----------------------------------------------------------------------
    *"*"Local interface:
    *"  IMPORTING
    *"     VALUE(CALLNO) TYPE  ZCALLNO
    *"  TABLES
    *"      ZMMS002 STRUCTURE  ZMMS002
    *"----------------------------------------------------------------------
    TYPES:BEGIN OF ty_regup,
      bukrs      TYPE regup-bukrs,
      belnr      TYPE regup-belnr,
      gjahr      TYPE regup-gjahr,
      retn_date  TYPE regup-retn_date,
      zzbelnr    TYPE regup-zzbelnr,
      zzgjahr    TYPE regup-zzgjahr,
      END OF ty_regup.
    
    DATA: lt_zmmt002  TYPE TABLE OF zmmt002,
          lt_zmmt002s TYPE TABLE OF zmmt002,
          ls_zmmt002  LIKE LINE  OF lt_zmmt002,
          lt_regup    TYPE TABLE OF ty_regup,
          ls_regup    TYPE ty_regup,
          lv_datano   TYPE i.
    
    *---查询未发给费控的会计凭证
    SELECT * INTO TABLE lt_zmmt002 FROM zmmt002
      WHERE flag = ' '.
    
    lt_zmmt002s = lt_zmmt002.
    SORT lt_zmmt002 BY bukrs gjahr belnr.
    DELETE ADJACENT DUPLICATES FROM lt_zmmt002 COMPARING bukrs gjahr belnr.
    
    IF lt_zmmt002 IS NOT INITIAL.
      SELECT bukrs belnr gjahr retn_date zzbelnr zzgjahr INTO TABLE lt_regup
        FROM regup
        FOR ALL ENTRIES IN lt_zmmt002
        WHERE bukrs = lt_zmmt002-bukrs
         AND  belnr = lt_zmmt002-belnr
         AND  gjahr = lt_zmmt002-gjahr.
    ENDIF.
    
    *---删除未产生清帐凭证的数据
    DELETE lt_regup WHERE zzbelnr IS INITIAL.
    
    
    *---数据编辑
    LOOP AT  lt_regup INTO  ls_regup.
    zmms002-bukrs       = ls_regup-bukrs.
    zmms002-gjahr       = ls_regup-gjahr.
    zmms002-belnr       = ls_regup-belnr.
    zmms002-retn_date   = ls_regup-retn_date.
    zmms002-flag        = 'S'.
    APPEND zmms002.
    ENDLOOP.
    
    *---记录已发给费控系统的凭证
    CLEAR:gt_log,gs_log.
    LOOP AT zmms002.
      lv_datano     = lv_datano + 1.
      gs_log-name   = 'ZRFC_MM014'.
      gs_log-cdate  = sy-datum.
      GET TIME.
      gs_log-ctime  = sy-uzeit.
      gs_log-callno = callno.
      gs_log-datano = lv_datano.
      gs_log-flag   = 'S'.
      gs_log-log    = 'Success'.
      CONCATENATE zmms002-bukrs  zmms002-gjahr zmms002-belnr zmms002-retn_date
                  zmms002-flag
      INTO gs_log-content SEPARATED BY '|'.
      CONDENSE gs_log-content NO-GAPS.
      gs_log-length = STRLEN( gs_log-content ).
      APPEND gs_log TO gt_log.
    ENDLOOP.
    IF gt_log IS NOT INITIAL.
      INSERT zrfc_mm01out_log FROM TABLE gt_log.
      IF sy-subrc = 0.
        COMMIT WORK.
      ENDIF.
    ENDIF.
    
    
    *---更新客制会计凭证表
    CLEAR ls_zmmt002.
    ls_zmmt002-flag = 'X'.
    MODIFY lt_zmmt002s FROM ls_zmmt002 TRANSPORTING flag WHERE flag IS INITIAL.
    
    MODIFY zmmt002 FROM TABLE lt_zmmt002s.
    IF sy-subrc = 0 .
    COMMIT WORK.
    ELSE.
    ROLLBACK WORK.
    ENDIF.
    
    ENDFUNCTION.
  • 相关阅读:
    C51 使用端口 个人笔记
    C51 静态数码管 个人笔记
    C51 矩阵按键 个人笔记
    C51 蜂鸣器 个人笔记
    C51 独立按键 个人笔记
    C51 中断 个人笔记
    CC3200 TI 笔记
    iar修改包含路径的方法
    WCF绑定和行为在普通应用和SilverLight应用一些对比
    用批处理来自动化项目编译及部署(附Demo)
  • 原文地址:https://www.cnblogs.com/caizjian/p/6074241.html
Copyright © 2011-2022 走看看