mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
adds in money-conversion helper
This commit is contained in:
parent
a3ec24fbcc
commit
4f726931a6
@ -21,6 +21,9 @@ import InvenTree.version
|
|||||||
|
|
||||||
from common.models import InvenTreeSetting
|
from common.models import InvenTreeSetting
|
||||||
from .settings import MEDIA_URL, STATIC_URL
|
from .settings import MEDIA_URL, STATIC_URL
|
||||||
|
from common.settings import currency_code_default
|
||||||
|
|
||||||
|
from djmoney.money import Money
|
||||||
|
|
||||||
|
|
||||||
def getSetting(key, backup_value=None):
|
def getSetting(key, backup_value=None):
|
||||||
@ -247,6 +250,22 @@ def decimal2string(d):
|
|||||||
return s.rstrip("0").rstrip(".")
|
return s.rstrip("0").rstrip(".")
|
||||||
|
|
||||||
|
|
||||||
|
def decimal2money(d, currency = None):
|
||||||
|
"""
|
||||||
|
Format a Decimal number as Money
|
||||||
|
|
||||||
|
Args:
|
||||||
|
d: A python Decimal object
|
||||||
|
currency: Currency of the input amount, defaults to default currency in settings
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A Money object from the input(s)
|
||||||
|
"""
|
||||||
|
if not currency:
|
||||||
|
currency = currency_code_default()
|
||||||
|
return Money(d, currency)
|
||||||
|
|
||||||
|
|
||||||
def WrapWithQuotes(text, quote='"'):
|
def WrapWithQuotes(text, quote='"'):
|
||||||
""" Wrap the supplied text with quotes
|
""" Wrap the supplied text with quotes
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ from InvenTree import helpers
|
|||||||
from InvenTree import validators
|
from InvenTree import validators
|
||||||
from InvenTree.models import InvenTreeTree, InvenTreeAttachment
|
from InvenTree.models import InvenTreeTree, InvenTreeAttachment
|
||||||
from InvenTree.fields import InvenTreeURLField
|
from InvenTree.fields import InvenTreeURLField
|
||||||
from InvenTree.helpers import decimal2string, normalize
|
from InvenTree.helpers import decimal2string, normalize, decimal2money
|
||||||
|
|
||||||
from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus, SalesOrderStatus
|
from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus, SalesOrderStatus
|
||||||
|
|
||||||
@ -2414,7 +2414,7 @@ class BomItem(models.Model):
|
|||||||
return "{n} x {child} to make {parent}".format(
|
return "{n} x {child} to make {parent}".format(
|
||||||
parent=self.part.full_name,
|
parent=self.part.full_name,
|
||||||
child=self.sub_part.full_name,
|
child=self.sub_part.full_name,
|
||||||
n=helpers.decimal2string(self.quantity))
|
n=decimal2string(self.quantity))
|
||||||
|
|
||||||
def available_stock(self):
|
def available_stock(self):
|
||||||
"""
|
"""
|
||||||
@ -2498,12 +2498,12 @@ class BomItem(models.Model):
|
|||||||
return required
|
return required
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def price_range(self):
|
def price_range(self, internal = False):
|
||||||
""" Return the price-range for this BOM item. """
|
""" Return the price-range for this BOM item. """
|
||||||
|
|
||||||
# get internal price setting
|
# get internal price setting
|
||||||
use_internal = common.models.InvenTreeSetting.get_setting('PART_BOM_USE_INTERNAL_PRICE', False)
|
use_internal = common.models.InvenTreeSetting.get_setting('PART_BOM_USE_INTERNAL_PRICE', False)
|
||||||
prange = self.sub_part.get_price_range(self.quantity, internal=use_internal)
|
prange = self.sub_part.get_price_range(self.quantity, internal=use_internal and internal)
|
||||||
|
|
||||||
if prange is None:
|
if prange is None:
|
||||||
return prange
|
return prange
|
||||||
@ -2511,11 +2511,11 @@ class BomItem(models.Model):
|
|||||||
pmin, pmax = prange
|
pmin, pmax = prange
|
||||||
|
|
||||||
if pmin == pmax:
|
if pmin == pmax:
|
||||||
return decimal2string(pmin)
|
return decimal2money(pmin)
|
||||||
|
|
||||||
# Convert to better string representation
|
# Convert to better string representation
|
||||||
pmin = decimal2string(pmin)
|
pmin = decimal2money(pmin)
|
||||||
pmax = decimal2string(pmax)
|
pmax = decimal2money(pmax)
|
||||||
|
|
||||||
return "{pmin} to {pmax}".format(pmin=pmin, pmax=pmax)
|
return "{pmin} to {pmax}".format(pmin=pmin, pmax=pmax)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user