@@ -51,8 +51,8 @@ def setUpClass(cls):
5151
5252 def test_01_sale_order_classic_discount (self ):
5353 """Tests with single discount"""
54- self .so_line1 .discount = 50.0
55- self .so_line2 .discount = 75.0
54+ self .so_line1 .discount1 = 50.0
55+ self .so_line2 .discount1 = 75.0
5656 self .assertAlmostEqual (self .so_line1 .price_subtotal , 300.0 )
5757 self .assertAlmostEqual (self .so_line2 .price_subtotal , 150.0 )
5858 self .assertAlmostEqual (self .order .amount_untaxed , 450.0 )
@@ -65,19 +65,22 @@ def test_02_sale_order_simple_triple_discount(self):
6565 """Tests on a single line"""
6666 self .so_line2 .unlink ()
6767 # Divide by two on every discount:
68- self .so_line1 .discount = 50.0
68+ self .so_line1 .discount1 = 50.0
6969 self .so_line1 .discount2 = 50.0
7070 self .so_line1 .discount3 = 50.0
71+ self .assertAlmostEqual (self .so_line1 .discount , 87.5 )
7172 self .assertAlmostEqual (self .so_line1 .price_subtotal , 75.0 )
7273 self .assertAlmostEqual (self .order .amount_untaxed , 75.0 )
7374 self .assertAlmostEqual (self .order .amount_tax , 11.25 )
7475 # Unset first discount:
75- self .so_line1 .discount = 0.0
76+ self .so_line1 .discount1 = 0.0
77+ self .assertAlmostEqual (self .so_line1 .discount , 75 )
7678 self .assertAlmostEqual (self .so_line1 .price_subtotal , 150.0 )
7779 self .assertAlmostEqual (self .order .amount_untaxed , 150.0 )
7880 self .assertAlmostEqual (self .order .amount_tax , 22.5 )
7981 # Set a charge instead:
8082 self .so_line1 .discount2 = - 50.0
83+ self .assertAlmostEqual (self .so_line1 .discount , 25 )
8184 self .assertAlmostEqual (self .so_line1 .price_subtotal , 450.0 )
8285 self .assertAlmostEqual (self .order .amount_untaxed , 450.0 )
8386 self .assertAlmostEqual (self .order .amount_tax , 67.5 )
@@ -88,10 +91,11 @@ def test_02_sale_order_simple_triple_discount(self):
8891 67.5 ,
8992 )
9093 # set discount_type to additive
91- self .so_line1 .discount = 10.0
94+ self .so_line1 .discount1 = 10.0
9295 self .so_line1 .discount2 = 10.0
9396 self .so_line1 .discount3 = 10.0
9497 self .so_line1 .discounting_type = "additive"
98+ self .assertAlmostEqual (self .so_line1 .discount , 30.0 )
9599 self .assertAlmostEqual (self .so_line1 .price_subtotal , 420.0 )
96100 self .assertAlmostEqual (self .order .amount_untaxed , 420.0 )
97101 self .assertAlmostEqual (self .order .amount_tax , 63.0 )
@@ -102,47 +106,54 @@ def test_02_sale_order_simple_triple_discount(self):
102106 63.0 ,
103107 )
104108 # set discount over 100%
105- self .so_line1 .discount = 30.0
109+ self .so_line1 .discount1 = 30.0
106110 self .so_line1 .discount2 = 70.0
107111 self .so_line1 .discount3 = 50.0
112+ self .assertAlmostEqual (self .so_line1 .discount , 100.0 )
108113 self .assertAlmostEqual (self .so_line1 .price_subtotal , 0.0 )
109114 self .assertAlmostEqual (self .order .amount_untaxed , 0.0 )
110115 self .assertAlmostEqual (self .order .amount_tax , 0.0 )
111116 # set discount_type to multiplicative
112- self .so_line1 .discount = 50.0
117+ self .so_line1 .discount1 = 50.0
113118 self .so_line1 .discount2 = 50.0
114119 self .so_line1 .discount3 = 50.0
115120 self .so_line1 .discounting_type = "multiplicative"
121+ self .assertAlmostEqual (self .so_line1 .discount , 87.5 )
116122 self .assertAlmostEqual (self .so_line1 .price_subtotal , 75.0 )
117123 self .assertAlmostEqual (self .order .amount_untaxed , 75.0 )
118124 self .assertAlmostEqual (self .order .amount_tax , 11.25 )
119125
120126 def test_03_sale_order_complex_triple_discount (self ):
121127 """Tests on multiple lines"""
122- self .so_line1 .discount = 50.0
128+ self .so_line1 .discount1 = 50.0
123129 self .so_line1 .discount2 = 50.0
124130 self .so_line1 .discount3 = 50.0
131+ self .assertAlmostEqual (self .so_line1 .discount , 87.5 )
125132 self .assertAlmostEqual (self .so_line1 .price_subtotal , 75.0 )
126133 self .assertAlmostEqual (self .order .amount_untaxed , 675.0 )
127134 self .assertAlmostEqual (self .order .amount_tax , 101.25 )
128135 # additive discount
129136 self .so_line2 .discount3 = 50.0
137+ self .assertAlmostEqual (self .so_line2 .discount , 50.0 )
130138 self .assertAlmostEqual (self .so_line2 .price_subtotal , 300.0 )
131139 self .assertAlmostEqual (self .order .amount_untaxed , 375.0 )
132140 self .assertAlmostEqual (self .order .amount_tax , 56.25 )
133141 self .so_line2 .discounting_type = "additive"
134142 self .so_line2 .discount2 = 10.0
143+ self .assertAlmostEqual (self .so_line2 .discount , 60.0 )
135144 self .assertAlmostEqual (self .so_line2 .price_subtotal , 240.0 )
136145 self .assertAlmostEqual (self .order .amount_untaxed , 315.0 )
137146 self .assertAlmostEqual (self .order .amount_tax , 47.25 )
138147 # multiplicative discount
139148 self .so_line2 .discount2 = 0.0
140149 self .so_line2 .discount3 = 50.0
150+ self .assertAlmostEqual (self .so_line2 .discount , 50.0 )
141151 self .assertAlmostEqual (self .so_line2 .price_subtotal , 300.0 )
142152 self .assertAlmostEqual (self .order .amount_untaxed , 375.0 )
143153 self .assertAlmostEqual (self .order .amount_tax , 56.25 )
144154 self .so_line2 .discounting_type = "multiplicative"
145155 self .so_line2 .discount2 = 10.0
156+ self .assertAlmostEqual (self .so_line1 .discount , 60.0 )
146157 self .assertAlmostEqual (self .so_line2 .price_subtotal , 270.0 )
147158 self .assertAlmostEqual (self .order .amount_untaxed , 345.0 )
148159 self .assertAlmostEqual (self .order .amount_tax , 51.75 )
@@ -155,6 +166,7 @@ def test_04_sale_order_triple_discount_invoicing(self):
155166 self .so_line1 .discount3 = 50.0
156167 self .so_line2 .discount3 = 50.0
157168 self .order .action_confirm ()
169+ # FIXME: AFAIK this is another module messing and shouldn't be in this test
158170 if self .order .state == "waiting_approval" :
159171 self .order .action_approve ()
160172 self .assertAlmostEqual (self .order .state , "approved" )
@@ -164,6 +176,9 @@ def test_04_sale_order_triple_discount_invoicing(self):
164176 self .assertAlmostEqual (
165177 self .so_line1 .discount , invoice .invoice_line_ids [0 ].discount
166178 )
179+ self .assertAlmostEqual (
180+ self .so_line1 .discount1 , invoice .invoice_line_ids [0 ].discount1
181+ )
167182 self .assertAlmostEqual (
168183 self .so_line1 .discount2 , invoice .invoice_line_ids [0 ].discount2
169184 )
@@ -173,6 +188,9 @@ def test_04_sale_order_triple_discount_invoicing(self):
173188 self .assertAlmostEqual (
174189 self .so_line1 .price_subtotal , invoice .invoice_line_ids [0 ].price_subtotal
175190 )
191+ self .assertAlmostEqual (
192+ self .so_line2 .discount , invoice .invoice_line_ids [1 ].discount
193+ )
176194 self .assertAlmostEqual (
177195 self .so_line2 .discount3 , invoice .invoice_line_ids [1 ].discount3
178196 )
@@ -184,7 +202,7 @@ def test_04_sale_order_triple_discount_invoicing(self):
184202 def test_05_round_globally (self ):
185203 """Tests on multiple lines when 'round_globally' is active"""
186204 self .env .user .company_id .tax_calculation_rounding_method = "round_globally"
187- self .so_line1 .discount = 50.0
205+ self .so_line1 .discount1 = 50.0
188206 self .so_line1 .discount2 = 50.0
189207 self .so_line1 .discount3 = 50.0
190208 self .assertEqual (self .so_line1 .price_subtotal , 75.0 )
@@ -197,11 +215,11 @@ def test_05_round_globally(self):
197215
198216 def test_06_discount_0 (self ):
199217 self .so_line1 .discounting_type = "additive"
200- self .so_line1 .discount = 0.0
218+ self .so_line1 .discount1 = 0.0
201219 self .so_line1 .discount2 = 0.0
202220 self .so_line1 .discount3 = 0.0
203221 self .so_line2 .discounting_type = "additive"
204- self .so_line2 .discount = 0.0
222+ self .so_line2 .discount1 = 0.0
205223 self .so_line2 .discount2 = 0.0
206224 self .so_line2 .discount3 = 0.0
207225 self .assertAlmostEqual (self .so_line1 .price_subtotal , 600.0 )
0 commit comments