FUNCTION isu_val_zaccbal1 .
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(X_TE327) LIKE TE327 STRUCTURE TE327
*" CHANGING
*" REFERENCE(XY_OBJ) TYPE ISU2A_BILLING_DATA
*" REFERENCE(XY_OUTCNSO) LIKE ERCHO-OUTCNSO
*" EXCEPTIONS
*" GENERAL_FAULT
*"----------------------------------------------------------------------
DATA: ls_erchz LIKE erchz,
lv_nettobtr LIKE erchz-nettobtr,
lv_uninvoiced LIKE erchz-nettobtr,
lv_acc_bal LIKE erchz-nettobtr,
lv_outsorted TYPE c,
lv_deviation LIKE ercho-deviation.
LOOP AT xy_obj-bill-ierchz INTO ls_erchz
WHERE buchrel = 'X'.
IF ls_erchz-abslkz IS INITIAL.
lv_nettobtr = lv_nettobtr + ls_erchz-nettobtr.
ENDIF.
ENDLOOP.
PERFORM get_uninvoiced_amount USING xy_obj-st-wfkkvkp
CHANGING lv_uninvoiced.
PERFORM get_account_balance USING xy_obj-st-wfkkvkp
CHANGING lv_acc_bal.
lv_nettobtr = lv_nettobtr + lv_acc_bal + lv_uninvoiced.
CALL FUNCTION 'ISU_E25M_BETRW_WAERS_CORRECT'
EXPORTING
x_amount = lv_nettobtr
x_currency = ls_erchz-twaers
IMPORTING
y_amount = lv_nettobtr
EXCEPTIONS
too_many_decimals = 1
OTHERS = 2.
IF sy-subrc NE 0.
mac_msg_putx co_msg_error '274' 'AJ' x_te327-validation space
space space general_fault.
IF 1 = 2. MESSAGE e274(aj) WITH space. ENDIF.
ENDIF.
break ogoh.
IF lv_nettobtr < x_te327-value1 OR
lv_nettobtr > x_te327-value2.
lv_deviation = lv_nettobtr.
lv_outsorted = 'X'.
mac_msg_putx co_msg_warning '002' 'ZMSG_BI' x_te327-validation xy_obj-bill-erch-belnr
xy_obj-st-wfkkvkp-vkont lv_outsorted space.
IF 1 = 2.
MESSAGE e002(zmsg_bi) WITH '&' '&' '&' '&'.
* &1: Bill Doc &2 Contract Account &3 is outsorted due to acc bal &4
ENDIF.
ENDIF.
IF NOT lv_outsorted IS INITIAL.
CALL FUNCTION 'ISU_OUTSORT_IERCHO_WRITE'
EXPORTING
x_validation = x_te327-validation
x_deviation = lv_deviation
CHANGING
xy_iercho = xy_obj-bill-iercho
xy_outcnso = xy_outcnso.
ENDIF.
ENDFUNCTION.
*&---------------------------------------------------------------------*
*& Form GET_UNINVOICED_AMOUNT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->IS_FKKVKP Contract Account
* <--cv_uninv_amt mount="" nbsp="" ninvoiced="" span="">
*----------------------------------------------------------------------*
FORM get_uninvoiced_amount USING is_fkkvkp TYPE fkkvkp
CHANGING cv_uninv TYPE nettobtr.
DATA:
ls_eitr TYPE eitr,
lt_eitr TYPE STANDARD TABLE OF eitr,
ls_erch TYPE erch,
lt_erch TYPE STANDARD TABLE OF erch,
ls_dberchz TYPE dberchz,
lt_dberchz TYPE STANDARD TABLE OF dberchz.
SELECT * INTO TABLE lt_eitr FROM eitr
WHERE vkont EQ is_fkkvkp-vkont
AND simulation EQ space
AND tobreleasd EQ space.
IF sy-subrc IS INITIAL.
IF lt_eitr IS NOT INITIAL.
SELECT * INTO TABLE lt_erch FROM erch
FOR ALL ENTRIES IN lt_eitr
WHERE belnr EQ lt_eitr-belnr.
IF lt_erch IS NOT INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_dberchz
FROM dberchz1 AS i JOIN dberchz3 AS e
ON i~belnr EQ e~belnr
AND i~belzeile EQ e~belzeile
FOR ALL ENTRIES IN lt_erch
WHERE i~belnr EQ lt_erch-belnr
AND i~buchrel EQ 'X'.
ENDIF.
ENDIF.
ENDIF.
LOOP AT lt_dberchz INTO ls_dberchz.
cv_uninv = cv_uninv + ls_dberchz-nettobtr.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_ACCOUNT_BALANCE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->IS_FKKVKP Contract Account
* <--cv_acc_bal alance="" ccount="" nbsp="" span="">
*----------------------------------------------------------------------*
FORM get_account_balance USING is_fkkvkp TYPE fkkvkp
CHANGING cv_acc_bal TYPE nettobtr.
DATA:
ls_bal TYPE bapiaccbalances,
lt_bal TYPE STANDARD TABLE OF bapiaccbalances.
CALL FUNCTION 'BAPI_ACCOUNT_GETBALANCES'
EXPORTING
contractaccount = is_fkkvkp-vkont
partner = is_fkkvkp-gpart
TABLES
account_balances = lt_bal.
LOOP AT lt_bal INTO ls_bal.
CASE ls_bal-text.
WHEN 'Open'.
cv_acc_bal = cv_acc_bal + ls_bal-withd_val.
WHEN 'Credit'.
cv_acc_bal = cv_acc_bal - ls_bal-withd_val.
ENDCASE.
ENDLOOP.
ENDFORM. --cv_acc_bal>--cv_uninv_amt>
No comments:
Post a Comment