Calculation of Output VAT in Russia (MWST, MWR1) / pricing procedure RVAARU
When trying to find an SAP template for a Russian pricing procedure I got three different results for pricing procedure "RVAARU standard - Russia":
1. IDES calculates MWST and MWS1 mandatory plus some further manual MWR* conditions.
2. SAP standard provides MWST and MWS1 as mandatory and none of those MWR* conditions.
3. SAP standard after implementing the "SAP Russian add-on" shows no MWST at all (!!), but MWS1 mandatory and even more manual MWR* conditions, one of which - MWR1 - is suddenly called "Output tax (VAT)".
Which of the three pricing procedures is correct?
I had assumed the Russian add-on provides all necessary entries for Russia, but can it be true that a legal VAT tax line is NOT calculated automatically but maintained as manual condition? If so, do I still have to maintain condition records in order to determine the correct tax code for the percentage and the FI posting?
And no MWST at all, although in customer and material master the tax classification is still determined by MWST?
Who has experience with Russian calculation procedures in SAP and could give me some hints?
Thanks
Christine
hi
In pricing procedure MWST is a tax category.this tax categort reflected in both masters. this tax category linked to the tax code. for the tax category , u will maintain the condition records.
for eg. country, region ,cus tax classification ,material tax classification and tax code
so this combination linked to tax code ( for eg if u will maintain A1 Taxcode means ) A1 for VAT Same % Tax code.the system automatically values take from tax code.
Similar Messages
-
Condition type MWST in Pricing procedure US
Hi ,
I have added the MWST condtion type in pricing procedure for US .This condition type is not appearing in pricing procedure.This condition type has an access sequence MWST.Can anybody guide me on this how to correct this
Thanks in advance
Regards,
Nitin AmritkarHI,
The MWST condition typeeither has 'manual tick ' in the pricing procedure.If that has u have to enter the condition type by F4 selection only.Otherwise u remove that tick and ckeck u can get MWST condition type automatically in all condition types.
Regards,
Andra -
Advance output VAT configuration problem, FTXP
I have a problem with configuration of outgoing down payment tax code.
In transaction FTXP I've created tax code with following configuration:
TAX TYPE , ACCT KEY, %, LEVEL, COND. TYPE, ACCOUNT
Output tax (VAT) , MWS, 10 , 140, MWR1, 1960000
OutputTax-DebitClear, ZUD, , 150, MWR2, 9119000
OutputTax-CredtClear, ZUK, , 160, MWR3, 9010000
Tax type - A, Output tax
Check - switched on
EU Code, Target code, Tgt tax code: Output and Input are empty.
When I try to post invoice (transaction FB01) in SAP R3 automaticaly generates additional line item for account 1960000 but no item generates for accounts 9119000 and 9010000 (i.e. for tax type ZUD & ZUK).
Tax category for accounts 9119000 and 9010000 is set to + (only output tax allowed).
Could you give me guidence what have I missed with tax configuation..
Thanx.The problem has been solved.
We have problem with 901-requirement witch used in tax calculation procedure. Accordingly to russian legislation requirements SAP deliver configured tax calculation procedure - taxru. To avoid error message FF 731 - "Tax code may only contain one rate" tax calculation procedure uses 901 requirement for zud and zuk. 901 requirement should has condition text (VOFM transaction -> menu requirements -> Pricing):
check: ( sy-dynnr = '0312' and
sy-cprog = 'SAPMF05A' and
sy-tcode = 'FB01') or
sy-cprog = 'RFUMSV25' or
sy-cprog = 'J_3RFUM25'.
sy-subrc = 4.
In my case this text was changed by some one and my calculation procedure did not work.
Thank you all for assistance !!!! -
WRONG CALCULATION OF ADDITIONAL VAT IN MIRO
HI FRIENDS ,
I HAVE A SERIOUS ISSUE
Recently Additonal Vat was introduced in gujarat.
Additional vat is calculated on, total value of the amount.
A new condition type for additional vat is created.
We have the following scenario
Total PO Value Rs. 10000
Vat: 4% - Rs. 400
Additonal Vat 1% - Rs. 100
Total PO Value: Rs. 10500
In normal circumstances the entries will be as follows:
When MIGO is done:
Stock A/c Dr 10000
GR/IR 10000
When MIRO is done:
Vendor A/c 10500
GR/IR: 10000
Vat: 400
Add Vat 100
This scenario is running correctly in normal circumstances. However when the excise is included in rate we get the following entries
PO: Rate: Rs. 10000 (Excise of Rs. 200 includes in rate)
Vat: Rs. 400
Additional Vat Rs 100
Total PO Value: 10500
When MIGO is done: - here we tick the mrp indicator
Stock A/c dr. 9800
GR/IR 9800
When J1iex is done
Cenvat input 200
to cenvat clearing 200
When MIRO is done
Vendor: Rs. 10500
GR/IR: 9800
Cenvat clearing 200
Vat: Rs. 400
Additional Vat: Rs. 98 ( Should be Rs. 100)
Scenario is working perfectly if there is no excise or excise is extra, problem only comes when excise is including in the rate.
We had raised an OSS with SAP. They have given us an user Exit ' J_1I17_USEREXIT_PROCESS_TKOMV'
how to work with this erxit they told us to redetrmine the additional vat here & its to be called after the fn mod : j_1i4_tax_conditions .they r the part of the class cl_im_india_tax_conditions
KINDLY ANY BODY HELP ME WITH DETAILED STEPS
thanks in advance
REGARDS
digvijay raihi
In pricing procedure MWST is a tax category.this tax categort reflected in both masters. this tax category linked to the tax code. for the tax category , u will maintain the condition records.
for eg. country, region ,cus tax classification ,material tax classification and tax code
so this combination linked to tax code ( for eg if u will maintain A1 Taxcode means ) A1 for VAT Same % Tax code.the system automatically values take from tax code. -
Pricing procedure - vat calculation on freight charge
HI,
Pls tell me, how to activate in pricing procedure, VAT should calculate frm the freight charge and how to link pricing procedure and tax procedure?? . give me solution..Hi Pankaj,
I have gone through your reply. I want to calculate VAT on Frieght. Following is the Scenario which i am using for the caluclation of VAT on Frieght.
In Condition Tab I am Getting the following information
PBXX Gross Price 949.6
Net value incl. disc 949.6
NAVS Non-Deductible Tax 0
Net value incl. tax 949.6
ZFCD Freight/Quantity Ded 575
SKTO Cash Discount 0
Actual price 1,524.60
In Invoice Tab I am geeting the following information
BASB Base Amount 949.6
Calculated Call 0.95 INR 949.6
Sub total 0.95 INR 949.6
JMOP IN: BED setoff % 8 % 75.97
JMX1 IN: A/P BED setoff 100 % 75.97
Total excise duty 0.08 INR 75.97
JEC1 A/P Ecess for Setoff 2 % 1.52
JSEP IN:A/P SECess Setoff 1 % 0.76
ZFRI FREIGHT-TESTING 0 INR 0
Copy Net Price 0.95 INR 949.6
Excise Duty 0.08 INR 75.97
JEX1 A/P Ecess for Invent 100 % 1.52
JHX1 IN: A/P SECess SOTot 100 % 0.76
Copy AED 0 INR 0
Price + Excise + AED 1.03 INR 1,027.85
JVCS A/P CST Non deductib 0 % 0
JVRD A/P VAT RM Deductibl 5 % 51.39
JVRN A/P VAT RM Non-Deduc 0 % 0
JVSD A/P Surcharge on VAT 10 % 5.14
Net Price + ED +ST 1.08 INR 1,084.38
But i Would Require the Following Calucaltions i.e (JVRD = JVRD + (ZFCD*0.05)) That i have mention in my below screen shot.
BASB Base Amount 949.6
Calculated Call 0.95 INR 949.6
Sub total 0.95 INR 949.6
JMOP IN: BED setoff % 8 % 75.97
JMX1 IN: A/P BED setoff 100 % 75.97
Total excise duty 0.08 INR 75.97
JEC1 A/P Ecess for Setoff 2 % 1.52
JSEP IN:A/P SECess Setoff 1 % 0.76
ZFRI FREIGHT-TESTING 0 INR 0
Copy Net Price 0.95 INR 949.6
Excise Duty 0.08 INR 75.97
JEX1 A/P Ecess for Invent 100 % 1.52
JHX1 IN: A/P SECess SOTot 100 % 0.76
Copy AED 0 INR 0
Price + Excise + AED 1.03 INR 1,027.85
JVCS A/P CST Non deductib 0 % 0
JVRD A/P VAT RM Deductibl 5 % 80.14
JVRN A/P VAT RM Non-Deduc 0 %
JVSD A/P Surcharge on VAT 10 % 8.015
Net Price + ED +ST 1.08 INR 1,116.01
PBXX Gross Price 949.6
Net value incl. disc 949.6
NAVS Non-Deductible Tax 0
Net value incl. tax 949.6
ZFCD Freight/Quantity Ded 575
SKTO Cash Discount 0
Actual price 1,524.60
Dinesh -
Dear Friends,
One advise needed.
I have created 2 VAT G/L Accounts via FS00 i.e.
Input VAT ( which is updated in Purchase Process at the time of MIRO )
(ii) Output VAT( which is updated in Sales Process at the time of VF01 )
Both are balanace Sheet accounts.
Now, I have one doubt,
I have created Input VAT G/L with category "ASSETS"
and Output VAT G/L with category "LIABILITIES"
Is this OK from Concept ? Will it cause any error at the time of period closing ?
Please reply.
Reward Points assured.
Thanks.
Regards,
Gaurav Raghav.
Is this OKHello Mr.Gourav
Its absolutely fine.it will work.But it should have been only balancesheet grou , insted of both assets and liability separetly.
u can directly go for both as liablity also.
where the Debits and the Credits will automaticaaly setoff.
and the balance will be relfected in the balance sheet
but if ur going to do them separeelt as assts and saparetely as liablity then adjustment need to be done at the time of preparing the financial staement version
Hope it will cleare u
Regards
Anup -
VAT calculation through Pricing Procedure of MM
Hello gurus,
I have a doubt can we calculate and post the vat thru purchase condition type in pricing procedure, for excise and cess we are using Tax code with tax procedure TAXINJ, we are trying hard for it., we have even created new transactiion key and assign GL account to it, but still it is not posting at the time of MIGO.
your urgent help required,
AnandHi Anand
I too develop a new condition type for Vat in mm pricing procedure.
Our business process is as follows
We r transferring material to one depot to another to UK. we are doing STO through SD route. i created a vat condition type which is non inventorised and subsequently refund will be received.
Problem is that Accounting entries are not generating after doing PGI. Plese give your inputs on this.
I created a new gl accouts and assigned to posting keys.
Thanks
sitaram -
Pricing procedure for the calculation of VAT
Dear all,
We require one new tax structure.
Assessable value + service tax & VAT for the sum of Assessable value + service tax.
Kindly give us the pricing procedure for the above requirement.
Regards
Mahalingam sarathi>
Mahalingam Sarathi wrote:
> Dear all,
>
> We require one new tax structure.
>
> Assessable value + service tax & VAT for the sum of Assessable value + service tax.
>
> Kindly give us the pricing procedure for the above requirement.
>
> Regards
>
> Mahalingam sarathi
Let me try to fit in this requirement for you (with a small demonstration, you will also have to use the appropriate accounting keys)
400 assessable value 350 390
410 JSRT Service tax 400
420 JEC3 ECEss on Srv tax 410
430 JSE3 Secess on SrvTax 410
440 ***. val + Srv Tax 400 430
450 JIVP VAT 440 -
VAT in Purchase Pricing Procedure
Hi All,
How can i use MWST condition type in my pricing.
Like scenario is as below.
CIF- 100.00
Duty- 50.00
Vat (110*x CIF+ Duty) * 15% - 24.75
here i need to maintain this VAT, but i cannot with tax code through TAX Procedure because freight, insurance, duty are defined in Pricing procedure.
if i maintain through TAX Procedure the above calculation cannot be acheived.
How can i post VAT amount through Purchasing Pricing Procedure.
Advise in this regard is really helpful & highly appreciated.
Regards
AshokHi Anand
I too develop a new condition type for Vat in mm pricing procedure.
Our business process is as follows
We r transferring material to one depot to another to UK. we are doing STO through SD route. i created a vat condition type which is non inventorised and subsequently refund will be received.
Problem is that Accounting entries are not generating after doing PGI. Plese give your inputs on this.
I created a new gl accouts and assigned to posting keys.
Thanks
sitaram -
Function module to pricing procedure calculation
hi,
I want to know whether any function modules available to get as I see in Invoice ->
select item level conditions.
Where i can see the basic price ,discount, etc as defined in the corresponding pricing procedure.
i have tried with
RV_INVOICE_PRICE_PBO
PRICING_SUBSCREEN_SET_DATA
here i get only the records which have condition type,
similarly for P.O. we have
ME_SWP_SIC_GET_PRICING_INFO
regards,
Prabhu
Points assured.REPORT zmm_pvr.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE-POOLS *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE-POOLS slis.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TABLES *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TABLES: mara, " General Material Data
marc, " Plant Data for Material
ekko, " Purchasing Document Header
ekpo, " Purchasing Document Item
lfa1, " Vendor Master (General Section)
konv, " Conditions (Transaction Data)
mbew, " Material Valuation
makt. " Material Descriptions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DATA DECLARATION *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DATA: BEGIN OF i_mat OCCURS 1,
matnr LIKE mara-matnr,
mtart LIKE mara-mtart,
werks LIKE marc-werks,
abcin LIKE marc-abcin,
END OF i_mat.
DATA: BEGIN OF itab OCCURS 1,
ebeln LIKE ekko-ebeln,
bedat LIKE ekko-bedat,
lifnr LIKE ekko-lifnr,
waers LIKE ekko-waers,
bukrs LIKE ekko-bukrs,
ekorg LIKE ekko-ekorg,
name1 LIKE lfa1-name1,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
meins LIKE ekpo-meins,
netpr LIKE ekpo-netpr,
netwr LIKE ekpo-netwr,
menge1(16),
netpr1(16),
menge2 TYPE string,
netpr2 TYPE string,
lrate TYPE p DECIMALS 2,
stax LIKE ekpo-netwr,
exbed LIKE ekpo-netwr,
dcost LIKE konv-kwert,
nomvl LIKE ekpo-netwr,
nomrt LIKE ekpo-netwr,
zplp1 LIKE mbew-zplp1,
verpr LIKE mbew-verpr,
bgval LIKE ekpo-netwr,
varnc LIKE ekpo-netwr,
maktx LIKE makt-maktx,
knumv LIKE ekko-knumv,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
matkl LIKE ekpo-matkl,
mtart LIKE ekpo-mtart,
bprme LIKE ekpo-bprme,
txz01 LIKE ekpo-txz01,
mwskz LIKE ekpo-mwskz,
prdat LIKE ekpo-prdat,
END OF itab.
DATA: wtab LIKE itab.
DATA: v_steuc TYPE marc-steuc.
DATA: v_brsch TYPE lfa1-brsch.
DATA: wa_komk TYPE komk.
DATA: wa_komp TYPE komp.
DATA: it_komv TYPE TABLE OF komv.
DATA: wa_komv TYPE komv.
DATA : wa_fieldcat TYPE slis_fieldcat_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv,
wa_layout TYPE slis_layout_alv,
lt_sort TYPE slis_t_sortinfo_alv,
i LIKE sy-tabix.
DATA: gt_events TYPE slis_t_event.
DATA: gd_prntparams TYPE slis_print_alv.
DATA: it_color TYPE slis_t_specialcol_alv.
DATA: wa_color TYPE slis_specialcol_alv.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Begin Of Selection Screen *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECTION-SCREEN BEGIN OF BLOCK pas WITH FRAME TITLE text-001.
SELECT-OPTIONS s_matnr FOR ekpo-matnr.
SELECT-OPTIONS s_werks FOR ekpo-werks.
SELECT-OPTIONS s_bedat FOR ekko-bedat.
PARAMETERS p_abcin LIKE marc-abcin OBLIGATORY.
SELECTION-SCREEN END OF BLOCK pas.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
INITIALIZATION *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
INITIALIZATION.
IF sy-datum+4(2) GE 4.
s_bedat-low+6(2) = 01.
s_bedat-low+4(2) = 04.
s_bedat-low(4) = sy-datum(4).
ENDIF.
IF sy-datum+4(2) LT 4.
s_bedat-low+6(2) = 01.
s_bedat-low+4(2) = 04.
s_bedat-low(4) = sy-datum(4) - 1.
ENDIF.
s_bedat-high = sy-datum.
APPEND s_bedat.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AT Selection Screen Output *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AT SELECTION-SCREEN.
Check for Material Type
SELECT amatnr amtart bwerks babcin INTO CORRESPONDING FIELDS OF TABLE i_mat
FROM mara AS a INNER JOIN marc AS b
ON amatnr = bmatnr
WHERE a~matnr IN s_matnr
AND ( amtart = 'IRAM' OR amtart = 'IPAM' OR amtart = 'PRAM' OR amtart = 'PPAM' )
AND b~werks IN s_werks
AND b~abcin = p_abcin.
SORT i_mat BY matnr werks.
CHECK NOT i_mat[] IS INITIAL.
READ TABLE i_mat INDEX 1.
IF sy-subrc <> 0.
MESSAGE e006(zmm).
LEAVE LIST-PROCESSING.
ENDIF.
Check for Date
IF ( s_bedat-low IS INITIAL AND s_bedat-high IS INITIAL ).
s_bedat-sign = 'I'.
s_bedat-option = 'BT'.
IF sy-datum+4(2) GE 4.
s_bedat-low+6(2) = 01.
s_bedat-low+4(2) = 04.
s_bedat-low(4) = sy-datum(4).
ENDIF.
IF sy-datum+4(2) LT 4.
s_bedat-low+6(2) = 01.
s_bedat-low+4(2) = 04.
s_bedat-low(4) = sy-datum(4) - 1.
ENDIF.
s_bedat-high = sy-datum.
ELSEIF ( s_bedat-low IS NOT INITIAL AND s_bedat-high IS INITIAL ).
s_bedat-low6(2) = s_bedat-low6(2).
s_bedat-low4(2) = s_bedat-low4(2).
s_bedat-low(4) = s_bedat-low(4).
ELSEIF ( s_bedat-low IS NOT INITIAL AND s_bedat-high IS NOT INITIAL ).
s_bedat-sign = 'I'.
s_bedat-option = 'BT'.
s_bedat-low6(2) = s_bedat-low6(2).
s_bedat-low4(2) = s_bedat-low4(2).
s_bedat-low(4) = s_bedat-low(4).
s_bedat-high6(2) = s_bedat-high6(2).
s_bedat-high4(2) = s_bedat-high4(2).
s_bedat-high(4) = s_bedat-high(4).
ENDIF.
APPEND s_bedat.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
START OF SELECTION *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
START-OF-SELECTION.
*----- Get all PO for given selection criteria.
LOOP AT i_mat.
SELECT
aebeln abedat alifnr aknumv awaers abukrs a~ekorg
bebelp bmatnr bmatkl bnetpr bbprme btxz01 bwerks bmenge bmeins bnetwr bmtart bmwskz b~prdat
FROM ( ekko AS a INNER JOIN ekpo AS b ON amandt = bmandt AND aebeln = bebeln )
INTO CORRESPONDING FIELDS OF TABLE itab
FOR ALL ENTRIES IN i_mat
WHERE a~bedat IN s_bedat
AND a~loekz = ''
AND b~matnr = i_mat-matnr
AND b~werks = i_mat-werks
AND b~loekz = ''
AND b~pstyp = '0'
AND b~bstyp = 'F'
AND b~knttp = ''.
ENDLOOP. " END OF i_mat
CHECK NOT itab[] IS INITIAL.
SORT itab BY ebeln ebelp.
*----- Calculating The DCOST -- Delivery Cost
DATA: BEGIN OF i_konv OCCURS 0,
knumv LIKE konv-knumv,
kposn LIKE konv-kposn,
stunr LIKE konv-stunr,
zaehk LIKE konv-zaehk,
kschl LIKE konv-kschl,
kbetr LIKE konv-kbetr,
kwert LIKE konv-kwert,
END OF i_konv.
SELECT knumv kposn stunr zaehk kschl kbetr kwert
FROM konv
INTO CORRESPONDING FIELDS OF TABLE i_konv
FOR ALL ENTRIES IN itab
WHERE knumv = itab-knumv
AND kposn = itab-ebelp
AND ( kschl = 'ZFC3' OR kschl = 'ZQIQ'
OR kschl = 'ZQIV' OR kschl = 'ZFA3'
OR kschl = 'ZFB3' OR kschl = 'ZPF2'
OR kschl = 'ZPQ2' OR kschl = 'ZPV2'
OR kschl = 'ZOCP' OR kschl = 'ZOCQ'
OR kschl = 'ZOCV' OR kschl = 'ZMT1'
OR kschl = 'ZIN2' OR kschl = 'ZIQ2'
OR kschl = 'ZIV2' OR kschl = 'ZBK1'
OR kschl = 'ZBKQ' OR kschl = 'ZBKV' ).
SORT i_konv BY knumv kposn stunr zaehk kschl .
DELETE ADJACENT DUPLICATES FROM i_konv.
DELETE i_konv WHERE kbetr = 0.
DATA: BEGIN OF i_knumv OCCURS 0,
knumv LIKE konv-knumv,
kwert LIKE konv-kwert,
END OF i_knumv.
LOOP AT i_konv.
MOVE i_konv-knumv TO i_knumv-knumv.
MOVE i_konv-kwert TO i_knumv-kwert.
COLLECT i_knumv.
ENDLOOP.
CLEAR i_konv.
CLEAR i_knumv.
LOOP AT itab INTO wtab.
READ TABLE i_knumv WITH KEY knumv = wtab-knumv.
IF sy-subrc = 0.
wtab-dcost = i_knumv-kwert.
MODIFY itab FROM wtab.
ENDIF.
ENDLOOP.
CLEAR i_knumv.
CLEAR itab.
*----- Get the vendor name.
LOOP AT itab.
SELECT SINGLE name1 FROM lfa1 INTO itab-name1
WHERE lifnr = itab-lifnr.
MODIFY itab INDEX sy-tabix TRANSPORTING name1.
ENDLOOP.
*----- Calculate Excise Duty, Educat. cess, Sec edu. cess, sales tax
CLEAR: wa_komk, wa_komp.
Selecting The Value Of STEUC (Controlling Code)
CLEAR itab.
LOOP AT itab.
SELECT SINGLE steuc
FROM marc
INTO v_steuc
WHERE matnr = itab-matnr
AND werks = itab-werks.
Selecting The Value Of BRSCH (Industry key)
SELECT SINGLE brsch
FROM lfa1
INTO v_brsch
WHERE lifnr = itab-lifnr.
Filling KOMK (Header Structure)
wa_komk-kappl = 'TX'.
wa_komk-kalsm = 'TAXINN'.
wa_komk-lifnr = itab-lifnr.
wa_komk-waerk = itab-waers.
wa_komk-aland = 'IN'.
wa_komk-hwaer = 'INR'.
wa_komk-bukrs = itab-bukrs.
wa_komk-brsch = v_brsch.
wa_komk-prsdt = itab-bedat.
wa_komk-ekorg = itab-ekorg.
wa_komk-mwskz = itab-mwskz.
Filling KOMP (Details Structure)
wa_komp-kposn = itab-ebelp.
wa_komp-matnr = itab-matnr.
wa_komp-werks = itab-werks.
wa_komp-matkl = itab-matkl.
wa_komp-meins = itab-meins.
wa_komp-vrkme = itab-bprme.
wa_komp-netwr = itab-netwr.
wa_komp-wrbtr = itab-netwr.
wa_komp-mwskz = itab-mwskz.
wa_komp-netpr = itab-netpr.
wa_komp-mtart = itab-mtart.
wa_komp-kursk_dat = itab-prdat.
wa_komp-steuc = v_steuc.
wa_komp-mgame = itab-menge.
wa_komp-mglme = itab-menge.
FREE it_komv.
Calling The Pricing Function To Get GR EXCISE, GR ECES, GR VAT/CST
CALL FUNCTION 'PRICING'
EXPORTING
calculation_type = 'B'
comm_head_i = wa_komk
comm_item_i = wa_komp
TABLES
tkomv = it_komv.
Calculating The Excise --excise duty
DATA: l_kbetr TYPE komv-kbetr.
DATA: l_gr_excise TYPE ekpo-brtwr.
DATA: l_basic_gr_val TYPE ekpo-netpr.
l_basic_gr_val = itab-netwr.
CLEAR: l_kbetr, l_gr_excise.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'JMOP'
OR kschl = 'JAOP'
OR kschl = 'JMIP'
OR kschl = 'JAOQ'.
l_kbetr = ( wa_komv-kbetr / 10 ).
l_gr_excise = ( l_kbetr * l_basic_gr_val ) / 100.
ENDLOOP.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'JAIP'
OR kschl = 'JAIQ'
OR kschl = 'JMIQ'
OR kschl = 'JMOQ'.
l_gr_excise = ( wa_komv-kbetr * l_basic_gr_val ).
ENDLOOP.
Calculating The ECES -- Educational Cess
DATA l_gr_eces TYPE ekpo-netpr.
CLEAR: l_kbetr, l_gr_eces.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'ZECE'
OR kschl = 'ZECN'.
l_kbetr = ( wa_komv-kbetr / 10 ).
l_gr_eces = ( l_kbetr * l_gr_excise ) / 100.
ENDLOOP.
Calculating The SECES -- Sec. Educational Cess
DATA l_gr_secs TYPE ekpo-netpr.
CLEAR: l_kbetr, l_gr_secs.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'JSEP'
OR kschl = 'JSEI'.
l_kbetr = ( wa_komv-kbetr / 10 ).
l_gr_secs = ( l_kbetr * l_gr_excise ) / 100.
ENDLOOP.
Calculating The VAT/CST --Sales Tax
DATA l_gr_vatcst TYPE ekpo-netpr.
CLEAR: l_kbetr, l_gr_vatcst.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'JVRN'
OR kschl = 'JVRD'
OR kschl = 'JVCS'
OR kschl = 'JVCD'
OR kschl = 'JVCN'
OR kschl = 'JIPS'
OR kschl = 'JIPC'
OR kschl = 'JIPL'.
l_kbetr = ( wa_komv-kbetr / 10 ).
l_gr_vatcst = ( ( l_basic_gr_val + l_gr_excise + l_gr_eces + l_gr_secs ) * l_kbetr ) / 100.
ENDLOOP.
Calculating The NOMVL & NOMVR -- NOM Value (Setoff / Inventory ) & NOM Rate
DATA: l_netpr TYPE ekpo-netpr,
l_menge TYPE ekpo-menge,
l_dcost TYPE ekpo-netwr,
l_nomvl TYPE ekpo-netwr,
l_nomrt TYPE ekpo-netwr.
l_netpr = itab-netpr.
l_menge = itab-menge.
l_dcost = itab-dcost.
CLEAR: l_nomvl, l_nomrt.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'JMOP' "------setoff
OR kschl = 'ZECE'
OR kschl = 'JSEP'.
l_nomvl = ( l_netpr * l_menge ) + l_gr_vatcst + l_dcost - ( l_gr_excise + l_gr_eces + l_gr_secs ).
l_nomrt = l_nomvl / l_menge.
ENDLOOP.
LOOP AT it_komv INTO wa_komv WHERE kschl = 'JMIP' "-------inventory
OR kschl = 'ZECN'
OR kschl = 'JSEI'.
l_nomvl = ( l_netpr * l_menge ) + l_gr_vatcst + l_dcost.
l_nomrt = l_nomvl / l_menge.
ENDLOOP.
itab-exbed = l_gr_excise + l_gr_eces + l_gr_secs.
itab-stax = l_gr_vatcst.
itab-nomvl = l_nomvl.
itab-nomrt = l_nomrt.
MODIFY itab .
CLEAR itab.
ENDLOOP. " end of itab
LOOP AT itab WHERE exbed = 0.
itab-nomvl = ( itab-netpr * itab-menge ) + itab-stax + itab-dcost.
itab-nomrt = itab-nomvl / itab-menge.
MODIFY itab INDEX sy-tabix TRANSPORTING nomvl nomrt.
ENDLOOP.
*----- Calculating The Budget Rate, Moving Average Price, Landed Rate & Material Description
DATA: verp(15).
DATA: matdes(40).
LOOP AT itab.
SELECT SINGLE zplp1 FROM mbew INTO itab-zplp1
WHERE matnr = itab-matnr AND bwkey = itab-werks.
SELECT SINGLE verpr FROM mbew INTO itab-verpr
WHERE matnr = itab-matnr AND bwkey = itab-werks.
itab-lrate = itab-netwr / itab-menge.
SELECT SINGLE maktx FROM makt INTO itab-maktx
WHERE matnr = itab-matnr AND spras = 'EN'.
MODIFY itab INDEX sy-tabix TRANSPORTING zplp1 verpr lrate maktx.
verp = itab-verpr.
matdes = itab-maktx.
ENDLOOP.
*----- Calculating The Budget Value & Variance
LOOP AT itab.
itab-bgval = itab-zplp1 * itab-menge.
itab-varnc = itab-bgval - itab-nomvl.
MODIFY itab INDEX sy-tabix TRANSPORTING bgval varnc.
ENDLOOP.
*------ Calculating Total of Quantity
DATA: BEGIN OF i_quan OCCURS 1,
quant LIKE ekpo-menge,
unit LIKE ekpo-meins,
nomvl LIKE ekpo-netwr,
curr LIKE ekko-waers,
varnc LIKE ekpo-netwr,
bgval LIKE ekpo-netwr,
END OF i_quan.
LOOP AT itab.
MOVE itab-menge TO i_quan-quant.
MOVE itab-meins TO i_quan-unit.
MOVE itab-nomvl TO i_quan-nomvl.
MOVE itab-waers TO i_quan-curr.
MOVE itab-varnc TO i_quan-varnc.
MOVE itab-bgval TO i_quan-bgval.
COLLECT i_quan.
ENDLOOP.
CLEAR itab.
CLEAR i_quan.
DATA: qty(15).
DATA: unt(3).
DATA: wtd TYPE p DECIMALS 2.
DATA: wtd2(15).
DATA: cur(3).
DATA: var(15).
DATA: nomvl(15).
DATA: bgval(15).
DATA: bgv TYPE p DECIMALS 2.
DATA: bgv2(15).
LOOP AT i_quan.
qty = i_quan-quant.
unt = i_quan-unit.
cur = i_quan-curr.
var = i_quan-varnc.
bgval = i_quan-bgval.
nomvl = i_quan-nomvl.
wtd = nomvl / qty.
bgv = bgval / qty.
ENDLOOP.
CLEAR i_quan.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DATA DISPLAY *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-seltext_l = 'Purchase Order'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 1.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'BEDAT'.
wa_fieldcat-seltext_l = 'PO Date'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 2.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_l = 'Vendor Name'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 3.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_l = 'Plant'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 4.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'MENGE2'.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-seltext_l = 'Quantity'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 5.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NETPR2'.
wa_fieldcat-fieldname = 'NETPR'.
wa_fieldcat-seltext_l = 'Basic Rate'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 6.
wa_fieldcat-do_sum = ' '.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'EXBED'.
wa_fieldcat-seltext_l = 'Excise'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 7.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'STAX'.
wa_fieldcat-seltext_l = 'Sale Tax'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 7.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'DCOST'.
wa_fieldcat-seltext_l = 'Delivery Cost'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 8.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-seltext_l = 'Landed Value'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 9.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'LRATE'.
wa_fieldcat-seltext_l = 'Landed Rate'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 10.
wa_fieldcat-do_sum = ' '.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NOMVL'.
wa_fieldcat-seltext_l = 'NOM Value'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 12.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NOMRT'.
wa_fieldcat-seltext_l = 'NOM Rate'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 13.
wa_fieldcat-do_sum = ' '.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'BGVAL'.
wa_fieldcat-seltext_l = 'Budget Value'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 11.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'ZPLP1'.
wa_fieldcat-seltext_l = 'Budget Rate'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 12.
wa_fieldcat-do_sum = ' '.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'VARNC'.
wa_fieldcat-seltext_l = 'Variance'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-row_pos = 1.
wa_fieldcat-col_pos = 13.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_layout-colwidth_optimize = 'X'.
wa_layout-zebra = ' '.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events[].
READ TABLE gt_events WITH KEY name = slis_ev_end_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
gd_prntparams-reserve_lines = '7'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
i_callback_top_of_page = 'TOP-OF-PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
i_callback_html_end_of_list = 'END_OF_LIST_HTML'
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = gt_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'X'
i_save = 'X'
IS_VARIANT =
it_events = gt_events
IT_EVENT_EXIT =
is_print = gd_prntparams
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 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.
*& Form top-of-page
text
--> p1 text
<-- p2 text
FORM top-of-page .
ALV Header Declarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
wa_header1 TYPE slis_listheader,
wa_header2 TYPE slis_listheader,
wa_header3 TYPE slis_listheader,
wa_header4 TYPE slis_listheader.
Title
wa_header-typ = 'H'.
wa_header-info = 'Purchase Variance Report'.
APPEND wa_header TO t_header.
CLEAR wa_header.
Material
SHIFT p_matnr LEFT DELETING LEADING '0'.
wa_header1-typ = 'S'.
wa_header1-info = ' '.
CONCATENATE 'Material : ' p_matnr matdes INTO wa_header1-info SEPARATED BY space.
APPEND wa_header1 TO t_header.
CLEAR wa_header1.
Plant
IF ( s_werks-low IS NOT INITIAL AND s_werks-high IS NOT INITIAL ).
wa_header2-typ = 'S'.
wa_header2-info = ' '.
CONCATENATE 'Plant : ' s_werks-low 'to' s_werks-high INTO wa_header2-info SEPARATED BY space.
APPEND wa_header2 TO t_header.
CLEAR wa_header2.
ELSEIF ( s_werks-low IS NOT INITIAL AND s_werks-high IS INITIAL ).
wa_header2-typ = 'S'.
wa_header2-info = ' '.
CONCATENATE 'Plant : ' s_werks-low INTO wa_header2-info SEPARATED BY space.
APPEND wa_header2 TO t_header.
CLEAR wa_header2.
ELSEIF ( s_werks-low IS INITIAL AND s_werks-high IS INITIAL ).
EXIT.
ENDIF.
Period
IF ( s_bedat-low IS NOT INITIAL AND s_bedat-high IS INITIAL ).
wa_header4-typ = 'S'.
wa_header4-info = ' '.
CONCATENATE 'Period : '
s_bedat-low+6(2) '.'
s_bedat-low+4(2) '.'
s_bedat-low(4) INTO wa_header4-info SEPARATED BY space.
APPEND wa_header4 TO t_header.
CLEAR wa_header4.
ELSE.
IF ( s_bedat-low IS INITIAL AND s_bedat-high IS INITIAL ).
wa_header4-typ = 'S'.
wa_header4-info = ' '.
CONCATENATE 'Period : '
s_bedat-low+6(2) '.'
s_bedat-low+4(2) '.'
s_bedat-low(4)
'to'
s_bedat-high+6(2) '.'
s_bedat-high+4(2) '.'
s_bedat-high(4) INTO wa_header4-info SEPARATED BY space.
APPEND wa_header4 TO t_header.
CLEAR wa_header4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. " top-of-page
*& Form end_of_list_html
output at the end of the list - not in printed output *
FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
DATA: ls_text TYPE sdydo_text_element,
l_grid TYPE REF TO cl_gui_alv_grid,
f(14) TYPE c VALUE 'SET_ROW_HEIGHT'.
DATA: qty1 TYPE sdydo_text_element.
DATA: unt1 TYPE sdydo_text_element.
DATA: wtd1 TYPE sdydo_text_element.
DATA: cur1 TYPE sdydo_text_element.
DATA: var1 TYPE sdydo_text_element.
DATA: verp1 TYPE sdydo_text_element.
DATA: bgv1 TYPE sdydo_text_element.
qty1 = qty.
unt1 = unt.
wtd1 = wtd.
cur1 = cur.
var1 = var.
verp1 = verp.
bgv1 = bgv.
ls_text = 'SUMMARY'.
CALL METHOD end->add_text
EXPORTING
text = ls_text
sap_emphasis = 'strong'.
Total Qty Bought (start new line)
CALL METHOD end->new_line.
CALL METHOD end->add_text
EXPORTING
text = 'Total Qty Bought : '.
CALL METHOD end->add_text
EXPORTING
text = qty1.
CALL METHOD end->add_text
EXPORTING
text = unt1.
Wtd. Avg. Purchase Rate
CALL METHOD end->new_line.
CALL METHOD end->add_text
EXPORTING
text = 'Wtd. Avg. Purchase Rate : '.
CALL METHOD end->add_text
EXPORTING
text = cur1.
CALL METHOD end->add_text
EXPORTING
text = wtd1.
Wtd. Avg. Budget Rate
CALL METHOD end->new_line.
CALL METHOD end->add_text
EXPORTING
text = 'Wtd. Avg. Budget Rate : '.
CALL METHOD end->add_text
EXPORTING
text = cur1.
CALL METHOD end->add_text
EXPORTING
text = bgv1.
Gain / Loss
CALL METHOD end->new_line.
CALL METHOD end->add_text
EXPORTING
text = 'Gain / Loss : '.
CALL METHOD end->add_text
EXPORTING
text = cur1.
CALL METHOD end->add_text
EXPORTING
text = var1.
MAP ( Moving Average Price )
CALL METHOD end->new_line.
CALL METHOD end->add_text
EXPORTING
text = 'Mov Avg Price : '.
CALL METHOD end->add_text
EXPORTING
text = cur1.
CALL METHOD end->add_text
EXPORTING
text = verp1.
ENDFORM. "end_of_list_html.
*& Form END_OF_PAGE
FORM end_of_page.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
wtd2 = wtd.
bgv2 = bgv.
CONDENSE qty.
CONDENSE unt.
CONDENSE wtd2.
CONDENSE bgv2.
CONDENSE var.
CONDENSE verp.
SKIP.
WRITE:/ 'SUMMARY:'.
write:/ sy-uline(7).
WRITE:/ 'Total Qty Bought : ', qty, unt.
WRITE:/ 'Wtd. Avg. Purchase Rate : ', wtd2, cur.
WRITE:/ 'Wtd. Avg. Budget Rate : ', bgv2, cur.
WRITE:/ 'Gain / Loss : ', var, cur.
WRITE:/ 'Mov Avg Price : ', verp, cur.
ENDFORM. "END_OF_PAGE
*& Form END_OF_LIST
FORM end_of_list.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
wtd2 = wtd.
bgv2 = bgv.
CONDENSE qty.
CONDENSE unt.
CONDENSE wtd2.
CONDENSE bgv2.
CONDENSE var.
CONDENSE verp.
SKIP.
WRITE:/ 'SUMMARY:'.
write:/ sy-uline(7).
WRITE:/ 'Total Qty Bought : ', qty, unt.
WRITE:/ 'Wtd. Avg. Purchase Rate : ', wtd2, cur.
WRITE:/ 'Wtd. Avg. Budget Rate : ', bgv2, cur.
WRITE:/ 'Gain / Loss : ', var, cur.
WRITE:/ 'Mov Avg Price : ', verp, cur. -
Tax calculation in CRM using R/3 pricing procedure
Hello Experts
We are using R/3 pricing procedure to calculate list prices in CRM.
The condition record for Taxes are maintained for condition type UTXJ in SD which is calling for tax procedure TAXUSJ and condition type JR1.
The records are maintained in FTXP. This is the SAP Standard way of maintaining taxes if external tax software is not used.
We have downloaded the condition records and condition types in CRM. The tables have all the required records downloaded from R/3.
When creating an order in Webshop the tax is not getting calculated.
The pricing analysis shows that the condition record for UTXJ condtion type is met, but it is not showing the tax maintained for condition type JR1.
Have we missed any settings here?
If we are using R/3 billling does the TTE needs to be activated for calculating taxes in the webshop?
If TTE needed to be used for calculating taxes, what are the settings needed to be configured?
Thanks in advance for the valuable advice.
SastriHi Sastri,
I am facing this problem with TAX Condition Records: Pricing error: Mandatory condition MWST is missing. I am using a R/3 pricing procedure correctly downloaded to CRM.
You say that you have downloaded the condition records and condition types in CRM. SAP Library says 'Prerrequisites: You have downloaded the tax condition records from SAP ECC'.
I don't know If my problem is caused because I haven't downloaded any Tax Condition Records. The fact is that I cannot determine which one is the Condition Object to download in R3AS.
I would really appreciate if you or anyone could tell me which object you did use.
thanks in advance,
Pablo
Edited by: Pablo Rodríguez Mateos on Sep 30, 2009 12:30 PM
Edited by: Pablo Rodríguez Mateos on Sep 30, 2009 8:59 PM
Solved! -
Pricing procedure mm Packing and forwarding to be calculated on Basic price
Hi experts
we are having one pricing procedure where in details are as follows.
basic price 100
excise 12.36
total 112.36
P & F 2 % 0n (112.36) 2.24
total 114.60
Vat 5 % 0n (114.60) 5.73
Grand total 120.33
Now we require new pricing procedure wherein Packing & forwarding to be calculated on basic price & not on basic + excise
so can we change in same pricing procedure or we have to create new ?
Can you elaborate with the configuration steps ? Any changes required in Tax procedure also or not ?
Thanks in advance
regardsHi,
No need you can add the condition type to the pricing procedure at spro--mm---purchasing--pricing procedure ---calculation schema with proper calculation to get the percentage on base price and add to the total .
Regards, -
PRICING PROCEDURE-CALCULATION SCHEMA
Dear All,
There are some queries regarding pricing procedure calculation schema.Please help me out:
1) What is the use of the "Requirement" column in calculation schema in real time scenario?
2) What is meant by "Alternative calculation type" and "Alternative base value" column?What is its use in real time scenario?
3) In the Print column if we place "X",it says "Printing at item level (previous procedure)".What does this actually means?
4) What is the use of "Accurals" and what effect does it have in the pricing procedure and pricing calculation?
For all the above queries some real time scenario example willbe highly appreciable.
Regards,
Indranil1) What is the use of the "Requirement" column in calculation schema in real time scenario?
Requirement
Use
If the requirement is fulfilled (SY-SUBRC = 0), then output
determination also takes into consideration output type or the access
sequence, for which the requirement has been specified.
Examples
A possible requirement would be, for example, that a difference shoul
be made between document currency and local currency .
Definition
Number of a subroutine (= form routine), that checks a requirement at a
specific time.
Use
The standard SAP system contains some standard routines for checking
requirements when copying. You can also define your own routines
according to the needs of your company.
Example
If you copy a quotation to a sales order, the system can check every
quotation item to ensure that the customer had not rejected them for any
reason.
2) What is meant by "Alternative calculation type" and "Alternative base value" column?What is its use in real time scenario?
If you are using any Formula to Derive the Condition Type then you can use Alternative formula to the formula in the standard system that
determines a condition.
Alternative formula for condition base value
Formula for determining the condition basis as an alternative to t
standard.
Example
An absolute header discount is, for example, distributed in the st
system according to the cumulative value of the items.
If the system, however, distributes the absolute header discount
according to volume, a header discount of $30 results in the follo
discounts:
Item Value Volume Discount
Stand. disc. Volume disc.
1 $1000 2 cbm $20 $10
2 $500 4 cbm $10 $20
3) In the Print column if we place "X",it says "Printing at item level (previous procedure)".What does this actually means?
If you Put 'X" , it will be shown in the Print Output..
Print ID for condition lines
Controls issue of condition lines when printing documents such as order
confirmations or invoices.
Use
In releases previous to 4.0, the following print indicators are
available :
o ' ' : Condition line is not printed
o 'X' : Condition line is printed at item level
o 'S' : Condition line is printed in totals block
The following standard logic is set out for these printing indicators: -
Pricing Procedure- Handling of VAT
Hello All
Need help for designing IMPORT pricing procedure for a specific case (Thailand).
Our client applies VAT - 7% on total value of the Import PO i.e. at the end.
Their Pricing Structure is like:
1 Basic Price
2 Freight
3 Insurance
4 Custom Duty
5 Surcharge
6 Excise
7 Internal Duty
Net value = (1234567)
and then
8 VAT on this Net Value.i.e 7% of (1234567).
They are paying this 7% directly to government and not to the Foregin Supplier.
Now this VAT amount is deductable as they are having a VAT return report submitted to the government each month.
i don't know how to handle this case..so request you all if anybody have idea please help me.
It is vey urgent...
Regards
YogeshHi Yogesh,
In our case the requirement is simple.We have defined a tax procedure for african country which only has input and out put conditions on the base amount.
In PO, we have several conditions (header) for additional costs like freight,demurage,port charges etc and which we have defined as fright conditions.
The accrual indicator has been ticked and so is the Vendor GR checkbox.
The reason is that while GR, ALL THESE CONDITIONS WILL BE LOADED ON MATERIAL SO TO HAVE a LANDED COST.
Now,the requirement in this country is that whatever they receive vide PO incurrs certain % of VAT on basic price of an item + all the additional costs(freight,demurage,port charges).
As per the tax procedure, it calculates VAT on the BASE amount which does not consider the net price in PO.It considers gross price entered against the material.
This is the problem.
If I remove the accrual tick in PO pricing procedure for all the conditions for freight,port charges etc, then those conditions will get added on the basic cost of the material and thus the net price will change accordingly.VAT can then be calculated on this.
But the problem in this is that the FREIGHT tab at the time of GR does not appear which does not allow me to consider all these costs at the time of GR.
I hope you understand our requirement clearly now.
There is some additional requirement but that can be thought of later.The requirement is that the VAT will differ in % depending on the material in a PO.It means a PO can have items with different VAT %
Thanks in advance.I hope someone must have tried out this earlier.
Thanks in advance.
Regards,
manOO -
Reverse Calculation in Pricing Procedure
Hi All,
My client requirement is to calculate the PR00 from the TOTAL and TAX
i.e. If we enter the TOTAL some amount and TAX 12.5% VAT in the Pricing Condition then it should calculate the d Basic Price PR00 .
Tanks and regards,
BalaHi
Thanks for understanding the explanation given earlier and this an interesting qn
I am giving herewith a document on MRP pricing procedure (you need to understand this and make the settings)
This is same as your requirement but additionally it has an discount which you can ignore for yours
Go through the following:
I will brief your requirement in short
MRP = 1012.5/-
VAT = (1012.5/1.125) = 900/-
so price before discount will be = 900/-
discount given at the rate of 10% = 100/-
Initial Price = 1000/-.
1. Create condition types as below:
ZR00 for price
Condition class = B
Calculation type = C
Plus/minus = A
ZSET for settlement (to knock off the effect of ZR00)
Condition class = A
Calculation type = C
Plus/minus = X
ZWST for tax
Condition class = A
Calculation type = H
Condition category = D
Plus/minus = X
Z007 for discount
Condition class = A
Calculation type = H
Plus/minus = A
ZDUM for net price
Condition class = A
Calculation type = A
Plus/minus = A
YWST for tax (to knock of the previous effect - to be used for posting to G/L)
Condition class = A
Calculation type = A
Plus/minus = X
YOO7 for discount (to knock of the previous effect - to be used for posting to G/L)
Condition class = A
Calculation type = A
Plus/minus = X
2. The following will be the pricing procedure configuration:
Step......No........Cond Type........... From.........to..........Man.........Req........Sta................Acc Key
10........0..............ZR00..................--..........--..........-...........-........---.................ZDU
20........0..............ZWST..................10............19...........----.............X............X...................
30........0.............text.......................10...........29...........---...........----.........X
40........0.............Z007.....................30...........39...........-----.............X............X
50........0..............text.....................30............49...........---...........-----.........X
60........0............ZSET.....................10...........19...........----............X............--.................ZDU
70........0............ZDUM....................50...........59...........----............X............---...............ERL
80........0............Y007.....................40...........49...........----.............X...........---...............ERS
90.......0..............YWST..................20...........29...........-----............X...........---................ZWS
ZDU - dummy account key for posting extra not required items.
ERL - account key for price
ERS - account key for discount
ZWS - account key for tax.
3. Condition records in VK11
Condition type----
Condition record.......
ZR00........................................1012.5.....................INR will be positive
ZSET.......................................100%...............................will be negative
ZWST.......................................10%................................will be negative
Z007.........................................12.5%.............................will be positive
ZDUM.......................................100%..............................will be positive
Y007.........................................100%.............................will be negative
YWST.......................................100%.............................will be negative
Condition records for Z007 & ZWST will be decided as per the conversion required. You will first have to manually calculate the amount for the condition type.
4. I create a sales order for single quantity for an item & the pricing will be as under:
ZR00 = 1012.5 (dummy account) - positive
ZSET = 1012.5- (dummy account) - negative will knock off effect of ZR00
ZWST = 112.5- (negative & no posting)
Z007 = 100 (positive & no posting)
ZDUM = 1012.5 (positive & posting)
Y007 = 100-(negative & posting)
YWST = 112.5 (positive & posting)
If still your scenario is not getting mapped then you can go to your ABAPer and he will develop a alternate base value formula to correct the calculations
Regards
Raja
Maybe you are looking for
-
How do I transfer an itunes card from an old apple id to my new apple id?
I recently had to update my apple id and password because I no longer have that account. I had an itunes card on the old apple id and after changing my id it's not there anymore...can I transfer this? Does this also affect my purchases?
-
Pacman -Syu -- error: failed to commit transaction (conflicting files)
Hi! I'm upgrading my system after a lot of time, but I have this error: sudo pacman -Syu [sudo] password for elrengo: :: Synchronizing package databases... core 121,3 KiB 90,8K/s 00:01 [################################################################
-
R60 shouts at me when pressing [ctrl+alt+backspace] in openSUSE
Whenever I try to restart the X server in openSUSE 11.3, as I like to do with the [ctrl+alt+backspace]-shortcut, I just get a loud *beep* from the onboard speaker and nothing happens. I tried booting into Windows and pressing the key combination, sam
-
I downloaded Quicktime 7 (latest version I believe) straight from the Apple website (http://www.apple.com/quicktime/download/), installed it with no problems, and whenever I try to run the .exe I would get this error: "Quicktime player has encountere
-
Which DVD format plays on all domestic DVD players?
Hi guys As a Mac user for many years, I've had issues in the past deciding if I should burn to DVD-R or DVD+R formats. In my experience (Wedding videography), I opted for DVD-R because of it's wider compatibility (as it seemed at the time) with domes