SD发票 可以修改程序RV60AFZZ增强

***INCLUDE RV60AFZZ .

************************************************************************
*                                                                      *
* This include is reserved for user modifications                      *
* Forms for invoicing                                                  *
* The name of modification modules should begin with 'ZZ'.             *
*                                                                      *
************************************************************************
*       USEREXIT_ACCOUNT_PREP_KOMKCV                                   *
*       USEREXIT_ACCOUNT_PREP_KOMPCV                                   *
*       USEREXIT_NUMBER_RANGE                                          *
*       USEREXIT_PRICING_PREPARE_TKOMK                                 *
*       USEREXIT_PRICING_PREPARE_TKOMP                                 *
************************************************************************

************************************************************************
*       FORM ZZEXAMPLE                                                *
*---------------------------------------------------------------------*
*       text......................................                    *
*---------------------------------------------------------------------*
*FORM ZZEXAMPLE.

*  ...

*ENDFORM.

*eject

*---------------------------------------------------------------------*
*       FORM USEREXIT_ACCOUNT_PREP_KOMKCV                             *
*---------------------------------------------------------------------*
*       This userexit can be used to move additional fields into the  *
*       communication table which is used for account allocation:     *
*       KOMKCV for header fields                                      *
*       This form is called from form KONTENFINDUNG                   *
*---------------------------------------------------------------------*
FORM USEREXIT_ACCOUNT_PREP_KOMKCV.

*  KOMKCV-zzfield = xxxx-zzfield2.

ENDFORM.
*eject

*---------------------------------------------------------------------*
*       FORM USEREXIT_ACCOUNT_PREP_KOMPCV                             *
*---------------------------------------------------------------------*
*       This userexit can be used to move additional fields into the  *
*       communication table which is used for account allocation:     *
*       KOMPCV for item fields                                        *
*       This form is called from form KONTENFINDUNG                   *
*---------------------------------------------------------------------*
FORM USEREXIT_ACCOUNT_PREP_KOMPCV.

*  KOMPCV-zzfield = xxxx-zzfield2.

ENDFORM.
*eject

*---------------------------------------------------------------------*
*       FORM USEREXIT_NUMBER_RANGE                                    *
*---------------------------------------------------------------------*
*       This userexit can be used to determine the numberranges for   *
*       the internal document number.                                 *
*       US_RANGE_INTERN - internal number range                       *
*       This form is called from form LV60AU02                        *
*---------------------------------------------------------------------*
FORM USEREXIT_NUMBER_RANGE  USING US_RANGE_INTERN.

* Example: Number range from TVFK like in standard
* US_RANGE_INTERN = TVFK-NUMKI.
   data: da_rc  like inri -returncode.
   CALL  FUNCTION  'NUMBER_GET_NEXT'
     EXPORTING
      nr_range_nr  US_RANGE_INTERN
      object       'RV_BELEG'
     IMPORTING
      returncode   da_rc
       number       xvbrk -vbeln.
   case da_rc.
     when  '1'.
       message i532  with US_RANGE_INTERN  'RV_BELEG'.
     when  '2'.
       message i533  with US_RANGE_INTERN  'RV_BELEG'.
   endcase.

