diff --git a/src/pretix/base/migrations/0101_auto_20181025_2255.py b/src/pretix/base/migrations/0101_auto_20181025_2255.py new file mode 100644 index 000000000..eec80d61a --- /dev/null +++ b/src/pretix/base/migrations/0101_auto_20181025_2255.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1 on 2018-10-25 22:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0100_auto_20181023_2300'), + ] + + operations = [ + migrations.AddField( + model_name='invoice', + name='reverse_charge', + field=models.BooleanField(default=False), + ), + ] diff --git a/src/pretix/base/models/invoices.py b/src/pretix/base/models/invoices.py index 097782ff5..c310b7fc7 100644 --- a/src/pretix/base/models/invoices.py +++ b/src/pretix/base/models/invoices.py @@ -93,6 +93,7 @@ class Invoice(models.Model): locale = models.CharField(max_length=50, default='en') introductory_text = models.TextField(blank=True) additional_text = models.TextField(blank=True) + reverse_charge = models.BooleanField(default=False) payment_provider_text = models.TextField(blank=True) footer_text = models.TextField(blank=True) foreign_currency_display = models.CharField(max_length=50, null=True, blank=True) diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index 734e1fe2c..4718afcf2 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -14,6 +14,7 @@ from django.dispatch import receiver from django.utils import timezone from django.utils.timezone import now from django.utils.translation import pgettext, ugettext as _ +from django_countries.fields import Country from i18nfield.strings import LazyI18nString from pretix.base.i18n import language @@ -152,6 +153,7 @@ def build_invoice(invoice: Invoice) -> Invoice: "Reverse Charge: According to Article 194, 196 of Council Directive 2006/112/EEC, VAT liability " "rests with the service recipient." ) + invoice.reverse_charge = True invoice.save() offset = len(positions) @@ -297,7 +299,15 @@ def build_preview_invoice_pdf(event): invoice.additional_text = str(additional).replace('\n', '
') invoice.footer_text = str(footer) invoice.payment_provider_text = str(payment).replace('\n', '
') - invoice.invoice_to = _("John Doe\n214th Example Street\n012345 Somecity") + invoice.invoice_to_name = _("John Doe") + invoice.invoice_to_street = _("214th Example Street") + invoice.invoice_to_zipcode = _("012345") + invoice.invoice_to_city = _('Sample city') + invoice.invoice_to_country = Country('DE') + invoice.invoice_to = '{}\n{}\n{} {}'.format( + invoice.invoice_to_name, invoice.invoice_to_street, + invoice.invoice_to_zipcode, invoice.invoice_to_city + ) invoice.file = None invoice.save() invoice.lines.all().delete()