信贷限额 | A | KNKK-KLIMK | 客户信贷限额 |
应收款 | B | KNKK-SKFOR | 应收总额 |
预收账款 | C | KNKK-SSOBL | 信贷限额 |
销售值 | D | KNKK-KNKLI(函数3个合计 | 带有贷方限额参考的客户帐户号 |
信贷风险总额 | B+C+D |
|
|
可用余额 | B+C+D-A |
|
|
PARAMETERS : P_VKORG TYPE VKORG.
PARAMETERS : P_VTWEG TYPE VTWEG.
PARAMETERS : P_SPART TYPE SPART.
PARAMETERS : P_KUNNR TYPE KUNNR.
START-OF-SELECTION.
DATA: LV_KLIMK TYPE KNKK-KLIMK. " A.信贷限额
DATA: LV_SKFOR TYPE KNKK-SKFOR. " B.应收款
DATA: LV_SSOBL TYPE KNKK-SSOBL. " C.预收账款
DATA: CV_SAUFT TYPE KNKK-KLIMK. " D.销售值(函数3个合计)
DATA: CV_OBLIG TYPE KNKK-KLIMK. " E.信贷风险总额(B.应收款+C.预收账款+D.销售值)
DATA: CV_BALAN TYPE KNKK-KLIMK. " F.可用余额(E.信贷风险总额-A.信贷限额)
PERFORM FRM_GET_KNKK_KUNNR USING P_VKORG P_VTWEG P_SPART P_KUNNR
CHANGING LV_KLIMK LV_SKFOR LV_SSOBL CV_SAUFT CV_SAUFT CV_BALAN.
*&---------------------------------------------------------------------*
*& Form FRM_GET_KNKK_KUNNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PV_KUNNR text
*----------------------------------------------------------------------*
FORM FRM_GET_KNKK_KUNNR
USING PV_VKORG PV_VTWEG PV_SPART PV_KUNNR
CHANGING CV_KLIMK CV_SKFOR CV_SSOBL
CV_SAUFT CV_OBLIG CV_BALANCE.
DATA: LV_KKBER TYPE KKBER, " 贷方控制范围
LV_KNKLI TYPE KNKLI. " 带有贷方限额参考的客户帐户号
" 函数获取3个值
DATA: LV_OLIKW TYPE S067-OLIKW,
LV_OFAKW TYPE S067-OFAKW,
LV_OEIKW TYPE S066-OEIKW.
CLEAR: CV_SKFOR, CV_SSOBL, CV_KLIMK,
CV_SAUFT, CV_OBLIG, CV_BALANCE.
IF NOT PV_KUNNR IS INITIAL.
SELECT SINGLE KKBER INTO LV_KKBER " 贷方控制范围
FROM TVTA
WHERE VKORG = PV_VKORG
AND VTWEG = PV_VTWEG
AND SPART = PV_SPART.
IF SY-SUBRC = 0.
SELECT SINGLE SKFOR " 应收总额
SSOBL " 特别往来债务
KLIMK " 信贷限额
KNKLI " 带有贷方限额参考的客户帐户号
INTO (CV_SKFOR,CV_SSOBL,CV_KLIMK,LV_KNKLI)
FROM KNKK
WHERE KUNNR = PV_KUNNR
AND KKBER = LV_KKBER. " 贷方控制范围
IF SY-SUBRC = 0.
CALL FUNCTION 'SD_CREDIT_EXPOSURE'
EXPORTING
FLAG_OPEN_DELIVERY = 'X'
FLAG_OPEN_INVOICE = 'X'
FLAG_OPEN_ORDER = 'X'
HORIZON_DATE = '99991231'
KKBER = LV_KKBER " 贷方控制范围
KNKLI = LV_KNKLI " 带有贷方限额参考的客户帐户号
* T014 = ' '
IMPORTING
OPEN_DELIVERY = LV_OLIKW
OPEN_INVOICE = LV_OFAKW
OPEN_ORDER = LV_OEIKW.
CV_SAUFT = LV_OLIKW + LV_OFAKW + LV_OEIKW.
CV_OBLIG = CV_SKFOR
+ CV_SSOBL
+ CV_SAUFT.
ENDIF.
ENDIF.
CV_BALANCE = CV_OBLIG - CV_KLIMK.
ENDIF.
ENDFORM. " FRM_GET_KNKK_KUNNR