From f107f77ead6830744547aaf3370073146ae44889 Mon Sep 17 00:00:00 2001 From: Guillaume Michon <guillaume@nexedi.com> Date: Fri, 23 Sep 2005 08:20:18 +0000 Subject: [PATCH] Commented useless methods and fixed inventory behavior git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3831 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/InventoryCell.py | 410 ++++++++++++------------- product/ERP5/Document/InventoryLine.py | 308 +++++++++---------- 2 files changed, 352 insertions(+), 366 deletions(-) diff --git a/product/ERP5/Document/InventoryCell.py b/product/ERP5/Document/InventoryCell.py index 475fa8f741..ce6a080005 100755 --- a/product/ERP5/Document/InventoryCell.py +++ b/product/ERP5/Document/InventoryCell.py @@ -68,225 +68,213 @@ class InventoryCell(DeliveryCell): ) def _edit(self, REQUEST=None, force_update = 0, **kw): - kw = kw.copy() - item_id_list = kw.get('item_id_list', None) - if item_id_list is not None: del kw['item_id_list'] - produced_item_id_list = kw.get('produced_item_id_list', None) - if produced_item_id_list is not None: del kw['produced_item_id_list'] - consumed_item_id_list = kw.get('consumed_item_id_list', None) - if consumed_item_id_list is not None: del kw['consumed_item_id_list'] - DeliveryCell._edit(self, REQUEST=REQUEST, force_update = force_update, **kw) - # Update consumption last - if item_id_list is not None: - self._setItemIdList(item_id_list) - if produced_item_id_list is not None : - self._setProducedItemIdList(produced_item_id_list) - if consumed_item_id_list is not None : - self._setConsumedItemIdList(consumed_item_id_list) + DeliveryLine._edit(self, REQUEST=REQUEST, force_update = force_update, **kw) + # Calculate inventory + item_list = self.getAggregateValueList() + if len(item_list) > 0: + inventory = 0 + for item in item_list: + if item.getQuantity() not in (None, ''): + inventory += item.getQuantity() + self.setInventory(inventory) + - security.declareProtected(Permissions.AccessContentsInformation, 'getQuantity') - def getQuantity(self): - """ - Computes a quantity which allows to reach inventory - - Bug fix method for Coramy purpose - Coramy used production_quantity as property - list of mapped value which generated errors of stock. It can be safely removed in - the near future. - """ - aself = aq_base(self) - if hasattr(aself, 'production_quantity') or hasattr(aself, 'consumption_quantity'): - # Error - we must fix this - if getattr(aself, 'production_quantity', 0.0) > 0.0: - self.setProductionQuantity(aself.production_quantity) - elif getattr(aself, 'consumption_quantity', 0.0) > 0.0: - self.setConsumptionQuantity(aself.consumption_quantity) - if hasattr(aself, 'production_quantity'): - delattr(self, 'production_quantity') - if hasattr(aself, 'consumption_quantity'): - delattr(self, 'consumption_quantity') - if hasattr(self, 'mapped_value_property_list'): - if 'consumption_quantity' in self.mapped_value_property_list: - self.mapped_value_property_list = filter(lambda s: s != 'consumption_quantity' - , self.mapped_value_property_list) - if 'production_quantity' in self.mapped_value_property_list: - self.mapped_value_property_list = filter(lambda s: s != 'production_quantity' - , self.mapped_value_property_list) - if 'quantity' not in self.mapped_value_property_list: - self.mapped_value_property_list = list(self.mapped_value_property_list) + ['quantity'] - # First check if quantity already exists - quantity = self._baseGetQuantity() - if quantity not in (0.0, 0, None): - return quantity - # Make sure inventory is defined somewhere (here or parent) - if getattr(aq_base(self), 'inventory', None) is None: - return 0.0 # No inventory defined, so no quantity - # Find total of movements in the past - XXX - resource_value = self.getResourceValue() - if resource_value is not None: - # Inventories can only be done in "real" locations / sectinos, not categories thereof - # -> therefore we use node and section - current_inventory = resource_value.getInventory( \ - at_date = self.getStartDate() - , variation_text = self.getVariationText() - , node = self.getDestination() - , section_category = self.getDestinationSection() # We want to consolidate - , simulation_state = self.getPortalCurrentInventoryStateList() - ) - inventory = self.getInventory() - if current_inventory in (None, ''): - current_inventory = 0.0 - return self.getInventory() - current_inventory - return self.getInventory() - - security.declareProtected( Permissions.AccessContentsInformation, 'getInventory' ) - def getInventory(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getTotalInventory') + def getTotalInventory(self): """ - No acquisition for inventories: either defined or None + Returns the inventory if no cell or the total inventory if cells """ - if 'inventory' in self.getMappedValuePropertyList([]): - return getattr(aq_base(self), 'inventory', None) + if not self.hasCellContent(): + return self.getInventory() else: - return None # return None - - def _setItemIdList(self, value): - """ - Computes total_quantity of all given items and stores this total_quantity - in the inventory attribute of the cell - """ - if value is None: - return - previous_item_list = self.getAggregateValueList() - given_item_id_list = value - item_object_list = [] - for item in given_item_id_list: - item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") - if len(item_result_list) == 1: - try: - object = item_result_list[0].getObject() - except: - object = None - else: - object = None - if object is not None: - # if item was in previous_item_list keep it - if object in previous_item_list: - # we can add this item to the list of aggregated items - item_object_list.append(object) - # if new item verify if variated_resource of item == variated_resource of movement - elif (self.getResource() == object.getResource()) \ - and (self.getVariationCategoryList() == object.getVariationCategoryList()): - # we can add this item to the list of aggregated items - item_object_list.append(object) - # update item_id_list and build relation - self.setAggregateValueList(item_object_list) - # update inventory if needed - if len(item_object_list) > 0: - quantity = 0 - for object_item in item_object_list: - quantity += object_item.getRemainingQuantity() - self.setInventory(quantity) + # Use MySQL + aggregate = self.InventoryLine_zGetTotal()[0] + return aggregate.total_inventory or 0.0 - def _setProducedItemIdList(self, value): - """ - Computes total_quantity of all given items and stores this total_quantity - in the quantity attribute of the cell - """ - if value is None: - return - previous_item_list = self.getAggregateValueList() - given_item_id_list = value - item_object_list = [] - for item in given_item_id_list: - item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") - if len(item_result_list) == 1: - try: - object = item_result_list[0].getObject() - except: - object = None - else: - object = None - if object is not None: - # if item was in previous_item_list keep it - if object in previous_item_list: - # we can add this item to the list of aggregated items - item_object_list.append(object) - # if new item verify if variated_resource of item == variated_resource of movement - elif (self.getResource() == object.getResource()) \ - and (self.getVariationCategoryList() == object.getVariationCategoryList()): - # now verify if item can be moved (not already done) - last_location_title = object.getLastLocationTitle() - if self.getDestinationTitle() != last_location_title or last_location_title == '': - # we can add this item to the list of aggregated items - item_object_list.append(object) - # update item_id_list and build relation - self.setAggregateValueList(item_object_list) - # update inventory if needed - if len(item_object_list) > 0: - quantity = 0 - for object_item in item_object_list: - quantity += object_item.getQuantity() - self.setProductionQuantity(quantity) - - def _setConsumedItemIdList(self, value): - """ - Computes total_quantity of all given items and stores this total_quantity - in the quantity attribute of the cell - """ - if value is None: - return - previous_item_list = self.getAggregateValueList() - given_item_id_list = value - item_object_list = [] - for item in given_item_id_list: - item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") - if len(item_result_list) == 1: - try : - object = item_result_list[0].getObject() - except : - object = None - else : - object = None - if object is not None: - # if item was in previous_item_list keep it - if object in previous_item_list: - # we can add this item to the list of aggregated items - item_object_list.append(object) - # if new item verify if variated_resource of item == variated_resource of movement - elif (self.getResource() == object.getResource()) \ - and (self.getVariationCategoryList() == object.getVariationCategoryList()): - # now verify if item can be moved (not already done) - last_location_title = object.getLastLocationTitle() - if self.getDestinationTitle() == last_location_title or last_location_title == '': - # we can add this item to the list of aggregated items - item_object_list.append(object) - # update item_id_list and build relation - self.setAggregateValueList(item_object_list) - # update inventory if needed - if len(item_object_list) > 0: - quantity = 0 - for object_item in item_object_list: - quantity += object_item.getRemainingQuantity() - # we reset the location of the item - object_item.setLocation('') - self.setConsumptionQuantity(quantity) - - def getProducedItemIdList(self): - """ - Returns list of items if production_quantity != 0.0 - """ - if self.getProductionQuantity() != 0.0: - return self.getItemIdList() - else: - return [] - - def getConsumedItemIdList(self): + security.declareProtected(Permissions.AccessContentsInformation, 'getQuantity') + def getQuantity(self): """ - Returns list of items if consumption_quantity != 0.0 + Computes a quantity which allows to reach inventory """ - if self.getConsumptionQuantity() != 0.0: - return self.getItemIdList() + if not self.hasCellContent(): + # First check if quantity already exists + quantity = self._baseGetQuantity() + if quantity not in (0.0, 0, None): + return quantity + # Make sure inventory is defined somewhere (here or parent) + if getattr(aq_base(self), 'inventory', None) is None: + return 0.0 # No inventory defined, so no quantity + # Find total of movements in the past - XXX + resource_value = self.getResourceValue() + if resource_value is not None: + # Inventories can only be done in "real" locations / sectinos, not categories thereof + # -> therefore we use node and section + current_inventory = resource_value.getInventory( \ + to_date = self.getStartDate() + , variation_text = self.getVariationText() + , node = self.getDestination() + , section_category = self.getDestinationSection() + , simulation_state = self.getPortalCurrentInventoryStateList() + ) + inventory = self.getInventory() + if current_inventory in (None, ''): + current_inventory = 0.0 + return self.getInventory() - current_inventory + return self.getInventory() else: - return [] + return None + + +# XXX Following methods should be useless now +# security.declareProtected( Permissions.AccessContentsInformation, 'getInventory' ) +# def getInventory(self): +# """ +# No acquisition for inventories: either defined or None +# """ +# if 'inventory' in self.getMappedValuePropertyList([]): +# return getattr(aq_base(self), 'inventory', None) +# else: +# return None # return None +# +# def _setItemIdList(self, value): +# """ +# Computes total_quantity of all given items and stores this total_quantity +# in the inventory attribute of the cell +# """ +# if value is None: +# return +# previous_item_list = self.getAggregateValueList() +# given_item_id_list = value +# item_object_list = [] +# for item in given_item_id_list: +# item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") +# if len(item_result_list) == 1: +# try: +# object = item_result_list[0].getObject() +# except: +# object = None +# else: +# object = None +# if object is not None: +# # if item was in previous_item_list keep it +# if object in previous_item_list: +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # if new item verify if variated_resource of item == variated_resource of movement +# elif (self.getResource() == object.getResource()) \ +# and (self.getVariationCategoryList() == object.getVariationCategoryList()): +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # update item_id_list and build relation +# self.setAggregateValueList(item_object_list) +# # update inventory if needed +# if len(item_object_list) > 0: +# quantity = 0 +# for object_item in item_object_list: +# quantity += object_item.getRemainingQuantity() +# self.setInventory(quantity) +# +# def _setProducedItemIdList(self, value): +# """ +# Computes total_quantity of all given items and stores this total_quantity +# in the quantity attribute of the cell +# """ +# if value is None: +# return +# previous_item_list = self.getAggregateValueList() +# given_item_id_list = value +# item_object_list = [] +# for item in given_item_id_list: +# item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") +# if len(item_result_list) == 1: +# try: +# object = item_result_list[0].getObject() +# except: +# object = None +# else: +# object = None +# if object is not None: +# # if item was in previous_item_list keep it +# if object in previous_item_list: +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # if new item verify if variated_resource of item == variated_resource of movement +# elif (self.getResource() == object.getResource()) \ +# and (self.getVariationCategoryList() == object.getVariationCategoryList()): +# # now verify if item can be moved (not already done) +# last_location_title = object.getLastLocationTitle() +# if self.getDestinationTitle() != last_location_title or last_location_title == '': +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # update item_id_list and build relation +# self.setAggregateValueList(item_object_list) +# # update inventory if needed +# if len(item_object_list) > 0: +# quantity = 0 +# for object_item in item_object_list: +# quantity += object_item.getQuantity() +# self.setProductionQuantity(quantity) +# +# def _setConsumedItemIdList(self, value): +# """ +# Computes total_quantity of all given items and stores this total_quantity +# in the quantity attribute of the cell +# """ +# if value is None: +# return +# previous_item_list = self.getAggregateValueList() +# given_item_id_list = value +# item_object_list = [] +# for item in given_item_id_list: +# item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") +# if len(item_result_list) == 1: +# try : +# object = item_result_list[0].getObject() +# except : +# object = None +# else : +# object = None +# if object is not None: +# # if item was in previous_item_list keep it +# if object in previous_item_list: +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # if new item verify if variated_resource of item == variated_resource of movement +# elif (self.getResource() == object.getResource()) \ +# and (self.getVariationCategoryList() == object.getVariationCategoryList()): +# # now verify if item can be moved (not already done) +# last_location_title = object.getLastLocationTitle() +# if self.getDestinationTitle() == last_location_title or last_location_title == '': +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # update item_id_list and build relation +# self.setAggregateValueList(item_object_list) +# # update inventory if needed +# if len(item_object_list) > 0: +# quantity = 0 +# for object_item in item_object_list: +# quantity += object_item.getRemainingQuantity() +# # we reset the location of the item +# object_item.setLocation('') +# self.setConsumptionQuantity(quantity) +# +# def getProducedItemIdList(self): +# """ +# Returns list of items if production_quantity != 0.0 +# """ +# if self.getProductionQuantity() != 0.0: +# return self.getItemIdList() +# else: +# return [] +# +# def getConsumedItemIdList(self): +# """ +# Returns list of items if consumption_quantity != 0.0 +# """ +# if self.getConsumptionQuantity() != 0.0: +# return self.getItemIdList() +# else: +# return [] # Inventory cataloging security.declareProtected(Permissions.AccessContentsInformation, 'getConvertedInventory') diff --git a/product/ERP5/Document/InventoryLine.py b/product/ERP5/Document/InventoryLine.py index cc366d7c22..1cba90bfcb 100755 --- a/product/ERP5/Document/InventoryLine.py +++ b/product/ERP5/Document/InventoryLine.py @@ -68,21 +68,16 @@ class InventoryLine(DeliveryLine): ) def _edit(self, REQUEST=None, force_update = 0, **kw): - kw = kw.copy() - item_id_list = kw.get('item_id_list', None) - if item_id_list is not None: del kw['item_id_list'] - produced_item_id_list = kw.get('produced_item_id_list', None) - if produced_item_id_list is not None: del kw['produced_item_id_list'] - consumed_item_id_list = kw.get('consumed_item_id_list', None) - if consumed_item_id_list is not None: del kw['consumed_item_id_list'] DeliveryLine._edit(self, REQUEST=REQUEST, force_update = force_update, **kw) - # Update consumption last - if item_id_list is not None: - self._setItemIdList(item_id_list) - if produced_item_id_list is not None : - self._setProducedItemIdList(produced_item_id_list) - if consumed_item_id_list is not None : - self._setConsumedItemIdList(consumed_item_id_list) + # Calculate inventory + item_list = self.getAggregateValueList() + if len(item_list) > 0: + inventory = 0 + for item in item_list: + if item.getQuantity() not in (None, ''): + inventory += item.getQuantity() + self.setInventory(inventory) + security.declareProtected(Permissions.AccessContentsInformation, 'getTotalInventory') def getTotalInventory(self): @@ -115,159 +110,162 @@ class InventoryLine(DeliveryLine): # Inventories can only be done in "real" locations / sectinos, not categories thereof # -> therefore we use node and section current_inventory = resource_value.getInventory( \ - at_date = self.getStartDate() + to_date = self.getStartDate() , variation_text = self.getVariationText() , node = self.getDestination() - , section_category = self.getDestinationSection() + , section = self.getDestinationSection() #section_category , simulation_state = self.getPortalCurrentInventoryStateList() ) inventory = self.getInventory() if current_inventory in (None, ''): current_inventory = 0.0 + LOG('return 1', 0, '%s - %s' % (repr(self.getInventory()), repr(current_inventory))) return self.getInventory() - current_inventory + LOG('return 2', 0, repr(self.getInventory())) return self.getInventory() else: return None - def _setItemIdList(self, value): - """ - Computes total_quantity of all given items and stores this total_quantity - in the inventory attribute of the cell - """ - if value is None: - return - previous_item_list = self.getAggregateValueList() - given_item_id_list = value - item_object_list = [] - for item in given_item_id_list: - item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") - if len(item_result_list) == 1: - try: - object = item_result_list[0].getObject() - except : - object = None - else: - object = None - if object is not None: - # if item was in previous_item_list keep it - if object in previous_item_list: - # we can add this item to the list of aggregated items - item_object_list.append(object) - # if new item verify if variated_resource of item == variated_resource of movement - elif (self.getResource() == object.getResource()) \ - and (self.getVariationCategoryList() == object.getVariationCategoryList()): - # we can add this item to the list of aggregated items - item_object_list.append(object) - # update item_id_list and build relation - self.setAggregateValueList(item_object_list) - # update inventory if needed - if len(item_object_list) > 0: - quantity = 0 - for object_item in item_object_list: - quantity += object_item.getQuantity() - self.setInventory(quantity) - - def _setProducedItemIdList(self, value): - """ - Computes total_quantity of all given items and stores this total_quantity - in the quantity attribute of the cell - """ - if value is None: - return - previous_item_list = self.getAggregateValueList() - given_item_id_list = value - item_object_list = [] - for item in given_item_id_list: - item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") - if len(item_result_list) == 1: - try: - object = item_result_list[0].getObject() - except: - object = None - else: - object = None - if object is not None: - # if item was in previous_item_list keep it - if object in previous_item_list: - # we can add this item to the list of aggregated items - item_object_list.append(object) - # if new item verify if variated_resource of item == variated_resource of movement - elif (self.getResource() == object.getResource()) \ - and (self.getVariationCategoryList() == object.getVariationCategoryList()): - # now verify if item can be moved (not already done) - last_location_title = object.getLastLocationTitle() - if self.getDestinationTitle() != last_location_title or last_location_title == '': - # we can add this item to the list of aggregated items - item_object_list.append(object) - # update item_id_list and build relation - self.setAggregateValueList(item_object_list) - # update inventory if needed - if len(item_object_list) > 0: - quantity = 0 - for object_item in item_object_list: - quantity += object_item.getQuantity() - self.setProductionQuantity(quantity) - - def _setConsumedItemIdList(self, value): - """ - Computes total_quantity of all given items and stores this total_quantity - in the quantity attribute of the cell - """ - if value is None: - return - previous_item_list = self.getAggregateValueList() - given_item_id_list = value - item_object_list = [] - for item in given_item_id_list: - item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") - if len(item_result_list) == 1: - try: - object = item_result_list[0].getObject() - except: - object = None - else: - object = None - if object is not None: - # if item was in previous_item_list keep it - if object in previous_item_list: - # we can add this item to the list of aggregated items - item_object_list.append(object) - # if new item verify if variated_resource of item == variated_resource of movement - elif (self.getResource() == object.getResource()) \ - and (self.getVariationCategoryList() == object.getVariationCategoryList()): - # now verify if item can be moved (not already done) - last_location_title = object.getLastLocationTitle() - if self.getDestinationTitle() == last_location_title or last_location_title == '': - # we can add this item to the list of aggregated items - item_object_list.append(object) - # update item_id_list and build relation - self.setAggregateValueList(item_object_list) - # update inventory if needed - if len(item_object_list) > 0: - quantity = 0 - for object_item in item_object_list: - quantity += object_item.getRemainingQuantity() - # we reset the location of the item - object_item.setLocation('') - self.setConsumptionQuantity(quantity) - - def getProducedItemIdList(self): - """ - Returns list of items if production_quantity != 0.0 - """ - if self.getProductionQuantity() != 0.0: - return self.getItemIdList() - else: - return [] - - def getConsumedItemIdList(self): - """ - Returns list of items if consumption_quantity != 0.0 - """ - if self.getConsumptionQuantity() != 0.0: - return self.getItemIdList() - else: - return [] +# XXX Following method should be useless now +# def _setItemIdList(self, value): +# """ +# Computes total_quantity of all given items and stores this total_quantity +# in the inventory attribute of the cell +# """ +# if value is None: +# return +# previous_item_list = self.getAggregateValueList() +# given_item_id_list = value +# item_object_list = [] +# for item in given_item_id_list: +# item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") +# if len(item_result_list) == 1: +# try: +# object = item_result_list[0].getObject() +# except : +# object = None +# else: +# object = None +# if object is not None: +# # if item was in previous_item_list keep it +# if object in previous_item_list: +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # if new item verify if variated_resource of item == variated_resource of movement +# elif (self.getResource() == object.getResource()) \ +# and (self.getVariationCategoryList() == object.getVariationCategoryList()): +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # update item_id_list and build relation +# self.setAggregateValueList(item_object_list) +# # update inventory if needed +# if len(item_object_list) > 0: +# quantity = 0 +# for object_item in item_object_list: +# quantity += object_item.getQuantity() +# self.setInventory(quantity) +# +# def _setProducedItemIdList(self, value): +# """ +# Computes total_quantity of all given items and stores this total_quantity +# in the quantity attribute of the cell +# """ +# if value is None: +# return +# previous_item_list = self.getAggregateValueList() +# given_item_id_list = value +# item_object_list = [] +# for item in given_item_id_list: +# item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") +# if len(item_result_list) == 1: +# try: +# object = item_result_list[0].getObject() +# except: +# object = None +# else: +# object = None +# if object is not None: +# # if item was in previous_item_list keep it +# if object in previous_item_list: +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # if new item verify if variated_resource of item == variated_resource of movement +# elif (self.getResource() == object.getResource()) \ +# and (self.getVariationCategoryList() == object.getVariationCategoryList()): +# # now verify if item can be moved (not already done) +# last_location_title = object.getLastLocationTitle() +# if self.getDestinationTitle() != last_location_title or last_location_title == '': +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # update item_id_list and build relation +# self.setAggregateValueList(item_object_list) +# # update inventory if needed +# if len(item_object_list) > 0: +# quantity = 0 +# for object_item in item_object_list: +# quantity += object_item.getQuantity() +# self.setProductionQuantity(quantity) +# +# def _setConsumedItemIdList(self, value): +# """ +# Computes total_quantity of all given items and stores this total_quantity +# in the quantity attribute of the cell +# """ +# if value is None: +# return +# previous_item_list = self.getAggregateValueList() +# given_item_id_list = value +# item_object_list = [] +# for item in given_item_id_list: +# item_result_list = self.portal_catalog(id=item, portal_type="Piece Tissu") +# if len(item_result_list) == 1: +# try: +# object = item_result_list[0].getObject() +# except: +# object = None +# else: +# object = None +# if object is not None: +# # if item was in previous_item_list keep it +# if object in previous_item_list: +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # if new item verify if variated_resource of item == variated_resource of movement +# elif (self.getResource() == object.getResource()) \ +# and (self.getVariationCategoryList() == object.getVariationCategoryList()): +# # now verify if item can be moved (not already done) +# last_location_title = object.getLastLocationTitle() +# if self.getDestinationTitle() == last_location_title or last_location_title == '': +# # we can add this item to the list of aggregated items +# item_object_list.append(object) +# # update item_id_list and build relation +# self.setAggregateValueList(item_object_list) +# # update inventory if needed +# if len(item_object_list) > 0: +# quantity = 0 +# for object_item in item_object_list: +# quantity += object_item.getRemainingQuantity() +# # we reset the location of the item +# object_item.setLocation('') +# self.setConsumptionQuantity(quantity) +# +# def getProducedItemIdList(self): +# """ +# Returns list of items if production_quantity != 0.0 +# """ +# if self.getProductionQuantity() != 0.0: +# return self.getItemIdList() +# else: +# return [] +# +# def getConsumedItemIdList(self): +# """ +# Returns list of items if consumption_quantity != 0.0 +# """ +# if self.getConsumptionQuantity() != 0.0: +# return self.getItemIdList() +# else: +# return [] # Inventory cataloging security.declareProtected(Permissions.AccessContentsInformation, 'getConvertedInventory') -- 2.30.9