cancel
Showing results for 
Search instead for 
Did you mean: 

Purchasing Rebates Condition Contract/Settlement Setup Question.

RiaChase
Discoverer
0 Kudos
149

Hello Experts,

Can you please help with a scenario that I am trying to setup with condition contract.

1% rebate for $1000 USD

2% rebates for $2000 USD

3% rebates for $3000 USD. 

Example : if the purchase was $1050, then we should receive rebates as 1% for $1000 ($10) and 2% for $50($1). So a total rebate of $51.

I have looked at different scale types but nothing seems to work. Any guidance is great appreciated.

Thank you,

Ria.

OlivierLeroux
Explorer
0 Kudos

Hi RiaChase,

I implemented that it is not so complex, hardest part being the maths behind.

create a new condition type (copy RES1)

create a scale routine (VOFM, Formula - scale base) and assign it to your newly created condition. 

OlivierLeroux_0-1729676212246.png

Do the maths in the routine. Check in debug how it works.

Then, my requirement was to apply the scale on header level, but see the value on item level (for printing), with real percentage applied. 

So I adapted my routine as follow:

  • Calculate the amount that corresponds to the scale defined by the user (table KONW) 

basic idea of coding lies in that formula:           

 

a

b

c

d

1

 

1 

2 

3 

2

 

100 

200 

 

3

 

10% 

20% 

0% 

4

291.86 

10 

20 

 

 

 

 

=MIN(C2-B2;$A4)*C3 

 

    So I loop down KONW to calculate global amount with thqat idea :

 

SELECT * FROM konw WHERE knumh = tkomv-knumh ORDER BY klfn1 ASCENDING.
    lv_curscale = ( konw-kstbw - lv_startscale ).
    IF lv_curscale <= lv_GKOMV_KAWRT .
      lv_value = lv_value + lv_curscale * konw-kbetr .
      lv_GKOMV_KAWRT = lv_GKOMV_KAWRT - lv_curscale.
      lv_startscale = lv_startscale + konw-kstbw.
    ELSE.
      lv_value = lv_value + lv_GKOMV_KAWRT * konw-kbetr .
      EXIT.
    ENDIF.

  ENDSELECT.

  lv_calculated_percentage = lv_value / gkomv-kawrt.

 



  • From that amount it defines the percentage to be applied at condition level:  

Amount found at first step / total business volume of document (GKOMV-KAWRT) 

So here, you give back 30€ for 291.86, a bit more than 10% for   lv_calculated_percentage , that I set up as KBETR at condition level to fullfill business requirement. Again, it is just how I did it, showing it works and is not that complex. Not a global solution.

 

It works fine, is implemented in productive system.

Hope it helps,

Regards, Olivier

 

View Entire Topic
thorsten_kraemer
Product and Topic Expert
Product and Topic Expert

Hello Ria, 

graduated scales are not supported in Settlement Management. You have to develop your own pricing routine.

 2598234 - Graduate Scales are not supported for settlement dicuments 

 2678613 - Using Graduated-to interval scales in Condition Contracts 

Regards,

Thorsten

RiaChase
Discoverer
0 Kudos
Hello Thorsten! Thank you. Is graduate scale/ own pricing routine only the option. Doesn't this requirement seem to be quite standard? Either way, thank you for taking the time to respond. I appreciate your assistance.