Commit a7b8f7da authored by Nicolas Wavrant's avatar Nicolas Wavrant

erp5_base: minimum bound of quantity_step_list should be 0

we don't support negative quantity (it is better represented by an
inversion of source and destination), and this allows better support of
the smallest slice in ERP5, more especially in SupplyLine_asCellRange,
where the title of the cell is computed with the min and max being None
or not.
parent 7d20dd79
......@@ -201,7 +201,7 @@ class SupplyLine(Path, Amount, XMLMatrix):
unused_predicate_id_set = self.getQuantityPredicateIdList(price_parameter)
if quantity_step_list:
quantity_step_list.sort()
quantity_step_list = [None] + quantity_step_list + [None]
quantity_step_list = [0] + quantity_step_list + [None]
getTitle = getattr(
self,
'SupplyLine_getTitle',
......
......@@ -29,7 +29,7 @@ if result["slice_base_price"]:
slice_min, slice_max = slice_range
if slice_max is None:
slice_max = quantity + 1
if slice_min is None:
if slice_min == 0:
slice_min = 1
priced_quantity = min(slice_max - 1, quantity) - (slice_min - 1)
total_price += priced_quantity * slice_price
......
......@@ -7,7 +7,7 @@ if not quantity_criterion_list:
quantity_criterion, = quantity_criterion_list
supply_line_value = context.getParentValue()
if supply_line_value.isBasePricePerSlice():
quantity_step_list = [None] + supply_line_value.getQuantityStepList(base_id='path') + [None]
quantity_step_list = [0] + supply_line_value.getQuantityStepList(base_id='path') + [None]
try:
index = quantity_step_list.index(quantity_criterion.min)
except ValueError:
......
......@@ -39,7 +39,7 @@ Test toggling price per slice updates internal supply cells correctly
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td>
<td>0 &lt;= Quantity &lt; 11.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -36,7 +36,7 @@ Test quantity steps for price on internal supply line
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 10.0</td>
<td>0 &lt;= Quantity &lt; 10.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -39,7 +39,7 @@ Test toggling price per slice updates purchase supply cells correctly
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td>
<td>0 &lt;= Quantity &lt; 11.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -36,7 +36,7 @@ Test quantity steps for price on purchase supply line
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 10.0</td>
<td>0 &lt;= Quantity &lt; 10.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -39,7 +39,7 @@ Test toggling price per slice updates sale supply cells correctly
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td>
<td>0 &lt;= Quantity &lt; 11.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -36,7 +36,7 @@ Test quantity steps for price on sale supply line
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 10.0</td>
<td>0 &lt;= Quantity &lt; 10.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -1266,10 +1266,10 @@ class TestResource(ERP5TypeTestCase):
portal_type=self.sale_supply_cell_portal_type,
id='path_0',
slice_base_price=10.,
slice_quantity_range=(1, 11),
slice_quantity_range=(0, 11),
)
cell0.setCriterionPropertyList(('quantity', ))
cell0.setCriterion('quantity', min=1, max=None)
cell0.setCriterion('quantity', min=0, max=None)
cell0.setMappedValuePropertyList(
["slice_base_price", "slice_quantity_range", "base_price", "base_unit_price"]
)
......
......@@ -101,7 +101,7 @@ Test quantity steps for price on internal supply line
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td>
<td>0 &lt;= Quantity &lt; 11.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -101,7 +101,7 @@ Test quantity steps for price on purchase supply line
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td>
<td>0 &lt;= Quantity &lt; 11.0</td>
</tr>
<tr>
<td>assertText</td>
......
......@@ -100,7 +100,7 @@ Test quantity steps for price on sale supply line
<tr>
<td>assertText</td>
<td>//input[@name="field_matrixbox_base_price_cell_0_0_0"]/../../../td[1]</td>
<td>Quantity &lt; 11.0</td>
<td>0 &lt;= Quantity &lt; 11.0</td>
</tr>
<tr>
<td>assertText</td>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment