Initial code to report VAT on invoices.
This commit is contained in:
		
							parent
							
								
									24f5f97b24
								
							
						
					
					
						commit
						b613a5072c
					
				
					 3 changed files with 26 additions and 1 deletions
				
			
		|  | @ -1,6 +1,7 @@ | |||
| import os | ||||
| import dj_database_url | ||||
| 
 | ||||
| from decimal import Decimal | ||||
| 
 | ||||
| PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) | ||||
| PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__)) | ||||
|  | @ -315,6 +316,13 @@ 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": { | ||||
|         "safe_mode": False, | ||||
|  |  | |||
|  | @ -38,6 +38,13 @@ | |||
| {% endblock %} | ||||
| 
 | ||||
| {% 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 %} | ||||
|     <tr> | ||||
|  |  | |||
|  | @ -11,6 +11,16 @@ 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) | ||||
| def donation_income(context, invoice): | ||||
|  | @ -42,7 +52,7 @@ def donation_income(context, invoice): | |||
|             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 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Brett Smith
						Brett Smith