From 78264868e1c8095160d679d9d161a561e6fc36cb Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 8 Jul 2022 15:43:33 +1000 Subject: [PATCH] Allow negative currency values for "extra" line items (#3311) --- InvenTree/InvenTree/fields.py | 11 ++++++++--- InvenTree/order/models.py | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/InvenTree/InvenTree/fields.py b/InvenTree/InvenTree/fields.py index d521d48cc7..6c62aacb9d 100644 --- a/InvenTree/InvenTree/fields.py +++ b/InvenTree/InvenTree/fields.py @@ -63,10 +63,15 @@ class InvenTreeModelMoneyField(ModelMoneyField): # Set a minimum value validator validators = kwargs.get('validators', []) + allow_negative = kwargs.pop('allow_negative', False) + + # If no validators are provided, add some "standard" ones if len(validators) == 0: - validators.append( - MinMoneyValidator(0), - ) + + if not allow_negative: + validators.append( + MinMoneyValidator(0), + ) kwargs['validators'] = validators diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index ff5ef4e60b..5206a54997 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -957,6 +957,7 @@ class OrderExtraLine(OrderLineItem): max_digits=19, decimal_places=4, null=True, blank=True, + allow_negative=True, verbose_name=_('Price'), help_text=_('Unit price'), )