Adds functions for mailing invoices when certain events occur.
This commit is contained in:
		
							parent
							
								
									155f6d42d9
								
							
						
					
					
						commit
						e946af0f04
					
				
					 1 changed files with 34 additions and 0 deletions
				
			
		|  | @ -5,6 +5,8 @@ from django.db import transaction | ||||||
| from django.db.models import Sum | from django.db.models import Sum | ||||||
| from django.utils import timezone | from django.utils import timezone | ||||||
| 
 | 
 | ||||||
|  | from registrasion.contrib.mail import send_email | ||||||
|  | 
 | ||||||
| from registrasion.models import commerce | from registrasion.models import commerce | ||||||
| from registrasion.models import conditions | from registrasion.models import conditions | ||||||
| from registrasion.models import people | from registrasion.models import people | ||||||
|  | @ -149,6 +151,8 @@ class InvoiceController(ForId, object): | ||||||
| 
 | 
 | ||||||
|         invoice.save() |         invoice.save() | ||||||
| 
 | 
 | ||||||
|  |         cls.email_on_invoice_creation(invoice) | ||||||
|  | 
 | ||||||
|         return invoice |         return invoice | ||||||
| 
 | 
 | ||||||
|     def can_view(self, user=None, access_code=None): |     def can_view(self, user=None, access_code=None): | ||||||
|  | @ -314,3 +318,33 @@ class InvoiceController(ForId, object): | ||||||
| 
 | 
 | ||||||
|         CreditNoteController.generate_from_invoice(self.invoice, amount) |         CreditNoteController.generate_from_invoice(self.invoice, amount) | ||||||
|         self.update_status() |         self.update_status() | ||||||
|  | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def email(cls, invoice, kind): | ||||||
|  |         ''' Sends out an e-mail notifying the user about something to do | ||||||
|  |         with that invoice. ''' | ||||||
|  | 
 | ||||||
|  |         context = { | ||||||
|  |             "invoice": invoice, | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         send_email(invoice.user.email, kind, context=context) | ||||||
|  | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def email_on_invoice_creation(cls, invoice): | ||||||
|  |         ''' Sends out an e-mail notifying the user that an invoice has been | ||||||
|  |         created. ''' | ||||||
|  | 
 | ||||||
|  |         cls.email(invoice, "invoice_created") | ||||||
|  | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def email_on_invoice_change(cls, invoice, old_status, new_status): | ||||||
|  |         ''' Sends out all of the necessary notifications that the status of the | ||||||
|  |         invoice has changed to: | ||||||
|  | 
 | ||||||
|  |         - Invoice is now paid | ||||||
|  |         - Invoice is now refunded | ||||||
|  | 
 | ||||||
|  |         ''' | ||||||
|  | 
 | ||||||
|  |         cls.email(invoice, "invoice_updated") | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Christopher Neugebauer
						Christopher Neugebauer