diff --git a/api/lib/prices.py b/api/lib/prices.py index 5f8c1ed..67f5e1e 100644 --- a/api/lib/prices.py +++ b/api/lib/prices.py @@ -106,9 +106,6 @@ def canvas_price(width, height, market, framed=True, designer=None, reseller=Non price *= market.price_adjustments - # Package price should be added after market price adjustment but before other price adjustments. - price += package_price('canvas', width, height, market) - if designer: price *= (float(designer.pricepremium) / 100) + 1 @@ -118,6 +115,8 @@ def canvas_price(width, height, market, framed=True, designer=None, reseller=Non if inquiry: price *= (float(inquiry.pricepremium) / 100) + 1 + price += package_price('canvas', width, height, market) + price *= market.exchange_rate if inc_vat: @@ -139,12 +138,11 @@ def canvas_frame_price(width, height, market, reseller=None, rounded=True, inc_v price *= market.price_adjustments - # Package price should be added after market price adjustment but before other price adjustments. - price += package_price('canvas', width, height, market) - if reseller: price *= (float(reseller.pricepremium) / 100) + 1 + price += package_price('canvas', width, height, market) + price *= market.exchange_rate if inc_vat: @@ -193,9 +191,6 @@ def poster_price(width, height, market, hanger=True, designer=None, reseller=Non price *= market.price_adjustments - # Package price should be added after market price adjustment but before other price adjustments. - price += package_price('poster', width, height, market) - if designer: price *= (float(designer.pricepremium) / 100) + 1 @@ -205,6 +200,8 @@ def poster_price(width, height, market, hanger=True, designer=None, reseller=Non if inquiry: price *= (float(inquiry.pricepremium) / 100) + 1 + price += package_price('poster', width, height, market) + price *= market.exchange_rate if inc_vat: @@ -223,12 +220,11 @@ def poster_hanger_price(width, market, reseller=None, rounded=True, inc_vat=True price *= market.price_adjustments - # Package price should be added after market price adjustment but before other price adjustments. - price += package_price('poster', width, 10, market) # we assume the poster hanger has a height of 10cm here - if reseller: price *= (float(reseller.pricepremium) / 100) + 1 + price += package_price('poster', width, 10, market) # we assume the poster hanger has a height of 10cm here + price *= market.exchange_rate if inc_vat: diff --git a/tests/lib/test_prices.py b/tests/lib/test_prices.py index a52b2b7..2811ce9 100644 --- a/tests/lib/test_prices.py +++ b/tests/lib/test_prices.py @@ -147,6 +147,8 @@ class TestPrice(unittest2.TestCase): self.assertEqual(462, canvas_price(width=50, height=50, market=denmark, framed=True, inc_vat=False)) + self.assertEqual(256, canvas_price(width=150, height=100, market=us, designer=designer_moomin, inc_vat=False)) + def test_canvas_frame_price(self): self.assertEqual(624, canvas_frame_price( width=100, height=100, market=sweden, inc_vat=False)) @@ -269,6 +271,7 @@ class TestPrice(unittest2.TestCase): self.assertEqual(168, poster_price(width=30, height=40, hanger=False, market=sweden)) self.assertEqual(77, poster_price(width=30, height=40, hanger=True, market=us), 'extra cost for us/global market') self.assertEqual(188, poster_price(width=120, height=40, market=us), 'high extra cost for us/global market wide posters') + self.assertEqual(189, poster_price(width=120, height=40, market=us, designer=designer_moomin)) def test_poster_hanger_price(self): self.assertEqual(182, poster_hanger_price(30, market=sweden))