Changeset - b613a5072cbd
[Not reviewed]
0 3 0
Brett Smith - 4 years ago 2019-11-11 19:30:05
brettcsmith@brettcsmith.org
Initial code to report VAT on invoices.
3 files changed with 26 insertions and 1 deletions:
0 comments (0 inline, 0 general)
pinaxcon/settings.py
Show inline comments
...
 
@@ -2,4 +2,5 @@ import os
 
import dj_database_url
 

	
 
from decimal import Decimal
 

	
 
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
...
 
@@ -316,4 +317,11 @@ TICKET_PRODUCT_CATEGORY = 1
 
INVOICE_CURRENCY = "USD"
 

	
 
# VAT rate is 21%
 
# When PINAX_VAT_RATE is set, this percentage of the invoice total is
 
# displayed as a line item as the amount of VAT paid.
 
INVOICE_VAT_RATE = Decimal(os.environ.get('PINAX_VAT_RATE') or 0)
 
if INVOICE_VAT_RATE > 1:
 
    INVOICE_VAT_RATE /= 100
 

	
 
MARKDOWN_DEUX_STYLES = {
 
    "default": {
pinaxcon/templates/registrasion/invoice/details.html
Show inline comments
...
 
@@ -39,4 +39,11 @@
 

	
 
{% block extra_line_items_after_total %}
 
  {% vat_amount(invoice) as vat %}
 
  {% if vat %}
 
    <tr>
 
      <td colspan="3">Includes {{ vat_rate }} VAT:</td>
 
      <td class="text-right">${{ vat }}</td>
 
    </tr>
 
  {% endif %}
 
  {% donation_income invoice as donation %}
 
  {% if donation %}
pinaxcon/templatetags/nbpy_tags.py
Show inline comments
...
 
@@ -12,4 +12,14 @@ 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)
 

	
 
@register.simple_tag
 
def vat_rate():
 
    return VAT_RATE
 

	
 
@register.simple_tag(takes_context=True)
...
 
@@ -43,5 +53,5 @@ def donation_income(context, invoice):
 

	
 
    donation = max(Decimal('0'), (invoice.value - sum(rbi)))
 
    return donation.quantize(Decimal('.01'))
 
    return donation.quantize(CENTS_QUANT)
 

	
 

	
0 comments (0 inline, 0 general)