**更改SD开票编码规则 2012.03.06
   DATA:L_NUMBE  LIKE ZTSD04 -NUMBE.
   DATA:G_VBELN  LIKE VBRK -VBELN.
   DATA:L_VBELN  LIKE VBRK -VBELN.
   DATA:L_VBELN1  LIKE VBRK -VBELN.
   DATA:L_VBELN2  LIKE VBRK -VBELN.
   DATA:L_LINE  TYPE  I.

   SELECT  SINGLE NUMBE  INTO L_NUMBE  FROM ZTSD04
                       WHERE VKORG  VBRK -VKORG.
   IF L_NUMBE  IS  INITIAL.
     MESSAGE  '该销售组织未维护号码段,请联系管理员'  TYPE  'E'.
     EXIT.
   ENDIF.
   DATA: INTERVAL  LIKE NRIV.
   CALL  FUNCTION  'NUMBER_GET_INFO'
     EXPORTING
      NR_RANGE_NR  US_RANGE_INTERN
      OBJECT       'RV_BELEG'
     IMPORTING
      INTERVAL     INTERVAL.

  L_VBELN1  INTERVAL -FROMNUMBER+2 ( 8 ).
   CONCATENATE  L_NUMBE L_VBELN1  INTO L_VBELN1.
   CONDENSE L_VBELN1  NO -GAPS.
  L_VBELN2  INTERVAL -TONUMBER+2 ( 8 ).
   CONCATENATE  L_NUMBE L_VBELN2  INTO L_VBELN2.
   CONDENSE L_VBELN2  NO -GAPS.

   SELECT  MAX VBELN  INTO L_VBELN  FROM VBRK
                       WHERE VBELN > L_VBELN1
                         AND VBELN < L_VBELN2.
   IF L_VBELN  IS  INITIAL.
*    xvbrk-VBELN = xvbrk-VBELN+2(8).
*    CONCATENATE  L_NUMBE xvbrk-VBELN INTO xvbrk-VBELN.
    xvbrk -VBELN  L_VBELN1 +  1.
     CONDENSE xvbrk -VBELN  NO -GAPS.
    L_VBELN  xvbrk -VBELN.
   ELSE.
    L_VBELN  L_VBELN +  1.
     IF L_VBELN+2 ( 8 > INTERVAL -TONUMBER+2 ( 8 ).
       MESSAGE  '该销售组织号码段已用完,请联系管理员'  TYPE  'E'.
       EXIT.
     ENDIF.
   ENDIF.

   LOOP  AT xvbrk.
     IF xvbrk -VBELN+0 ( 1 '$'.
      xvbrk -VBELN  L_VBELN .
      L_VBELN  L_VBELN +  1.
       MODIFY xvbrk.
       EXIT.
     ENDIF.
   ENDLOOP.
   CLEAR: L_VBELN.

ENDFORM.
*eject

*---------------------------------------------------------------------*
*       FORM USEREXIT_PRICING_PREPARE_TKOMK                           *
*---------------------------------------------------------------------*
*       This userexit can be used to move additional fields into the  *
*       communication table which is used for pricing:                *
*       TKOMK for header fields                                       *
*       This form is called from form PREISFINDUNG_VORBEREITEN.       *
*---------------------------------------------------------------------*
FORM USEREXIT_PRICING_PREPARE_TKOMK.

* TKOMK-zzfield = xxxx-zzfield2.

* TKOMK-KUNRE = XVBPA_RE-KUNNR.
* TKOMK-KUNWE = XVBPA_WE-KUNNR.
* TKOMK-KNRZE = XVBPA_RG-KUNNR.

* PERFORM XVBPA_SELECT USING 'VE'.
* TKOMK-VRTNR = XVBPA-PERNR.

* PERFORM XVBPA_SELECT USING 'SP'.
* TKOMK-SPDNR = XVBPA-LIFNR.

* PERFORM XVBPA_SELECT USING 'AP'.
* TKOMK-PARNR = XVBPA-PARNR.

ENDFORM.
*eject

*---------------------------------------------------------------------*
*       FORM USEREXIT_PRICING_PREPARE_TKOMP                           *
*---------------------------------------------------------------------*
*       This userexit can be used to move additional fields into the  *
*       communication table which is used for pricing:                *
*       TKOMP for item fields                                         *
*       This form is called from form PREISFINDUNG_VORBEREITEN.       *
*---------------------------------------------------------------------*
FORM USEREXIT_PRICING_PREPARE_TKOMP.

*  TKOMP-zzfield = xxxx-zzfield2.

ENDFORM.
*eject
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值