38
38
from esp .web .util import render_to_response
39
39
from datetime import datetime
40
40
from django .db .models .query import Q
41
+ from django .db .models import Sum
41
42
from esp .users .models import User , ESPUser
43
+ from esp .accounting .models import Transfer
42
44
from esp .accounting .controllers import ProgramAccountingController , IndividualAccountingController
43
45
from esp .middleware import ESPError
44
46
@@ -59,11 +61,22 @@ def viewpay_cybersource(self, request, tl, one, two, module, extra, prog):
59
61
student_list = list (pac .all_students ())
60
62
payment_table = []
61
63
64
+ # Fetch detailed information for every student associated with the program
62
65
for student in student_list :
63
66
iac = IndividualAccountingController (prog , student )
64
67
payment_table .append ((student , iac .get_transfers (), iac .amount_requested (), iac .amount_due ()))
65
68
66
- context = { 'program' : prog , 'payment_table' : payment_table }
69
+ # Also fetch summary information about the payments
70
+ lt = pac .default_payments_lineitemtype ()
71
+ payments = Transfer .objects .filter (line_item = lt )
72
+
73
+ context = {
74
+ 'program' : prog ,
75
+ 'payment_table' : payment_table ,
76
+ 'num_students' : len (student_list ),
77
+ 'num_payments' : payments .count (),
78
+ 'total_payment' : payments .aggregate (total = Sum ('amount_dec' ))['total' ],
79
+ }
67
80
68
81
return render_to_response (self .baseDir () + 'viewpay_cybersource.html' , request , context )
69
82
0 commit comments