Skip to Content

If you need to output taxes from Purchase Order you should use FM CALCULATE_TAX_ITEM to achieve this. It works fine and provides necessary infos, but has 1 feature: you should firstly open tax screen by clicking on the button and then run FM. Looks like some global variables should be prefilled before tax calculation.

I faced this problem while working on PO print form for India. After some googling I found out, that Brazil also suffers from this problem. I have no information whether this is relevant for other countries.

For Brazil the solution is suggested in this thread.

Bur for India I haven’t found anything definitely working.

So I started searching and found my solution in subroutine KOND_TAXES of program SAPLMEPO.

I copied and adapted lines 219-297, after that FM bring correct results.

If you do that while printing PO you have to use local structures of EKKO/EKPO types, as printing structures are of MMPUR_PRINT_EKKO/MMPUR_PRINT_EKPO types.

    data: lv_gst_rele               type char1,
          lo_gst_service_purchasing type ref to j_1icl_gst_service_purchasing,
          lo_copypo                 type ref to if_ex_me_cin_mm06efko,
          ls_ekpo                   type ekpo,
          ls_ekko                   type ekko.
    call function 'J_1BSA_COMPONENT_ACTIVE'
        bukrs                = IS_EKKO-bukrs
        component            = 'IN'
        component_not_active = 1
        others               = 2.
    if sy-subrc = 0.
      call method cl_exithandler=>get_instance
          exit_name              = 'ME_CIN_MM06EFKO'
          null_instance_accepted = 'X'
          instance               = lo_copypo.
      if not lo_copypo is initial.
        move-corresponding: is_ekpo to ls_ekpo,
                            is_ekpo to ls_ekpo.
        call method lo_copypo->me_cin_copy_po_data
            flt_val = conv #( iv_ctry )
            y_ekpo  = ls_ekpo.
* GST India ---------------------------------------------------------------*
      call function 'J_1IG_DATE_CHECK'
          ex_gst_rele = lv_gst_rele.
      if lv_gst_rele eq abap_true.
        call function 'J_1IG_PASS_EKKO_EKPO'
            im_ekko = ls_ekko
            im_ekpo = ls_ekpo.
        lo_gst_service_purchasing = j_1icl_gst_service_purchasing=>get_instance( ).
        lo_gst_service_purchasing->extend_mm06efko_kond_taxes( ls_ekpo ).
To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply