zoukankan      html  css  js  c++  java
  • 查询PO的预付款剩余金额

    FUNCTION zrfc_mm016.
    *"----------------------------------------------------------------------
    *"*"Local interface:
    *"  IMPORTING
    *"     VALUE(CALLNO) TYPE  ZCALLNO
    *"     VALUE(BUKRS) LIKE  BSIK-BUKRS
    *"     VALUE(GJAHR) LIKE  BSIK-GJAHR
    *"  EXPORTING
    *"     VALUE(FLAG) LIKE  BAPIRET2-TYPE
    *"     VALUE(MESSAGE) LIKE  BAPIRET2-MESSAGE
    *"  TABLES
    *"      ZRS_EBELN STRUCTURE  ZRS_EBELN OPTIONAL
    *"      ZRS_LIFNR STRUCTURE  ZRS_LIFNR OPTIONAL
    *"      ZYFYE STRUCTURE  ZYFYE OPTIONAL
    *"----------------------------------------------------------------------
    
    TYPES:BEGIN OF ty_regup,
      lifnr   TYPE    regup-lifnr,   "供应商
      bukrs   TYPE    regup-bukrs,   "公司代码
      gjahr   TYPE    regup-gjahr,   "年度
      blart   TYPE    regup-blart,   "凭证类型
      xref3   TYPE    regup-xref3,   "参考码3
      dmbtr   TYPE    regup-dmbtr,   "金额
      wmwst   TYPE    regup-wmwst,   "税额
      zzbelnr TYPE    regup-zzbelnr, "付款成功标识
      END OF ty_regup.
    
    DATA:lt_regup    TYPE TABLE OF ty_regup,
         lt_regup_y  TYPE TABLE OF ty_regup,
         lt_regup1   TYPE TABLE OF ty_regup,
         lt_regup_y1 TYPE TABLE OF ty_regup,
         ls_regup    TYPE ty_regup,
         ls_regup_y  TYPE ty_regup,
         l_syed      TYPE regup-dmbtr. "剩余额度
    
    DATA:dmbtr(18),
         lv_datano TYPE i.
    
    SELECT lifnr bukrs gjahr blart xref3 dmbtr wmwst zzbelnr
      INTO TABLE lt_regup
      FROM regup
      WHERE xvorl = 'X'
       AND  zbukr = bukrs
       AND  lifnr IN zrs_lifnr
       AND  bukrs = bukrs
       AND  gjahr = gjahr
       AND  xref3 IN zrs_ebeln.
    
    DELETE lt_regup WHERE zzbelnr = ''. "删除支付不成功的凭证
    
    
    SORT lt_regup BY lifnr bukrs blart xref3.
    lt_regup_y  =  lt_regup.
    DELETE lt_regup   WHERE blart = 'KA'.  "应付款额度
    DELETE lt_regup_y WHERE blart NE 'KA'. "预付款额度
    
    *--汇总应付金额
    LOOP AT lt_regup INTO ls_regup.
    CLEAR:ls_regup-blart,ls_regup-zzbelnr.
    COLLECT ls_regup INTO lt_regup1.
    ENDLOOP.
    
    *--汇总预付金额
    LOOP AT lt_regup_y INTO ls_regup_y.
    CLEAR:ls_regup_y-blart,ls_regup_y-zzbelnr.
    COLLECT ls_regup_y INTO lt_regup_y1.
    ENDLOOP.
    
    
    LOOP AT lt_regup_y1 INTO ls_regup_y.
    zyfye-bukrs = ls_regup_y-bukrs.  "公司
    zyfye-gjahr = ls_regup_y-gjahr.  "年度
    zyfye-lifnr = ls_regup_y-lifnr.  "供应商
    zyfye-ebeln = ls_regup_y-xref3.  "PO号(参考码3)
    
    *--预付额度 = 预付额度 + 预付税额
    l_syed = ls_regup_y-dmbtr + ls_regup_y-wmwst.
    
    READ TABLE lt_regup1 INTO ls_regup WITH KEY xref3  = ls_regup_y-xref3.
    
    *--剩余额度 = 预付额度 - 应付额度
    
    zyfye-dmbtr  = l_syed - ls_regup-dmbtr.
    
    APPEND zyfye.
    CLEAR:l_syed,ls_regup,ls_regup_y,zyfye.
    ENDLOOP.
    
    IF zyfye[] IS NOT INITIAL.
       flag = 'S'.
    ELSE.
       flag = 'E'.
       message = '没有数据'.
    ENDIF.
    *---记录日志
     CLEAR:gt_log,gs_log.
      LOOP AT zyfye.
        dmbtr = zyfye-dmbtr.
        lv_datano     = lv_datano + 1.
        gs_log-name   = 'ZRFC_MM016'.
        gs_log-cdate  = sy-datum.
        GET TIME.
        gs_log-ctime  = sy-uzeit.
        gs_log-callno = callno.
        gs_log-datano = lv_datano.
        gs_log-flag   = flag.
        gs_log-log    = message.
        CONCATENATE zrs_ebeln-sign  zrs_ebeln-option  zrs_ebeln-low  zrs_ebeln-high
                    zrs_lifnr-sign  zrs_lifnr-option  zrs_lifnr-low  zrs_lifnr-high
                    zyfye-bukrs     zyfye-gjahr       zyfye-lifnr    zyfye-ebeln
                    dmbtr
        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.
    
    ENDFUNCTION.
  • 相关阅读:
    physicsbased animation阅读计划
    读代码的一点感想
    Paired Joint Coordinates
    坐标变换
    ADO.NET用法示例
    希腊字母读法
    数据库系统概论(第三版)学习笔记
    在网页里让文本框只能输入数字的一种方法。外加回车换Tab (javascript key键的使用)+禁止切换输入法转
    常用的一些javascript小技巧
    在.NET2.0中上传文件操作(解决了上传文件大小和多文件限制)转
  • 原文地址:https://www.cnblogs.com/caizjian/p/6074258.html
Copyright © 2011-2022 走看看