SAP 针对国家 country, 维护税码 tax code
T-code: FTXP
*&---------------------------------------------------------------------*
*& Form UPDATE_TAX_RATE
*&---------------------------------------------------------------------*
* Update default tax rate by tax code input
*----------------------------------------------------------------------*
* -->IV_MWSKZ_FIELD Tax code field
*----------------------------------------------------------------------*
FORM update_tax_rate USING iv_mwskz_field TYPE fieldname.
DATA: lt_ftaxp TYPE STANDARD TABLE OF ftaxp,
ls_ftxap LIKE LINE OF lt_ftaxp,
lv_field_tax_rate TYPE fieldname.
FIELD-SYMBOLS: <fs_vim_object> TYPE any,
<fs_mwskz> TYPE zgld_s_fi_stk_tax_info-mwskz,
<fs_btaux> TYPE zgld_s_fi_stk_tax_info-btaux.
CONSTANTS: BEGIN OF lc_field_tax_rate,
output TYPE fieldname VALUE 'BTAUX',
input TYPE fieldname VALUE 'INPUT_BTAUX',
END OF lc_field_tax_rate,
lc_txjcd TYPE rf82t-txjcd VALUE '*'.
ASSIGN (vim_object) TO <fs_vim_object>." Get object
IF sy-subrc = 0.
* Get each field
ASSIGN COMPONENT iv_mwskz_field OF STRUCTURE <fs_vim_object>
TO <fs_mwskz>.
IF sy-subrc <> 0.
RETURN.
ENDIF.
* Determine tax rate field by input tax code
IF iv_mwskz_field = gc_mwskz_field-output.
lv_field_tax_rate = lc_field_tax_rate-output.
ELSE.
lv_field_tax_rate = lc_field_tax_rate-input.
ENDIF.
ASSIGN COMPONENT lv_field_tax_rate OF STRUCTURE <fs_vim_object>
TO <fs_btaux>.
IF sy-subrc <> 0.
RETURN.
ENDIF.
CALL FUNCTION 'GET_TAX_PERCENTAGE'
EXPORTING
aland = gs_bukrs_info-land
datab = sy-datum
mwskz = <fs_mwskz>
txjcd = lc_txjcd
TABLES
t_ftaxp = lt_ftaxp.
LOOP AT lt_ftaxp INTO ls_ftxap
WHERE NOT kbetr IS INITIAL.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
* Tax rate percentage output
* Case tax code J1, KBETR = 170, means 0.17(17%)
<fs_btaux> = ls_ftxap-kbetr / 10.
ELSE.
CLEAR <fs_btaux>.
ENDIF.
ENDIF.
ENDFORM. " UPDATE_TAX_RATE