Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to fill up the tax table in AC_DOCUMENT_DIRECT_INPUT

aris_hidalgo
Contributor
0 Kudos

Hello Experts, 

I am having problems using the said FM. What I want to do is that I need to post accrued PO 
related transactions but I need to compute for the tax which this FM unfortunately cannot do
since it says that automatic tax calculation is not possible.So I guess there is way to compute for
taxes by filling up the tax table.Below is my code where it populates the tables:

CONCATENATE p_gjahr
                p_monat
                '01'
                INTO lv_first_day.

    CALL FUNCTION 'LAST_DAY_OF_MONTHS'
      EXPORTING
        day_in            = lv_first_day
      IMPORTING
        last_day_of_month = lv_last_day
      EXCEPTIONS
        day_in_no_date    = 1
        OTHERS            = 2.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    lt_bkpf-bukrs = p_bukrs.
    lt_bkpf-waers = 'PHP'.
    lt_bkpf-tcode = 'FB01'.

    lt_bkpf-budat(2)   = lv_last_day+4(2).
    lt_bkpf-budat+2(2) = lv_last_day+6(2).
    lt_bkpf-budat+4(4) = lv_last_day(4).

    lt_bkpf-bldat(2)   = lv_last_day+4(2).
    lt_bkpf-bldat+2(2) = lv_last_day+6(2).
    lt_bkpf-bldat+4(4) = lv_last_day(4).

    lt_bkpf-monat = lv_last_day+4(2).
    lt_bkpf-blart = gc_yearend_blart.
    APPEND lt_bkpf.
    CLEAR lt_bkpf.

    LOOP AT gt_output INTO wa_output.
      CLEAR lv_vat.
      lt_bseg-stype = 'I'.
      lt_bseg-newbs = '40'.
      lt_bseg-newko = wa_output-sakto.
      lt_bseg-kostl = wa_output-kostl.
      lt_bseg-aufnr = wa_output-aufnr.
      lv_vat = wa_output-netpr * '.12'.
      wa_output-netpr = wa_output-netpr + lv_vat.
      lt_bseg-dmbtr = wa_output-netpr.
      ADD lt_bseg-dmbtr TO lv_netpr.
      lt_bseg-wrbtr = wa_output-netpr.
      lt_bseg-sgtxt = wa_output-txz01.
      lt_bseg-ebeln = wa_output-ebeln.
      lt_bseg-ebelp = wa_output-ebelp.
      lt_bseg-mwskz = wa_output-mwskz.
      APPEND lt_bseg.
      CLEAR lt_bseg.
      lv_sgtxt = wa_output-txz01.
      lv_lifnr = wa_output-lifnr.
      lv_mwskz = wa_output-mwskz.
      AT LAST.
        lv_vat = lv_netpr * '0.12'.
        lt_btax-stype = 'I'.
        lt_btax-bschl = '40'.
*        lt_bseg-newko = '10018291'.
        lt_btax-fwste = lv_vat.
        lt_btax-fwbas = lv_vat.
*        lt_bseg-sgtxt = lv_sgtxt.
        lt_btax-mwskz = lv_mwskz.
*        lt_btax-bschl = 'MWAS'.
        APPEND lt_btax.
        CLEAR: lt_btax.

        lv_ewt = lv_netpr * '0.01'.
        lt_bwith-stype = 'I'.
        lt_bwith-WITHT = '21'.
        lt_bwith-WT_WITHCD = lv_mwskz.
*        lt_bseg-newko = '20000310'.
        lt_bwith-WT_QSSHH = lv_ewt.
        lt_bwith-WT_QSSHB = lv_ewt.
*        lt_bseg-sgtxt = lv_sgtxt.
        lt_btax-mwskz = lv_mwskz.
        lt_btax-bschl = 'MWAS'.
        APPEND lt_btax.
        CLEAR: lt_btax.

        lv_deferred = ( lv_netpr + lv_vat ) - ABS( lv_ewt ).
        lt_bseg-stype = 'I'.
        lt_bseg-newbs = '39'.
        lt_bseg-newko = lv_lifnr.
        lt_bseg-newum = 'V'.
        lt_bseg-dmbtr = lv_deferred.
        lt_bseg-wrbtr = lv_deferred.
        lt_bseg-sgtxt = lv_sgtxt.
        lt_bseg-mwskz = lv_mwskz.
        APPEND lt_bseg.
        CLEAR: lt_bseg, lv_vat, lv_ewt, lv_deferred.
      ENDAT.
    ENDLOOP.

    CALL FUNCTION 'ZFI_ACC_DOCUMENT_POST'
* EXPORTING
*   I_NODATA        =
*   I_TESTRUN       =
*   I_GRPID         =
*   I_UPLOAD        =
     IMPORTING
         e_bukrs         = lv_bukrs
         e_gjahr         = lv_gjahr
         e_belnr         = lv_belnr
      TABLES
        return          = lt_return
        t_bbkpf         = lt_bkpf
        t_bbseg         = lt_bseg
        t_bbtax         = lt_btax
*   T_BWITH         =
              .
    IF sy-subrc = 0.

      LOOP AT lt_return
        WHERE type = 'E'.

        MESSAGE e000(zfi) WITH lt_return-message.

      ENDLOOP.

      MESSAGE i000(zfi) WITH 'Document Number'
                             lv_belnr
                             'Posted to Company Code'
                             lv_bukrs.
      PERFORM f_modify_run.
    ELSE.
    ENDIF.

1 REPLY 1

aris_hidalgo
Contributor
0 Kudos

Thanks anyways...