forked from CGM_Public/pretix_original
Payment provider fee calculation
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
from pretix.base.settings import SettingsSandbox
|
from pretix.base.settings import SettingsSandbox
|
||||||
|
|
||||||
|
|
||||||
@@ -13,6 +15,23 @@ class BasePaymentProvider:
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.identifier
|
return self.identifier
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_enabled(self):
|
||||||
|
"""
|
||||||
|
Returns, whether or whether not this payment provider is enabled.
|
||||||
|
By default, this is determined by the value of a setting.
|
||||||
|
"""
|
||||||
|
return self.settings.get('_enabled', as_type=bool)
|
||||||
|
|
||||||
|
def calculate_fee(self, price):
|
||||||
|
"""
|
||||||
|
Calculate the fee for this payment provider which will be added to
|
||||||
|
the final price if the price before fees (but after taxes) is 'price'.
|
||||||
|
"""
|
||||||
|
fee_abs = self.settings.get('_fee_abs', as_type=Decimal, default=0)
|
||||||
|
fee_percent = self.settings.get('_fee_percent', as_type=Decimal, default=0)
|
||||||
|
return price * fee_percent / 100 + fee_abs
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def verbose_name(self) -> str:
|
def verbose_name(self) -> str:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class SettingsSandbox:
|
|||||||
del self._event.settings[self._convert_key(key)]
|
del self._event.settings[self._convert_key(key)]
|
||||||
|
|
||||||
def get(self, key, default=None, as_type=str):
|
def get(self, key, default=None, as_type=str):
|
||||||
return self._event.settings.get(self._convert_key(key), default=default, as_type=type)
|
return self._event.settings.get(self._convert_key(key), default=default, as_type=as_type)
|
||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
self._event.settings.set(self._convert_key(key), value)
|
self._event.settings.set(self._convert_key(key), value)
|
||||||
|
|||||||
Reference in New Issue
Block a user