diff --git a/RIGS/finance.py b/RIGS/finance.py index c8a3657d..fb075684 100644 --- a/RIGS/finance.py +++ b/RIGS/finance.py @@ -13,7 +13,8 @@ class InvoiceIndex(generic.ListView): template_name = 'RIGS/invoice_list.html' def get_queryset(self): - active = self.model.objects.filter(void=False).select_related('payment_set') + active = self.model.objects.filter(void=False).select_related('payment_set', 'event').prefetch_related( + 'event__items').defer('event__person', 'event__organisation', 'event__venue', 'event__mic') set = [] for invoice in active: if invoice.balance != 0: diff --git a/RIGS/models.py b/RIGS/models.py index 54b74ce5..b5b9a8da 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -248,7 +248,7 @@ class Event(models.Model, RevisionMixin): @property def sum_total(self): total = 0 - for item in self.items.all(): + for item in self.items.filter(cost__gt=0): total += item.total_cost return total @@ -329,9 +329,9 @@ class Invoice(models.Model): @property def payment_total(self): - total = 0 - for payment in self.payment_set.all(): - total += payment.amount + total = self.payment_set.aggregate(models.Sum('amount')) + # for payment in self.payment_set.all(): + # total += payment.amount return total @property @@ -352,11 +352,13 @@ class Payment(models.Model): INTERNAL = 'I' EXTERNAL = 'E' SUCORE = 'SU' + ADJUSTMENT = 'T' METHODS = ( (CASH, 'Cash'), (INTERNAL, 'Internal'), (EXTERNAL, 'External'), (SUCORE, 'SU Core'), + (ADJUSTMENT, 'TEC Adjustment'), ) invoice = models.ForeignKey('Invoice')