diff --git a/shop/management/commands/invoice-worker.py b/shop/management/commands/invoice-worker.py index f1e7c518..cc33be91 100644 --- a/shop/management/commands/invoice-worker.py +++ b/shop/management/commands/invoice-worker.py @@ -6,6 +6,7 @@ from shop.pdf import generate_pdf_letter from shop.email import send_invoice_email from shop.models import Order, Invoice from time import sleep +from decimal import Decimal class Command(BaseCommand): diff --git a/shop/models.py b/shop/models.py index c21aca0d..814d3f36 100644 --- a/shop/models.py +++ b/shop/models.py @@ -79,17 +79,17 @@ class Order(CreatedUpdatedModel): @property def vat(self): - return self.total*0.2 + return Decimal(self.total*0.2) @property def total(self): - return self.products.aggregate( + return Decimal(self.products.aggregate( sum=Sum( models.F('orderproductrelation__product__price') * models.F('orderproductrelation__quantity'), output_field=models.IntegerField() ) - )['sum'] + )['sum']) def get_coinify_callback_url(self, request): return 'https://' + request.get_host() + str(reverse_lazy('shop:coinify_callback', kwargs={'pk': self.pk})) diff --git a/shop/templates/invoice.html b/shop/templates/invoice.html index 7900b764..72836f1a 100644 --- a/shop/templates/invoice.html +++ b/shop/templates/invoice.html @@ -3,28 +3,26 @@ - + - +
Order number: {{ ordernumber }}Order number: {{ invoice.order.pk }}
Invoice number: {{ invoicenumber }}Invoice number: {{ invoice.pk }}
Date: {% now "j/n-Y" %}
- - +
- +
- Name - - Quantity - - Price - - Total -
+ Name + + Quantity + + Price + + Total {% for order_product in invoice.order.orderproductrelation_set.all %}
@@ -40,7 +38,7 @@
- Hereof VAT (25%) + Danish VAT (25%) {{ order.vat|currency }} diff --git a/shop/templatetags/shop_tags.py b/shop/templatetags/shop_tags.py index 189f1b26..530445f5 100644 --- a/shop/templatetags/shop_tags.py +++ b/shop/templatetags/shop_tags.py @@ -1,5 +1,6 @@ from django import template from django.utils.safestring import mark_safe +from decimal import Decimal register = template.Library() @@ -7,7 +8,7 @@ register = template.Library() @register.filter def currency(value): try: - return "{0:.2f} DKK".format(int(value)) + return "{0:.2f} DKK".format(Decimal(value)) except ValueError: return False