SAP 针对国家 country, 维护税码 tax code

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值