From da1633125fef9995bc9917693807ffb07054be15 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Tue, 12 Jul 2022 18:10:54 +0000 Subject: [PATCH] Bug 14680: Always subtract discount from price to calculate estimated cost This patch simply removes a discrepancty where when a discount is provided on the order form we add the discount to the price, and when it comes form the vendor we subtract the discount. Discounts should always descrease the estimated cost To test: 0 - Have a vendor with a discount of 10% specified 1 - Export a record from your Koha 2 - Stage the record for import and match on biblionumber 3 - Add to a basket in acq from the staged file 4 - Select the title, and set order price to $10 and do not fill the discount field 5 - Add the order - note $10 RRP and $9 actual/budgeted cost 6 - Repeat 2&3 7 - Select the tile, set price $10 and discount 50% 8 - Add the order - note $20 RRP and $10 actual/budgeted cost! FAIL 9 - Apply patch, restart all 10 - Repeat 2-7 11 - Add the order, note $10 RRP and $5 actual.budgeted cost Signed-off-by: Kelly McElligott Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 7c734c6903a823eeb58be9ab1c4af251def776b7) Signed-off-by: Lucas Gass (cherry picked from commit 96eed0f5e00657808e506ba6d5e0a98a3529bf95) Signed-off-by: Arthur Suzuki --- acqui/addorderiso2709.pl | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/acqui/addorderiso2709.pl b/acqui/addorderiso2709.pl index 63cfb2afee..be4fffb1e1 100755 --- a/acqui/addorderiso2709.pl +++ b/acqui/addorderiso2709.pl @@ -278,11 +278,8 @@ if ($op eq ""){ $orderinfo{tax_rate} = $bookseller->tax_rate; my $c = $c_discount ? $c_discount : $bookseller->discount / 100; $orderinfo{discount} = $c; - if ( $c_discount ) { - $orderinfo{ecost} = $price; - $orderinfo{rrp} = $orderinfo{ecost} / ( 1 - $c ); - } else { - $orderinfo{ecost} = $price * ( 1 - $c ); + if ( $c ) { + $orderinfo{ecost} = $price * ( 1 - $c / 100 ); $orderinfo{rrp} = $price; } $orderinfo{listprice} = $orderinfo{rrp} / $active_currency->rate; @@ -339,11 +336,8 @@ if ($op eq ""){ $orderinfo{tax_rate} = $bookseller->tax_rate; my $c = $c_discount ? $c_discount : $bookseller->discount / 100; $orderinfo{discount} = $c; - if ( $c_discount ) { - $orderinfo{ecost} = $c_price; - $orderinfo{rrp} = $orderinfo{ecost} / ( 1 - $c ); - } else { - $orderinfo{ecost} = $c_price * ( 1 - $c ); + if ( $c ) { + $orderinfo{ecost} = $c_price * ( 1 - $c / 100 ); $orderinfo{rrp} = $c_price; } $orderinfo{listprice} = $orderinfo{rrp} / $active_currency->rate; -- 2.39.5