mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +00:00 
			
		
		
		
	Catch edge case for merge_stock_items: (#7373)
* Catch edge case for merge_stock_items: - Use current location as backup - Handle null location * Fix deltas
This commit is contained in:
		| @@ -1695,6 +1695,9 @@ class StockItem( | ||||
|         - Tracking history for the *other* item is deleted | ||||
|         - Any allocations (build order, sales order) are moved to this StockItem | ||||
|         """ | ||||
|         if isinstance(other_items, StockItem): | ||||
|             other_items = [other_items] | ||||
|  | ||||
|         if len(other_items) == 0: | ||||
|             return | ||||
|  | ||||
| @@ -1702,7 +1705,7 @@ class StockItem( | ||||
|         tree_ids = {self.tree_id} | ||||
|  | ||||
|         user = kwargs.get('user', None) | ||||
|         location = kwargs.get('location', None) | ||||
|         location = kwargs.get('location', self.location) | ||||
|         notes = kwargs.get('notes', None) | ||||
|  | ||||
|         parent_id = self.parent.pk if self.parent else None | ||||
| @@ -1710,6 +1713,9 @@ class StockItem( | ||||
|         for other in other_items: | ||||
|             # If the stock item cannot be merged, return | ||||
|             if not self.can_merge(other, raise_error=raise_error, **kwargs): | ||||
|                 logger.warning( | ||||
|                     'Stock item <%s> could not be merge into <%s>', other.pk, self.pk | ||||
|                 ) | ||||
|                 return | ||||
|  | ||||
|             tree_ids.add(other.tree_id) | ||||
| @@ -1739,7 +1745,7 @@ class StockItem( | ||||
|             user, | ||||
|             quantity=self.quantity, | ||||
|             notes=notes, | ||||
|             deltas={'location': location.pk}, | ||||
|             deltas={'location': location.pk if location else None}, | ||||
|         ) | ||||
|  | ||||
|         self.location = location | ||||
|   | ||||
		Reference in New Issue
	
	Block a user