From abe00232f3fbc571a811ee49f3a0e4a2781b769b Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 24 Jun 2021 21:47:11 +0200 Subject: [PATCH] use internal price in more places --- InvenTree/part/models.py | 9 ++++++--- InvenTree/part/views.py | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 8ddf049216..77ec693a3d 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -1479,16 +1479,17 @@ class Part(MPTTModel): return True - def get_price_info(self, quantity=1, buy=True, bom=True): + def get_price_info(self, quantity=1, buy=True, bom=True, internal=False): """ Return a simplified pricing string for this part Args: quantity: Number of units to calculate price for buy: Include supplier pricing (default = True) bom: Include BOM pricing (default = True) + internal: Include internal pricing (default = False) """ - price_range = self.get_price_range(quantity, buy, bom) + price_range = self.get_price_range(quantity, buy, bom, internal) if price_range is None: return None @@ -2499,7 +2500,9 @@ class BomItem(models.Model): def price_range(self): """ Return the price-range for this BOM item. """ - prange = self.sub_part.get_price_range(self.quantity) + # get internal price setting + use_internal = common.models.InvenTreeSetting.get_setting('PART_BOM_USE_INTERNAL_PRICE', False) + prange = self.sub_part.get_price_range(self.quantity, intenal=use_internal) if prange is None: return prange diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 39e0f13b45..743b3a36b9 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -847,11 +847,13 @@ class PartPricingView(PartDetail): # BOM Information for Pie-Chart if part.has_bom: + # get internal price setting + use_internal = InvenTreeSetting.get_setting('PART_BOM_USE_INTERNAL_PRICE', False) ctx_bom_parts = [] # iterate over all bom-items for item in part.bom_items.all(): ctx_item = {'name': str(item.sub_part)} - price, qty = item.sub_part.get_price_range(quantity), item.quantity + price, qty = item.sub_part.get_price_range(quantity, internal=use_internal), item.quantity price_min, price_max = 0, 0 if price: # check if price available