Top Banner
VAT Ledger reporting for Slovakia, Detailed solution guide for FI-SD
18

VAT Control Report FISD_15

Sep 12, 2015

Download

Documents

VAT Control Report FISD_15
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • VAT Ledger reporting for Slovakia, Detailed solution guide for FI-SD

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 2

    Contents

    1 VAT LEGER AND AMENDMENT 360, ACT 222/2004, PAR.69 IN SD MODULE. ......................... 3 1.1 Non act 222/2004, par.69 ................................................................................................................. 3 1.1.1 Sales documents ............................................................................................................................... 3 1.1.2 Invoice documents ............................................................................................................................. 4 1.1.3 Pricing ................................................................................................................................................ 6 1.2 Setting relevant for act 222/2004, par.69 ....................................................................................... 8

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 3

    1 VAT LEGER AND AMENDMENT 360, ACT 222/2004, PAR.69 IN SD MODULE.

    Materials according 222/2004, named in par. 69 have special VAT procedure and are separately reported in VAT Ledger. Slovak specialty is, that some of those materials have different procedure (VAT and Reporting), if total value for materials with defined characteristics in 1 invoice is equal or above limit (currently 5000,00 EUR) and different below this limit. Some settings are relevant for all customers (All) and some only for those, who are dealing with commodities described in paragraph 69 (69). Settings (All) are part of consulting solution. Setting (69) are part of SK legal change. Prerequisites and customizing

    (All) VAT codes for normal invoicing exists (20%, 10%, 0%,...)

    (All) VAT codes for correction invoices exists in parallel to normal, but different codes to

    differentiate between invoice and correction

    (69) New VAT code/codes exist(s) for materials named in par. 69 (0%).

    (69) New VAT code/codes exist(s) for materials named in par. 69 (0%), in parallel to previous, for

    correction invoices.

    1.1 Non act 222/2004, par.69 1.1.1 Sales documents

    (All) Credit/Debit Memo request and invoice correction should be mandatory referenced to invoice.

    Only with mandatory reference to invoice could be assured linkage between original invoice and credit/debit memo. If there are some limitations, which avoid you to make mandatory reference, reference to invoice should be assured by organizational actions.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 4

    1.1.2 Invoice documents General

    (All) Cancellation of already cleared invoices must be avoided in copy control for invoices using standard

    copy requirement routine 29. This is prerequisite for usage of new cancellation procedure and its also

    correct from business point of view. Already cleared invoices should not be cancelled. If there is any

    correction required, cleared invoice should be credited/debited.

    (All) Our solution expects that reference number in FI document (BKPF-XBLNR) includes number of current invoice. Via copy control must be reference field (XBLNR) filled with actual invoice number for ALL invoices, including Credit and Debit memos.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 5

    Alternative In case, You cant use XBLNR field for SD invoice number, you can use different field. The best solution would be to use BKPF-AWKEY. No settings are required. You need just use BADI to map this field for VAT Ledger. Credit/Debit memos There must be visible linkage between Credit/Debit Memo and original invoice document.

    In our solution this is done via fields BSEG-REBZG, BSEG-REBZJ and BSEG-REBZZ.

    This fields are automatically filed if in credit/debit memo and invoice corrections definition is checked select button Credit memo with value date (TVFK-XVALGS). This makes linkage between Credit/debit memo and original FI document for invoice.

    As a side effect of this is, that the reference billing document is not settled and the payment deadline date for the base billing document comes after the billing date for the credit memo, then field VALDT (fixed value date) in the credit memo request is filled with the payment deadline baseline date of the base billing document. This does not happen if the payment deadline date of the reference billing document comes before the current billing date of the credit memo. This setting only works if original (credited/debited) invoice is not cleared. If you are using this settings, there is also required to use userexit to assure, also for already cleared invoices will be credit/debit memo document filled correctly: RV60BFZA *---------------------------------------------------------------------* * Fill fields in XKOMK2 * * ---> VBRK * * ---> XVBRP * *---------------------------------------------------------------------* FORM userexit_fill_xkomk2. * XKOMK2-ZUONR = VBRK-VBELN. *>>>>>Beginn of insertion DATA : BEGIN OF LOC_BSEG OCCURS 0. INCLUDE STRUCTURE BSEG. DATA : END OF LOC_BSEG. IF tvfk-xvalgs EQ 'X' and XACCIT-REBZG is initial. READ TABLE xvbrp WITH KEY xvbrp_key BINARY SEARCH. IF sy-subrc EQ 0. CALL FUNCTION 'SD_DETERMINE_ACCOUNT_INVOICE' EXPORTING loc_vbrp = xvbrp IMPORTING loc_bkpf = loc_bkpf EXCEPTIONS OTHERS = 0. SELECT SINGLE * FROM BSEG INTO LOC_BSEG

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 6

    WHERE BELNR EQ LOC_BKPF-BELNR AND GJAHR EQ LOC_BKPF-GJAHR AND BUKRS EQ LOC_BKPF-BUKRS. IF SY-SUBRC = '0'. XACCIT-REBZG = LOC_BSEG-BELNR. XACCIT-REBZJ = LOC_BSEG-GJAHR. XACCIT-REBZZ = LOC_BSEG-BUZEI. ENDIF. ENDIF. " sy-subrc eq 0 ENDIF. " tvfk-xvalgs eq 'X' *>>>>>End of insertion ENDFORM. "USEREXIT_FILL_XKOMK2 Alternative 1 In case, you cant use TVFK-XVALGS field, you still can use userexit above, just change if condition according your needs, like: IF ( VBRK-VBTYP = 'P' or VBRK-VBTYP = 'O' ) and XACCIT-REBZG is initial. Alternative 2 Instead of usage fields REBZG,You can use fields XBLNR and/or ZUONR, but you have to use BADI in VAT ledger to map fields accordingly 1.1.3 Pricing (All) Access sequence MWST should be extended for correction request and invoices. Copy of access table is currently used for inland business (in standard access table 002). The table should be 1 step before currently used inland table with exclusion mark. Routine should be maintained to this sequence, which assure, this will be used (only) in correction requests and/or invoices (credit, debit memo,... document types H, K, L, O, P...). Relevant condition record must exist for this access. If you are using other document types relevant for VAT Ledger report, consider also those.

    Sample code for 601 from Picture above: form kobed_601. sy-subrc = 4. check: komk-aland ne space. check: komk-land1 ne space. if komk-vbtyp ne 'H' and komk-vbtyp ne 'K' and komk-vbtyp ne 'L' and komk-vbtyp ne 'O' and komk-vbtyp ne 'P'. exit. endif.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 7

    if at005-xegld = 'X' and et005-xegld = 'X' and komk-stceg is initial. sy-subrc = 0. exit. endif. check: komk-aland = komk-land1. sy-subrc = 0. endform. * Prestep form kobev_601. sy-subrc = 4. check: komk-aland ne space. check: komk-land1 ne space. if komk-vbtyp ne 'H' or komk-vbtyp ne 'K' or komk-vbtyp ne 'L' or komk-vbtyp ne 'O' or komk-vbtyp ne 'P'. exit. endif. if at005-xegld = 'X' and et005-xegld = 'X' and komk-stceg is initial. sy-subrc = 0. exit. endif. check: komk-aland = komk-land1. sy-subrc = 0. endform. It is also possible to modify this condition to activate this new acces sequence only in credit/debit memos (invoices) or only in credit/debit memo requests depend on customer processes and requirements. Fo this proposes left in sample report only lines with relevant komk-vbtyp. New access sequence with condition routine and customizing for new pricing described later makes possible to change VAT code for credit/debit memos. This alows VAT ledger to differentiate between normal invoices and corrections. There should be different VAT code for the same key combination than in next, already existing access sequence. This should be special correction VAT code for each VAT rate. Described technique (new access sequence and routine) is required, if customer is using, or plan to use also electronical VAT return. If this is not the case, you dont need change TaxCodes in credit/debit memos. For VAT ledger would be enough to assign unique FI document type, different from normal invoice (default RV), for all credit/debit memo invoices (for credit memo can be the same like for debit memo) (All) Copy control for this documents and relevant item types should be value G for pricing control, which assure new Tax determination. In Invoice correction request this may be not possible, so i tis important to make new tax determination, when creating a credit memo from this document.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 8

    1.2 Setting relevant for act 222/2004, par.69 (69) New Tax classifications for Material master should be defined and assigned to relevant material masters:

    I Integrovan obvody

    M Mobiln telefny

    P Ponohospodrske produkty

    K Kovy

    S Kovov rot (this is not part of amendment, its an older requirement)

    (keys above are just proposal, customer may use different characters) Usage of this new Material Tax classification should lead to different TaxCode, with 0% tax. Be careful, for I, M, P and K is limit (currently 5000,00 EUR). Below this limit are those materials handled as normal goods. Si, if you are selling this kind of goods occasionally and in value less than defined limit, you can handle this goods like normal goods.

    For P and K keys from this example is important, statistical number in Material master, at least 4 characters of combined nomenclature, must be maintained field MARC-STAWN. This is matter of customizing. Important, depending on final solution of VAT Leger (69): New customizing table/view FISKV_PRTYPE is part of SAP Notes. There must be connection between Tax classification for Material and product type code, which will be displayed in A.2. Ledger. This is valid for I = IO and M = MT from example above.

    Field Country reporting country (currently valid only for SK) CoCS Company codes for reporting TxMt1 - Material Tax classification created/assigned for materials relevant to act 222/2004, par.69. Field FISKV_PRTYPE-MWSKZ is not used. Threshold amount limit, as defined in act 222/2004, par.69 and currency for this limit both fields are used in userexit below only. If you dont use this, you dont need to maintain this values. P, K and S keys from example will are to be filled into this table too. Product type code stays here empty, but MARC-STAWN in material master MUST be filled.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 9

    (69)Optional create new tax classification (s) for customer master. (I tis not possible to change material tax classification in invoice processing, so if necessary to reclassify tax, this could be made via customer tax classification and appropriate condition record for MWST condition)

    (69) All relevant combinations/condition records must be maintained for VAT condition (MWST).

    Tax codes and dates are just as a sample. In real system must be maintained correct date and Tax code for: I separate Tax code M separate Tax code P and K separate Tax code (S separate Tax code not important for this legislative change) As the logic in VAT ledger was slightly changed, it is not important to have different tax codes for each TAXM1 code. It must be just different from other 0% tax codes, used for normal materials or different business cases (EU abroad business with 0% VAT).

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 10

    (69) User exit for control of 5000,00 EUR limit value:

    RV60AFZC USEREXIT_FILL_VBRK_VBRP

    This user-exit should check, in case, at least 1 TAXM1 code from defined values appears, all invoiced items. For each TAXM1 value with applying of standard invoice split criteria system cumulates total value. In case, it is less than 5000,00 EUR, TAXM1 will be changed to value 1. Later, when customizing table for assignment of TAXM1 to product code for VAT Ledger will be delivered, this proposed solution may be changed to use customizing table values, instead of Constants. There are 2 alternatives. The difference is, that values from FISKV_PRTYPE are not used in the first one (value are hard coded). ONLY ONE ALTERNATIVE SHOULD BE IMPLEMENTED. Alternative 1 without usage of FISKV_PRTYPE table >>>> FORM userexit_fill_vbrk_vbrp. * Example: change Tax country * VBRK-LANDTX = T001-LAND1. CONSTANTS: lc_country TYPE landtx VALUE 'SK', lc_curr TYPE waerk VALUE 'EUR', lc_rate_type TYPE kurst_curr VALUE 'M', lc_limit TYPE netwr_fp VALUE 5000, lc_taxm1i TYPE taxm1 VALUE 'I', lc_taxm1k TYPE taxm1 VALUE 'K', lc_taxm1m TYPE taxm1 VALUE 'M', lc_taxm1p TYPE taxm1 VALUE 'P', lc_taxm11 TYPE taxm1 VALUE '1'. TYPES: BEGIN OF t_sum, waerk TYPE waerk, taxm1 TYPE taxm1, payer TYPE kunnr, zterm TYPE dzterm, land1 TYPE land1, fbuda TYPE wadat_ist, fkdat TYPE fkdat, fkart TYPE fkart, exnum TYPE exnum, kunag TYPE kunag, inco1 TYPE inco1, inco2 TYPE inco2, netwr TYPE netwr_fp, END OF t_sum. STATICS st_sum TYPE TABLE OF t_sum. DATA: ls_sum TYPE t_sum, ls_xvbrp TYPE vbrpvb, lt_xkomfk TYPE STANDARD TABLE OF komfk, ls_xkomfk TYPE komfk, lt_lips TYPE STANDARD TABLE OF lips, ls_lips TYPE lips, ls_likp TYPE likp, ls_vbap TYPE vbap, ls_vbpa TYPE vbpa, ls_vbkd TYPE vbkd, ls_avbpak_rg TYPE vbpavb, ls_avbpak_we TYPE vbpavb, lv_netwr TYPE netwr_fp. CHECK vbrk-landtx = lc_country. CHECK vbrk-vbtyp = 'M' or vbrk-vbtyp = 'U'. IF vbrp-taxm1 = lc_taxm1i OR vbrp-taxm1 = lc_taxm1k OR vbrp-taxm1 = lc_taxm1m OR vbrp-taxm1 = lc_taxm1p. ************************************************ * Create summarized values for tax categories ************************************************ IF lines( st_sum ) = 0.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 11

    LOOP AT xkomfk WHERE vbtyp = charj. * delivery item SELECT * FROM lips INTO TABLE lt_lips WHERE vbeln = xkomfk-vbeln. LOOP AT lt_lips INTO ls_lips. CLEAR ls_sum. SELECT SINGLE * FROM vbap INTO ls_vbap WHERE vbeln = ls_lips-vgbel AND posnr = ls_lips-vgpos. IF sy-subrc = 0. IF ls_vbap-taxm1 = lc_taxm1i OR ls_vbap-taxm1 = lc_taxm1k OR ls_vbap-taxm1 = lc_taxm1m OR ls_vbap-taxm1 = lc_taxm1p. ls_sum-taxm1 = ls_vbap-taxm1. ls_sum-netwr = ls_vbap-netpr * ls_lips-lfimg. ls_sum-waerk = ls_vbap-waerk. * partner function bill-to-party SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = ls_vbap-posnr AND parvw = parvw_rg. IF sy-subrc 0. SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = '000000' AND parvw = parvw_rg. IF sy-subrc 0. CLEAR ls_vbap. ENDIF. ENDIF. ls_sum-payer = ls_vbpa-kunnr. * partner function ship-to-party SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = ls_vbap-posnr AND parvw = parvw_we. IF sy-subrc 0. SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = '000000' AND parvw = parvw_we. IF sy-subrc 0. CLEAR ls_vbpa. ENDIF. ENDIF. ls_sum-land1 = ls_vbpa-land1. * payment terms SELECT SINGLE * FROM vbkd INTO ls_vbkd WHERE vbeln = ls_vbap-vbeln AND posnr = ls_vbap-posnr. IF sy-subrc 0. SELECT SINGLE * FROM vbkd INTO ls_vbkd WHERE vbeln = ls_vbap-vbeln AND posnr = '000000'. IF sy-subrc 0. CLEAR ls_vbkd. ENDIF. ENDIF. ls_sum-zterm = ls_vbkd-zterm. ENDIF. "ls_vbap-taxm1 ENDIF. "vbap * delivery header SELECT SINGLE * FROM likp INTO ls_likp WHERE vbeln = xkomfk-vbeln. IF sy-subrc = 0. ls_sum-fbuda = ls_likp-wadat_ist. ls_sum-fkdat = ls_likp-fkdat. ls_sum-fkart = ls_likp-fkarv. ls_sum-exnum = ls_likp-exnum. ls_sum-kunag = ls_likp-kunag. ls_sum-inco1 = ls_likp-inco1. ls_sum-inco2 = ls_likp-inco2. ENDIF. lv_netwr = ls_sum-netwr. READ TABLE st_sum

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 12

    WITH KEY waerk = ls_sum-waerk taxm1 = ls_sum-taxm1 payer = ls_sum-payer zterm = ls_sum-zterm land1 = ls_sum-land1 fbuda = ls_sum-fbuda fkdat = ls_sum-fkdat fkart = ls_sum-fkart exnum = ls_sum-exnum kunag = ls_sum-kunag inco1 = ls_sum-inco1 inco2 = ls_sum-inco2 INTO ls_sum BINARY SEARCH. IF sy-subrc = 0. ls_sum-netwr = ls_sum-netwr + lv_netwr. MODIFY st_sum FROM ls_sum INDEX sy-tabix. ELSE. INSERT ls_sum INTO st_sum INDEX sy-tabix. ENDIF. ENDLOOP. "lt_lips ENDLOOP. "xkomfk ENDIF. "st_sum ***************************************************** * Change Tax classification 1 for material in item ***************************************************** READ TABLE avbpak WITH KEY parvw = parvw_rg INTO ls_avbpak_rg. IF sy-subrc 0. CLEAR ls_avbpak_rg. ENDIF. READ TABLE avbpak WITH KEY parvw = parvw_we INTO ls_avbpak_we. IF sy-subrc 0. CLEAR ls_avbpak_we. ENDIF. * delivery header SELECT SINGLE * FROM likp INTO ls_likp WHERE vbeln = xkomfk-vbeln. IF sy-subrc = 0. ls_sum-fbuda = ls_likp-wadat_ist. ls_sum-fkdat = ls_likp-fkdat. ls_sum-fkart = ls_likp-fkarv. ls_sum-exnum = ls_likp-exnum. ls_sum-kunag = ls_likp-kunag. ls_sum-inco1 = ls_likp-inco1. ls_sum-inco2 = ls_likp-inco2. ELSE. CLEAR ls_likp. ENDIF. CLEAR ls_sum. READ TABLE st_sum WITH KEY waerk = vbrk-waerk taxm1 = vbrp-taxm1 payer = ls_avbpak_rg-kunnr zterm = vbrk-zterm land1 = ls_avbpak_we-land1 fbuda = ls_likp-wadat_ist fkdat = ls_likp-fkdat fkart = ls_likp-fkarv exnum = ls_likp-exnum kunag = ls_likp-kunag inco1 = ls_likp-inco1 inco2 = ls_likp-inco2 INTO ls_sum BINARY SEARCH. IF sy-subrc = 0. * convert to local currency IF ls_sum-waerk lc_curr. CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = ls_sum-fkdat foreign_amount = ls_sum-netwr foreign_currency = ls_sum-waerk local_currency = lc_curr type_of_rate = lc_rate_type IMPORTING local_amount = lv_netwr

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 13

    EXCEPTIONS no_rate_found = 1 overflow = 2 no_factors_found = 3 no_spread_found = 4 derived_2_times = 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. EXIT. ENDIF. ELSE. lv_netwr = ls_sum-netwr. ENDIF. * change vbrp-taxm1 IF lv_netwr < lc_limit. vbrp-taxm1 = lc_taxm11. ENDIF. ENDIF. ENDIF. "vbrp-taxm1 ENDFORM. "USEREXIT_FILL_VBRK_VBRP

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 14

    * Create summarized values for tax categories ************************************************ IF lines( st_sum ) = 0. * read all alternative tax categories IF lines( st_prtype ) = 0. SELECT * FROM fiskc_prtype INTO TABLE st_prtype ORDER BY PRIMARY KEY. ENDIF. LOOP AT xkomfk WHERE vbtyp = charj. * delivery item SELECT * FROM lips INTO TABLE lt_lips WHERE vbeln = xkomfk-vbeln. LOOP AT lt_lips INTO ls_lips. CLEAR ls_sum. SELECT SINGLE * FROM vbap INTO ls_vbap WHERE vbeln = ls_lips-vgbel AND posnr = ls_lips-vgpos. IF sy-subrc = 0. * search tax category READ TABLE st_prtype INTO ls_prtype WITH KEY land1 = lc_country bukrs = vbrk-bukrs taxm1 = vbrp-taxm1 BINARY SEARCH. IF sy-subrc = 0. ls_sum-taxm1 = ls_vbap-taxm1. ls_sum-netwr = ls_vbap-netpr * ls_lips-lfimg. ls_sum-waerk = ls_vbap-waerk. * partner function bill-to-party SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = ls_vbap-posnr AND parvw = parvw_rg. IF sy-subrc 0. SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = '000000' AND parvw = parvw_rg. IF sy-subrc 0. CLEAR ls_vbap. ENDIF. ENDIF. ls_sum-payer = ls_vbpa-kunnr. * partner function ship-to-party SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = ls_vbap-posnr AND parvw = parvw_we. IF sy-subrc 0. SELECT SINGLE * FROM vbpa INTO ls_vbpa WHERE vbeln = ls_vbap-vbeln AND posnr = '000000' AND parvw = parvw_we. IF sy-subrc 0. CLEAR ls_vbpa. ENDIF. ENDIF. ls_sum-land1 = ls_vbpa-land1. * payment terms SELECT SINGLE * FROM vbkd INTO ls_vbkd WHERE vbeln = ls_vbap-vbeln AND posnr = ls_vbap-posnr. IF sy-subrc 0. SELECT SINGLE * FROM vbkd INTO ls_vbkd WHERE vbeln = ls_vbap-vbeln AND posnr = '000000'. IF sy-subrc 0. CLEAR ls_vbkd. ENDIF. ENDIF. ls_sum-zterm = ls_vbkd-zterm. ENDIF. "st_prtype ENDIF. "vbap

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 15

    * delivery header SELECT SINGLE * FROM likp INTO ls_likp WHERE vbeln = xkomfk-vbeln. IF sy-subrc = 0. ls_sum-fbuda = ls_likp-wadat_ist. ls_sum-fkdat = ls_likp-fkdat. ls_sum-fkart = ls_likp-fkarv. ls_sum-exnum = ls_likp-exnum. ls_sum-kunag = ls_likp-kunag. ls_sum-inco1 = ls_likp-inco1. ls_sum-inco2 = ls_likp-inco2. ENDIF. lv_netwr = ls_sum-netwr. READ TABLE st_sum INTO ls_sum WITH KEY waerk = ls_sum-waerk taxm1 = ls_sum-taxm1 payer = ls_sum-payer zterm = ls_sum-zterm land1 = ls_sum-land1 fbuda = ls_sum-fbuda fkdat = ls_sum-fkdat fkart = ls_sum-fkart exnum = ls_sum-exnum kunag = ls_sum-kunag inco1 = ls_sum-inco1 inco2 = ls_sum-inco2 BINARY SEARCH. IF sy-subrc = 0. ls_sum-netwr = ls_sum-netwr + lv_netwr. MODIFY st_sum FROM ls_sum INDEX sy-tabix. ELSE. INSERT ls_sum INTO st_sum INDEX sy-tabix. ENDIF. ENDLOOP. "lt_lips ENDLOOP. "xkomfk ENDIF. "st_sum ***************************************************** * Change Tax classification 1 for material in item ***************************************************** READ TABLE avbpak INTO ls_avbpak_rg WITH KEY parvw = parvw_rg. IF sy-subrc 0. CLEAR ls_avbpak_rg. ENDIF. READ TABLE avbpak INTO ls_avbpak_we WITH KEY parvw = parvw_we. IF sy-subrc 0. CLEAR ls_avbpak_we. ENDIF. * delivery header SELECT SINGLE * FROM likp INTO ls_likp WHERE vbeln = xkomfk-vbeln. IF sy-subrc = 0. ls_sum-fbuda = ls_likp-wadat_ist. ls_sum-fkdat = ls_likp-fkdat. ls_sum-fkart = ls_likp-fkarv. ls_sum-exnum = ls_likp-exnum. ls_sum-kunag = ls_likp-kunag. ls_sum-inco1 = ls_likp-inco1. ls_sum-inco2 = ls_likp-inco2. ELSE. CLEAR ls_likp. ENDIF. CLEAR ls_sum. READ TABLE st_sum INTO ls_sum WITH KEY waerk = vbrk-waerk taxm1 = vbrp-taxm1 payer = ls_avbpak_rg-kunnr zterm = vbrk-zterm land1 = ls_avbpak_we-land1 fbuda = ls_likp-wadat_ist fkdat = ls_likp-fkdat fkart = ls_likp-fkarv exnum = ls_likp-exnum kunag = ls_likp-kunag inco1 = ls_likp-inco1 inco2 = ls_likp-inco2 BINARY SEARCH.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 16

    IF sy-subrc = 0. * search threshold amount and currency READ TABLE st_prtype INTO ls_prtype WITH KEY land1 = lc_country bukrs = vbrk-bukrs taxm1 = vbrp-taxm1 BINARY SEARCH. IF sy-subrc = 0. * convert to threshold currency IF ls_sum-waerk ls_prtype-waers. CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = ls_sum-fkdat foreign_amount = ls_sum-netwr foreign_currency = ls_sum-waerk local_currency = ls_prtype-waers type_of_rate = lc_rate_type IMPORTING local_amount = lv_netwr EXCEPTIONS no_rate_found = 1 overflow = 2 no_factors_found = 3 no_spread_found = 4 derived_2_times = 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. EXIT. ENDIF. ELSE. lv_netwr = ls_sum-netwr. ENDIF. * change vbrp-taxm1 to alternative tax classification IF lv_netwr < ls_prtype-limit. vbrp-taxm1 = ls_prtype-alt_taxm1. ENDIF. ENDIF. "st_prtype ENDIF. "st_sum ENDFORM. "USEREXIT_FILL_VBRK_VBRP

    You should avoid unasked influence of different companies or sales organizations in your system. (69) Restrictions of proposed solution Price change in invoice creation dialog does not influence already assigned tax code. Do not use fields on VF01 screen for Billing Type (FKART), Billing date (FKDAT) and Serv.rendered date (FBUDA). Usage of these fields are not supported. If you are using for additional split criteria, usually by changing field VBRK-ZUKRI, or some other split criteria (some other fields on invoice header level), you need to add this fields/apply the same logic to t_sum and use it at reading of t_sum as a key. You need also fill this fields ls_sum with the same logic, as you apply in your routine for transferring data to invoice (transaction VOFM). This routine is called after processing of user-exit and is matter of customizing of copy-control to invoice on item level (VBRK/VBRP data). Solution is only for invoices related to delivery. No order related invoice is supported. This means, solution couldnt be used in case of 3

    rd party business. Additional development would be required for this.

    Solution was not extensively tested for mass runs, even applied logic should consider the same split criteria. (69) Alternative (manual) solution. In this case is no user-exit used. All customizing settings stays like described above. This is valid only for individual invoice document creation. No mass invoice creation is supported. Mass processing is only possible, if no automatic posting to FI is generated. Tax classification for customer, above described as optional, is for this solution mandatory. In this case, system automatically sets VAT for all Items with relevant tax classification to 0. By manual changing of tax classification for customer in invoice header, new tax assignment could be called.

  • VAT LEDGER REPORTING FOR SLOVAKIA, FI-SD

    Version 1.4 17

    For VAT condition (MWST) must be required condition records defined. Example:

    Tax class. customer Tax class. material TAX

    1 M 0%

    X M 20%

    In case, more different tax classifications for material could appear on 1 invoice, more tax classifications for customer should be created and all relevant combination should be maintained. Example:

    Tax class. customer Tax class. material TAX

    1 M 0%

    1 I 0%

    X M 20%

    X I 0%

    Y M 0%

    Y I 20%

    Z M 0%

    Z I 0%

    In case, this materials are usually sold in value less than 5000,00 EUR, you can use for this manual option different approach, where combination 1 M results to 20% and X M to 0%. As help for user cumulative statistical pricing condition may be maintained in pricing procedure so, that user could see in invoice document header, cumulative value for each tax classification for material (VBRP-TAXM1).

  • 2013 SAP AG or an SAP affiliate company. All rights reserved.

    No part of this publication may be reproduced or transmitted in any

    form or for any purpose without the express permission of SAP AG.

    The information contained herein may be changed without prior notice.

    Some software products marketed by SAP AG and its distributors contain

    proprietary software components of other software vendors. National product

    specifications may vary.

    These materials are provided by SAP AG and its affiliated companies (SAP Group) for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with

    respect to the materials. The only warranties for SAP Group products and

    services are those that are set forth in the express warranty statements

    accompanying such products and services, if any. Nothing herein should be

    construed as constituting an additional warranty.

    SAP and other SAP products and services mentioned herein as well as their

    respective logos are trademarks or registered trademarks of SAP AG in

    Germany and other countries.

    Please see

    http://www.sap.com/corporate-en/legal/copyright/index.epx#trademark

    for additional trademark information and notices.

    www.sap.com