Index: main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 15638)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 15666)
@@ -123,5 +123,5 @@
         return form_fields
 
-    def dataNotComplete(self, data):
+    def dataNotComplete(self):
         store = getUtility(IExtFileStore)
         if not store.getFileByContext(self.context, attr=u'birth_certificate.jpg'):
@@ -143,5 +143,5 @@
     """
     form_fields = grok.AutoFields(ICustomStudentOnlinePayment).select(
-        'p_category')
+        'p_combi')
 
 class CustomExportPDFPaymentSlip(NigeriaExportPDFPaymentSlip):
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 15638)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 15666)
@@ -553,5 +553,5 @@
 
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment, None)
         # Student is in state 'created' and can thus not pay.
@@ -560,9 +560,9 @@
         # Previous session must be valid.
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, 2000, 300)
+            self.student, 2000, 300, None)
         self.assertEqual(payment, None)
         self.assertTrue(u'The previous session must not fall below' in error)
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, 2005, 300)
+            self.student, 2005, 300, None)
         self.assertEqual(payment, None)
         self.assertTrue(u'This is not a previous session' in error)
@@ -571,5 +571,5 @@
         # are distinguished by their entry_level
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, 2002, 300)
+            self.student, 2002, 300, None)
         self.assertEqual(payment.amount_auth, 40000.0)
         self.assertEqual(payment.p_session, 2002)
@@ -577,5 +577,5 @@
         self.assertFalse(payment.p_current)
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, 2003, 300)
+            self.student, 2003, 300, None)
         self.assertEqual(payment.amount_auth, 20000.0)
         self.assertEqual(payment.p_session, 2003)
@@ -587,5 +587,5 @@
         IWorkflowState(self.student).setState('cleared')
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
@@ -601,5 +601,5 @@
         self.app['configuration']['2005'].penalty_ug_ft = 88.0
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.amount_auth, 40099.0)
 
@@ -607,5 +607,5 @@
 
         #error, payment = utils.setPaymentDetails('schoolfee',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertTrue(
         #    u'You have not yet paid your current/active session.' in error)
@@ -620,5 +620,5 @@
 
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 200)
         self.assertEqual(payment.p_session, 2005)
@@ -631,5 +631,5 @@
         self.certificate.custom_float_1 = 30000.0
         error, payment = utils.setPaymentDetails(
-            'schoolfee', self.student, None, None)
+            'schoolfee', self.student, None, None, None)
         self.assertEqual(payment.amount_auth, 20088.0)
 
@@ -638,5 +638,5 @@
         self.student.is_staff = True
         error, payment = utils.setPaymentDetails('schoolfee',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 200)
         self.assertEqual(payment.p_session, 2005)
@@ -651,5 +651,5 @@
         self.certificate.school_fee_3 = 60000.0
         error, payment = utils.setPaymentDetails(
-            'schoolfee', self.student, None, None)
+            'schoolfee', self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
@@ -661,5 +661,5 @@
         self.certificate.school_fee_4 = 20000.0
         error, payment = utils.setPaymentDetails(
-            'schoolfee', self.student, None, None)
+            'schoolfee', self.student, None, None, None)
         self.assertEqual(payment.p_level, 200)
         self.assertEqual(payment.p_session, 2005)
@@ -676,5 +676,5 @@
         #self.certificate.school_fee_2 = 10000.0
         #error, payment = utils.setPaymentDetails(
-        #    'schoolfee', self.student, None, None)
+        #    'schoolfee', self.student, None, None, None)
         #self.assertEqual(payment.p_level, None)
         #self.assertEqual(payment.p_session, 2005)
@@ -685,5 +685,5 @@
         #self.certificate.study_mode = 'special_pg_pt'
         #error, payment = utils.setPaymentDetails(
-        #    'schoolfee', self.student, None, None)
+        #    'schoolfee', self.student, None, None, None)
         #self.assertEqual(payment.p_level, None)
         #self.assertEqual(payment.p_session, 2005)
@@ -693,5 +693,5 @@
         #IWorkflowState(self.student).setState('courses validated')
         #error, payment = utils.setPaymentDetails(
-        #    'schoolfee', self.student, None, None)
+        #    'schoolfee', self.student, None, None, None)
         #self.assertEqual(payment.p_level, None)
         #self.assertEqual(payment.p_session, 2005)
@@ -701,5 +701,5 @@
 
         error, payment = utils.setPaymentDetails('clearance',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
@@ -709,5 +709,5 @@
 
         error, payment = utils.setPaymentDetails('gown',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
@@ -724,5 +724,5 @@
 
         error, payment = utils.setPaymentDetails('hostel_maintenance',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
@@ -733,5 +733,5 @@
         #self.certificate.study_mode = 'ug_ft'
         #error, payment = utils.setPaymentDetails('bed_allocation',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertTrue(u'Amount could not be determined.' in error)
         #self.student['studycourse'].current_session = 2004
@@ -739,5 +739,5 @@
         #self.student['studycourse'].current_level = 100
         #error, payment = utils.setPaymentDetails('bed_allocation',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertEqual(payment.p_level, 100)
         #self.assertEqual(payment.p_session, 2004)
@@ -748,9 +748,9 @@
         self.certificate.study_mode = 'pg_ft'
         error, payment = utils.setPaymentDetails('bed_allocation',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(error, u'Select your favoured hostel first.')
         self.student['accommodation'].desired_hostel = u'no'
         error, payment = utils.setPaymentDetails('bed_allocation',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
@@ -760,5 +760,5 @@
 
         #error, payment = utils.setPaymentDetails('hostel_application',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertEqual(payment.p_level, 100)
         #self.assertEqual(payment.p_session, 2004)
@@ -771,5 +771,5 @@
 
         #error, payment = utils.setPaymentDetails('tempmaint_1',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertEqual(payment.p_level, 100)
         #self.assertEqual(payment.p_session, 2004)
@@ -779,5 +779,5 @@
 
         #error, payment = utils.setPaymentDetails('tempmaint_2',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertEqual(payment.p_level, 100)
         #self.assertEqual(payment.p_session, 2004)
@@ -787,5 +787,5 @@
 
         #error, payment = utils.setPaymentDetails('tempmaint_3',
-        #    self.student, None, None)
+        #    self.student, None, None, None)
         #self.assertEqual(payment.p_level, 100)
         #self.assertEqual(payment.p_session, 2004)
@@ -795,5 +795,5 @@
 
         error, payment = utils.setPaymentDetails('transfer',
-            self.student, None, None)
+            self.student, None, None, None)
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_export.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_export.py	(revision 15638)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_export.py	(revision 15666)
@@ -59,5 +59,5 @@
             'marit_stat,matric_number,middlename,nationality,'
             'next_kin_address,next_kin_name,next_kin_phone,next_kin_relation,'
-            'nysc_lga,nysc_location,nysc_year,officer_comment,parent_email,'
+            'nysc_lga,nysc_location,nysc_year,officer_comment,parent_email,parents_email,'
             'perm_address,personal_updated,phone,'
             'physical_clearance_date,provisionally_cleared,reg_number,'
@@ -68,5 +68,5 @@
             '"[(\'printing_craft_practice\', \'A1\')]",my clr code,1981-02-04#,,,'
             'anna@sample.com,,,,,,,,,,,,,Anna,,,,,,"[(\'printing_craft_practice\', \'A1\')]"'
-            ',,,,,,,,,,,,,,,,Tester,,,,234,M.,NG,,,,,,,,,,'
+            ',,,,,,,,,,,,,,,,Tester,,,,234,M.,NG,,,,,,,,,,,'
             '"Studentroad 21\nLagos 123456\n",,+234-123-12345#,,,123,,,,,'
             '"[(\'printing_craft_practice\', \'A1\')]",,f,A111111,0,,,created,'
@@ -103,10 +103,10 @@
         result = open(self.outfile, 'rb').read()
         self.assertMatches(
-            'ac,amount_auth,creation_date,gateway_amt,p_category,p_current,'
+            'ac,amount_auth,creation_date,gateway_amt,p_category,p_combi,p_current,'
             'p_id,p_item,p_level,p_session,p_state,payment_date,provider_amt,'
             'r_amount_approved,r_card_num,r_code,r_company,r_desc,'
             'r_pay_reference,rebate_amount,staff_rebate,thirdparty_amt,student_id,state,'
             'current_session\r\n'
-            '666,12.12,%s-04-01 13:12:01#,,schoolfee,1,my-id,p-item,'
+            '666,12.12,%s-04-01 13:12:01#,,schoolfee,[],1,my-id,p-item,'
             '100,%s,paid,%s-04-01 14:12:01#,,12.12,'
             '789,r-code,interswatch,,,,,,A111111,created,2012\r\n'
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 15638)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 15666)
@@ -207,5 +207,5 @@
 
     def setPaymentDetails(self, category, student,
-            previous_session, previous_level):
+            previous_session, previous_level, combi):
         """Create Payment object and set the payment data of a student for
         the payment category specified.
