cancel
Showing results for 
Search instead for 
Did you mean: 

printing tax in po calculate_tax_item

former_member1109645
Participant
0 Kudos

hi experts,

plz help me out out with the usage of FM calculate_tax_item with some coding ? and the how can i get this into form ?

Accepted Solutions (0)

Answers (1)

Answers (1)

Pawan_Kesari
Active Contributor
0 Kudos

I have used this FM to retrieve the tax amount shown in PO Item level, below is test program for you..

REPORT zreport10 .

TABLES : ekko , ekpo , t001 , komk , komp .

DATA mwsbp TYPE komp-mwsbp .

PARAMETERS : p_ebeln TYPE ekpo-ebeln ,

p_ebelp TYPE ekpo-ebelp .

START-OF-SELECTION .

PERFORM calculate_tax USING p_ebeln p_ebelp CHANGING mwsbp .

WRITE mwsbp .

----


  • FORM calculate_tax *

----


FORM calculate_tax USING p_ebeln TYPE ekpo-ebeln

p_ebelp TYPE ekpo-ebelp

CHANGING p_mwsbp TYPE komp-mwsbp .

CONSTANTS: bstyp-info VALUE 'I',

bstyp-ordr VALUE 'W',

bstyp-banf VALUE 'B',

bstyp-best VALUE 'F',

bstyp-anfr VALUE 'A',

bstyp-kont VALUE 'K',

bstyp-lfpl VALUE 'L',

bstyp-lerf VALUE 'Q'.

DATA : taxcom TYPE taxcom ,

t_konv TYPE TABLE OF komv WITH HEADER LINE .

DATA: BEGIN OF tkomv OCCURS 50.

INCLUDE STRUCTURE komv.

DATA: END OF tkomv.

DATA: BEGIN OF tkomvd OCCURS 50. "Belegkonditionen

INCLUDE STRUCTURE komvd.

DATA: END OF tkomvd.

DATA : BEGIN OF tkomvh OCCURS 50.

INCLUDE STRUCTURE komv.

DATA : vtext LIKE t685t-vtext.

DATA : END OF tkomvh.

SELECT SINGLE *

INTO ekko

FROM ekko

WHERE ebeln = p_ebeln .

SELECT SINGLE *

INTO ekpo

FROM ekpo

WHERE ebeln = p_ebeln

AND ebelp = p_ebelp .

SELECT SINGLE *

INTO t001

FROM t001

WHERE bukrs = ekko-bukrs .

taxcom-bukrs = ekpo-bukrs.

taxcom-budat = ekko-bedat.

taxcom-waers = ekko-waers.

taxcom-kposn = ekpo-ebelp.

taxcom-mwskz = ekpo-mwskz.

taxcom-txjcd = ekpo-txjcd.

taxcom-shkzg = 'H'.

taxcom-xmwst = 'X'.

IF ekko-bstyp EQ bstyp-best.

taxcom-wrbtr = ekpo-netwr.

ELSE.

taxcom-wrbtr = ekpo-zwert.

ENDIF.

taxcom-lifnr = ekko-lifnr.

taxcom-land1 = ekko-lands.

taxcom-ekorg = ekko-ekorg.

taxcom-hwaer = t001-waers.

taxcom-llief = ekko-llief.

taxcom-bldat = ekko-bedat.

taxcom-matnr = ekpo-ematn.

taxcom-werks = ekpo-werks.

taxcom-bwtar = ekpo-bwtar.

taxcom-matkl = ekpo-matkl.

taxcom-meins = ekpo-meins.

IF ekko-bstyp EQ bstyp-best.

taxcom-mglme = ekpo-menge.

ELSE.

IF ekko-bstyp EQ bstyp-kont AND ekpo-abmng GT 0.

taxcom-mglme = ekpo-abmng.

ELSE.

taxcom-mglme = ekpo-ktmng.

ENDIF.

ENDIF.

IF taxcom-mglme EQ 0.

taxcom-mglme = 1000.

ENDIF.

taxcom-mtart = ekpo-mtart.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CALL FUNCTION 'J_1BSA_COMPONENT_ACTIVE'

EXPORTING

bukrs = ekko-bukrs

component = 'BR'

EXCEPTIONS

component_not_active = 1

OTHERS = 2.

IF sy-subrc IS INITIAL.

komk-mandt = ekko-mandt.

komk-kalsm = ekko-kalsm.

IF ekko-kalsm = ''.

komk-kalsm = 'RM0000'.

ENDIF.

komk-kappl = 'M'.

komk-waerk = ekko-waers.

komk-knumv = ekko-knumv.

komk-lifnr = ekko-lifnr.

komp-kposn = ekpo-ebelp.

komp-matnr = ekpo-matnr.

komp-werks = ekpo-werks.

komp-matkl = ekpo-matkl.

komp-infnr = ekpo-infnr.

komp-evrtn = ekpo-konnr.

komp-evrtp = ekpo-ktpnr.

CALL FUNCTION 'RV_PRICE_PRINT_ITEM'

EXPORTING

comm_head_i = komk

comm_item_i = komp

language = 'E'

TABLES

tkomv = tkomv

tkomvd = tkomvd.

CALL FUNCTION 'J_1B_NF_PO_DISCOUNTS'

EXPORTING

i_kalsm = ekko-kalsm

i_ekpo = ekpo

IMPORTING

e_ekpo = ekpo

TABLES

i_konv = t_konv.

IF NOT ekko-llief IS INITIAL.

taxcom-lifnr = ekko-llief.

ENDIF.

ENDIF.

CALL FUNCTION 'FIND_TAX_SPREADSHEET'

EXPORTING

buchungskreis = t001-bukrs

EXCEPTIONS

not_found = 1

OTHERS = 2.

CALL FUNCTION 'CALCULATE_TAX_ITEM'

EXPORTING

i_taxcom = taxcom

IMPORTING

e_taxcom = taxcom

EXCEPTIONS

mwskz_not_defined = 1

mwskz_not_found = 2

mwskz_not_valid = 3

steuerbetrag_falsch = 4

country_not_found = 5

OTHERS = 6.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

p_mwsbp = taxcom-wmwst .

ENDFORM. " calculate_tax