P5-3918 lower price for large canvases and posters on US and GLOBAL

This commit is contained in:
Martin
2019-05-21 09:40:53 +02:00
parent e9f0f465ba
commit e7d25ac41e
2 changed files with 23 additions and 14 deletions
+3 -3
View File
@@ -83,12 +83,12 @@ def canvas_cm2_price(cm2):
def package_price(product_group, width, height, market): def package_price(product_group, width, height, market):
if market.territory in ['US', 'EU']: if market.territory in ['US', 'EU']:
if product_group == 'canvas' and max(width, height) > 119: if product_group == 'canvas' and max(width, height) > 119:
return 800 return 100
elif product_group == 'poster': elif product_group == 'poster':
if width > 110: if width > 110:
return 1100
else:
return 400 return 400
else:
return 250
return 0 return 0
+20 -11
View File
@@ -26,6 +26,10 @@ nl = market.from_territory('NL')
nl.price_adjustments = 1.15 nl.price_adjustments = 1.15
nl.exchange_rate = 0.100000 nl.exchange_rate = 0.100000
eu = market.from_territory('EU')
eu.price_adjustments = 1.13
eu.exchange_rate = 0.100000
russia = market.from_territory('RU') russia = market.from_territory('RU')
russia.price_adjustments = 1 russia.price_adjustments = 1
russia.exchange_rate = 0.100000 # russia uses EUR russia.exchange_rate = 0.100000 # russia uses EUR
@@ -135,7 +139,7 @@ class TestPrice(unittest2.TestCase):
self.assertEqual(1800, canvas_price(width=150, height=150, self.assertEqual(1800, canvas_price(width=150, height=150,
market=sweden, framed=True, inc_vat=True)) market=sweden, framed=True, inc_vat=True))
self.assertEqual(279, canvas_price(width=150, height=150, self.assertEqual(195, canvas_price(width=150, height=150,
market=us, framed=True, inc_vat=True)) market=us, framed=True, inc_vat=True))
self.assertEqual(672, canvas_price( self.assertEqual(672, canvas_price(
@@ -147,7 +151,10 @@ class TestPrice(unittest2.TestCase):
self.assertEqual(462, canvas_price(width=50, height=50, self.assertEqual(462, canvas_price(width=50, height=50,
market=denmark, framed=True, inc_vat=False)) market=denmark, framed=True, inc_vat=False))
self.assertEqual(257, canvas_price(width=150, height=100, market=us, designer=designer_moomin, inc_vat=False)) self.assertEqual(174, canvas_price(width=150, height=100, market=us, designer=designer_moomin, inc_vat=False))
self.assertEqual(174, canvas_price(width=150, height=100, market=us, designer=designer_moomin, inc_vat=True))
self.assertEqual(154, canvas_price(width=150, height=100, market=eu, designer=designer_moomin, inc_vat=False))
self.assertEqual(192, canvas_price(width=150, height=100, market=eu, designer=designer_moomin, inc_vat=True))
def test_canvas_frame_price(self): def test_canvas_frame_price(self):
self.assertEqual(624, canvas_frame_price( self.assertEqual(624, canvas_frame_price(
@@ -162,7 +169,7 @@ class TestPrice(unittest2.TestCase):
1, 1, market=sweden, inc_vat=False)) 1, 1, market=sweden, inc_vat=False))
self.assertEqual(277, canvas_frame_price( self.assertEqual(277, canvas_frame_price(
width=40, height=40, market=sweden, inc_vat=True)) width=40, height=40, market=sweden, inc_vat=True))
self.assertEqual(155, canvas_frame_price( self.assertEqual(71, canvas_frame_price(
width=40, height=120, market=us)) width=40, height=120, market=us))
self.assertEqual(54, canvas_frame_price( self.assertEqual(54, canvas_frame_price(
width=40, height=100, market=us)) width=40, height=100, market=us))
@@ -253,10 +260,10 @@ class TestPrice(unittest2.TestCase):
self.assertEqual(91, inquiry_price(inquiry, framed=False)) self.assertEqual(91, inquiry_price(inquiry, framed=False))
def test_package_price(self): def test_package_price(self):
self.assertEqual(800, package_price('canvas', 150, 40, market=us)) self.assertEqual(100, package_price('canvas', 150, 40, market=us))
self.assertEqual(0, package_price('canvas', 150, 40, market=sweden)) self.assertEqual(0, package_price('canvas', 150, 40, market=sweden))
self.assertEqual(1100, package_price('poster', 150, 40, market=us)) self.assertEqual(400, package_price('poster', 150, 40, market=us))
self.assertEqual(400, package_price('poster', 40, 40, market=us)) self.assertEqual(250, package_price('poster', 40, 40, market=us))
self.assertEqual(0, package_price('poster', 150, 40, market=sweden)) self.assertEqual(0, package_price('poster', 150, 40, market=sweden))
def test_poster_cm2_price(self): def test_poster_cm2_price(self):
@@ -269,15 +276,17 @@ class TestPrice(unittest2.TestCase):
def test_poster_price(self): def test_poster_price(self):
self.assertEqual(287, poster_price(width=30, height=40, hanger=True, market=sweden)) self.assertEqual(287, poster_price(width=30, height=40, hanger=True, market=sweden))
self.assertEqual(168, poster_price(width=30, height=40, hanger=False, market=sweden)) 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(59, poster_price(width=30, height=40, hanger=True, market=us), 'extra cost for us market')
self.assertEqual(189, poster_price(width=120, height=40, market=us), 'high extra cost for us/global market wide posters') self.assertEqual(64, poster_price(width=30, height=40, hanger=True, market=eu), 'extra cost for eu market')
self.assertEqual(190, poster_price(width=120, height=40, market=us, designer=designer_moomin)) self.assertEqual(105, poster_price(width=120, height=40, market=us), 'high extra cost for us market wide posters')
self.assertEqual(113, poster_price(width=120, height=40, market=eu), 'high extra cost for eu market wide posters')
self.assertEqual(106, poster_price(width=120, height=40, market=us, designer=designer_moomin))
def test_poster_hanger_price(self): def test_poster_hanger_price(self):
self.assertEqual(182, poster_hanger_price(30, market=sweden)) self.assertEqual(182, poster_hanger_price(30, market=sweden))
self.assertEqual(438, poster_hanger_price(150, market=sweden)) self.assertEqual(438, poster_hanger_price(150, market=sweden))
self.assertEqual(66, poster_hanger_price(30, market=us)) self.assertEqual(48, poster_hanger_price(30, market=us))
self.assertEqual(176, poster_hanger_price(150, market=us)) self.assertEqual(92, poster_hanger_price(150, market=us))
def test_poster_custom_inquiry_price(self): def test_poster_custom_inquiry_price(self):
with mock.patch.object(Inquiry, 'market', sweden): with mock.patch.object(Inquiry, 'market', sweden):