@@ -8,12 +8,22 @@ from django import template
from django.conf import settings
from django.db.models import Sum
from urllib import urlencode # TODO: s/urllib/six.moves.urllib/
register = template.Library()
CENTS_QUANT = Decimal('.01')
VAT_RATE = str(settings.INVOICE_VAT_RATE * 100).rstrip('.0') + '%'
@register.simple_tag
def vat_amount(invoice):
return (invoice.value * settings.INVOICE_VAT_RATE).quantize(CENTS_QUANT)
def vat_rate():
return VAT_RATE
@register.simple_tag(takes_context=True)
def donation_income(context, invoice):
''' Calculates the donation income for a given invoice.
Returns:
@@ -39,13 +49,13 @@ def donation_income(context, invoice):
elif line.total_price < 0:
rbi.append(rbi_early_bird_discount)
elif line.product.category.name == "T-Shirt":
rbi.append(line.total_price * fsa_rate)
donation = max(Decimal('0'), (invoice.value - sum(rbi)))
return donation.quantize(Decimal('.01'))
return donation.quantize(CENTS_QUANT)
# TODO: include van/de/van der/de la/etc etc etc
def name_split(name, split_characters=None):