cancel
Showing results for 
Search instead for 
Did you mean: 

Rounding at Item Level

Former Member
0 Kudos

Hi SD expert,

<b>1st Issue: Price different in Billing compare to manual calculation</b>

Scenario:

Billing items quantity based on batch item quantity which client complaint manual calculation is different in billing. For example:

<u>Price Manual calculation</u>

1 unit = USD 625.00

Total unit = 2,024.150, hence equally to = USD 1,265,093.75

<u>In Billing (Calculation is based on each batch item quantity)</u>

Item 0010: 1.527 unit x USD 625 = USD 954.38 (Manual calculation 954.375)

Item 0010: 1.529 unit x USD 625 = USD 955.63 (Manual calculation 955.625)

Note: *Round up due to commercial rounding in condition type

Hence some total price in billing is HIGHER than the manual calculation which the manual price has promised to customer before issue billing.

<b>2nd Issue (10% tax)</b>

Tax value is accumulated based on batch item calculation. Hence sometime tax is higher than 10% of the net value. It was also due to rounding at batch item level.

Any suggestion in solving the problem, what I want is:

Price = 1,265.093.75

Tax (10%) = 126,509.38

Regards.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Ask an abaper to modify the coding as per your requirement for rounding at Item level:

-


Include RV64A601

  • rounding rule for closest interger value

FORM FRM_KONDI_WERT_601.

  • data: da_xkwerx(15).

  • unpack xkwert to da_xkwerx.

*

  • move '00' to da_xkwerx+13.

*

*

*

  • pack da_xkwerx to xkwert.

data : lgort1 like lips-lgort .

data : d1(13) , d6(13) .

data : d2 type p decimals 2 .

data : d3 type p decimals 0 .

data : d4 type p decimals 2 .

data d5(2) .

data : d8(3) .

unpack xkwert to d1 .

d2 = d1 .

d3 = d2 .

unpack d3 to d6.

d5 = d6+11(2) .

if d5 >= 50 .

d8 = 100 - d5 .

d1 = d6 + d8 .

else .

d1 = d6 - d5 .

endif .

*pack d1 to xkwert .

select single lgort into lgort1 from lips where

vbeln = komp-vgbel and

posnr = komp-vgpos .

IF SY-SUBRC = 0 .

if lgort1 = 'JSTO'.

d1 = 0 .

pack d1 to xkwert.

else .

pack d1 to xkwert.

endif .

ELSE .

pack d1 to xkwert.

ENDIF .

-


Regards,

Rajesh banka

Reward suitable points

Answers (2)

Answers (2)

Former Member
0 Kudos

NA

Former Member
0 Kudos

Hi All,

even I have same issue with Invoice and we fixed the issue by implementing OSS note 80183 but we have new customer for whom one pricing condition is per 1000 basis rather than per 1 unit. Due to this new pricing we are having this rounding issue. Could you please let me know how this issue can fixed. As per Rajesh I tired to find Include program RV64A601in SAP but system there is no program like.

I appreciate your helpful response.

Thanks in Advance.

Prasad

Former Member
0 Kudos

Hi there,

Could explain the functionality of the codes with example.

Appreciate your reply

Regards