SD:VF01/VF04 合并开票

VF01/VF04 基于同一客户合并开票 本月开上月所有的票,开票日期固定为上月末日期

1、首先确认合并客户(即售达方)信息的唯一性,即抬头信息唯一性 ( 根据客户需求确认唯一性 (同类型中的例程中VBRK结构中所有字段相同才可合并) , 此处用户需求是去取BP主数据 付款条件(KNB1-ZTERM) 国际贸易条款 (KNVV-INCO1,KNVV-INCO2)等 ) 此处根据客户需求确认统一性即可 在这里插入图片描述

2、VOFM创建例程 数据传输->出具发票单据-> 输入例程编号 双击插入代码逻辑
在这里插入图片描述
附上源码

FORM DATEN_KOPIEREN_999.
*{   INSERT         DEVK903304                                        1
   DATA(lv_month) = sy-datum+(6) - 1. """当年上月份的所有的票合并开一张凭证
  IF  vbrk-fkdat+(6) = lv_month .
    SELECT SINGLE zterm FROM KNB1  """付款条件
           INTO @DATA(lv_zterm)
           WHERE kunnr = @VBAK-kunnr .

    SELECT SINGLE inco1 ,inco2            """国贸条款1,2
           INTO @DATA(ls_knvv) FROM knvv
           WHERE  kunnr = @vbak-kunnr .

         vbrk-kalsm = lv_zterm.
         MOVE-CORRESPONDING ls_knvv TO vbrk.

          DATA(lv_date)  = sy-datum.
          lv_date+(6) = lv_date+(6) - 1.
          lv_date+6(2) = '01'.

          CALL FUNCTION 'LAST_DAY_OF_MONTHS'
            EXPORTING
              day_in                  = lv_date
            IMPORTING
              LAST_DAY_OF_MONTH       = lv_date
            EXCEPTIONS
              DAY_IN_NO_DATE          = 1
              OTHERS                  = 2                .
          vbrk-fkdat = lv_date.  """开票日期固定为上月末
          vbrk-spart = '00'.  """产品组00 固定 通用
  ENDIF.
*}   INSERT
ENDFORM.

3、VTFL 维护要合并的开票类型配置 维护自己新建的例程999
在这里插入图片描述
在这里插入图片描述

以上合并开票功能 如有不正确之处,请各位大佬不惜赐教~

猜你喜欢

转载自blog.csdn.net/Right_an/article/details/107557709