From 56b4b95e233bfe6d9049302fd8cbd0074f9bd796 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com>
Date: Thu, 18 May 2017 15:11:52 +0200
Subject: [PATCH] erp5_item: Update quantity unconditionally

Since Movement_isQuantityEditable does not say anything about Item related
movements, there is no reason to use any condition while updating
quantities.
---
 .../DeliveryLine_createItemList.py            | 32 ++++++++--------
 .../DeliveryLine_selectItemList.py            | 38 +++++++++----------
 2 files changed, 33 insertions(+), 37 deletions(-)

diff --git a/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_createItemList.py b/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_createItemList.py
index 26bb5b7dc1..2d02b36996 100644
--- a/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_createItemList.py
+++ b/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_createItemList.py
@@ -80,23 +80,21 @@ for line in kw.get('listbox'):
         movement_to_update.getAggregateValueList() + [item])
 
 
-update_quantity = not context.Movement_isQuantityEditable()
-if update_quantity:
-  if context.isMovement():
-    movement_list = context,
-  else:
-    movement_list = context.getCellValueList(base_id='movement')
-  for movement in movement_list:
-    quantity = 0
-    item_list = movement.getAggregateValueList()
-    for item in item_list:
-      if item.getQuantityUnit() != movement.getQuantityUnit():
-        if len(item_list) > 1:
-          raise NotImplementedError(
-            'Quantity unit from the movement differs from quantity'
-            ' unit on the item')
-      quantity += item.getQuantity(at_date=DateTime())
-    movement.setQuantity(quantity)
+if context.isMovement():
+  movement_list = context,
+else:
+  movement_list = context.getCellValueList(base_id='movement')
+for movement in movement_list:
+  quantity = 0
+  item_list = movement.getAggregateValueList()
+  for item in item_list:
+    if item.getQuantityUnit() != movement.getQuantityUnit():
+      if len(item_list) > 1:
+        raise NotImplementedError(
+          'Quantity unit from the movement differs from quantity'
+          ' unit on the item')
+    quantity += item.getQuantity(at_date=DateTime())
+  movement.setQuantity(quantity)
 
 return context.Base_redirect(form_id, keep_items=dict(
       portal_status_message=translateString('Items created')))
diff --git a/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_selectItemList.py b/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_selectItemList.py
index 479d5d318a..e1045fe06b 100644
--- a/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_selectItemList.py
+++ b/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item_trade/DeliveryLine_selectItemList.py
@@ -92,25 +92,23 @@ for item_uid in uids:
   movement_to_update.setAggregateValueSet(
       movement_to_update.getAggregateValueList() + [item])
 
-update_quantity = not context.Movement_isQuantityEditable()
-if update_quantity:
-  if context.isMovement():
-    movement_list = context,
-  else:
-    movement_list = context.getCellValueList(base_id='movement')
-  for movement in movement_list:
-    quantity = 0
-    item_list = movement.getAggregateValueList()
-    for item in item_list:
-      if item.getQuantityUnit() != movement.getQuantityUnit():
-        if len(item_list) > 1:
-          raise NotImplementedError(
-            'Quantity unit from the movement differs from quantity'
-            ' unit on the item')
-        else:
-          movement.setQuantityUnit(item.getQuantityUnit())
-      quantity += item.getQuantity()
-    movement.setQuantity(quantity)
-  
+if context.isMovement():
+  movement_list = context,
+else:
+  movement_list = context.getCellValueList(base_id='movement')
+for movement in movement_list:
+  quantity = 0
+  item_list = movement.getAggregateValueList()
+  for item in item_list:
+    if item.getQuantityUnit() != movement.getQuantityUnit():
+      if len(item_list) > 1:
+        raise NotImplementedError(
+          'Quantity unit from the movement differs from quantity'
+          ' unit on the item')
+      else:
+        movement.setQuantityUnit(item.getQuantityUnit())
+    quantity += item.getQuantity()
+  movement.setQuantity(quantity)
+
 return context.Base_redirect(form_id, keep_items=dict(
        portal_status_message=translateString('Items aggregated')))
-- 
2.30.9