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