Index: main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interfaces.py
===================================================================
--- main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interfaces.py	(revision 15104)
+++ main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interfaces.py	(revision 15105)
@@ -105,4 +105,10 @@
         )
 
+    union_fee = schema.Float(
+        title = _(u'Student Union Dues'),
+        default = 0.0,
+        required = False,
+        )
+
     def getSessionString():
         """Returns the session string from the vocabulary.
Index: main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/browser.py
===================================================================
--- main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/browser.py	(revision 15104)
+++ main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/browser.py	(revision 15105)
@@ -80,12 +80,12 @@
             if self.context.p_category == 'clearance':
                 provider_amt = 1500.0
-
             # temporarily disabled
             #if self.context.p_category in ('transcript', 'certificate'):
             #    provider_amt = 2000.0
-
         # Institution data
         xmldict['institution_acct'] = '0068241848'
         xmldict['institution_bank_id'] = '121'
+        if self.context.p_category == 'union':
+            xmldict['institution_acct'] = '0066437412'
         xmldict['institution_amt'] = '0.0'
         self.pay_item_id = '101' # must be provided by Interswitch
@@ -96,14 +96,5 @@
             self.context.amount_auth - provider_amt - GATEWAY_AMT)
         # Interswitch amount is not part of the xml data
-        if not self.context.p_item == 'Balance' \
-            and self.context.p_category == 'schoolfee':
-            xmldict['institution_amt'] -= 200000
-            xmltext = """<payment_item_detail>
-<item_details detail_ref="%(detail_ref)s" college="%(institution_name)s" department="%(department)s" faculty="%(faculty)s">
-<item_detail item_id="1" item_name="%(institution_item_name)s" item_amt="%(institution_amt)d" bank_id="%(institution_bank_id)s" acct_num="%(institution_acct)s" />
-<item_detail item_id="2" item_name="Student Union Dues" item_amt="200000" bank_id="121" acct_num="0066437412" />
-</item_details>
-</payment_item_detail>""" % xmldict
-        elif provider_amt == 0:
+        if provider_amt == 0:
             xmltext = """<payment_item_detail>
 <item_details detail_ref="%(detail_ref)s" college="%(institution_name)s" department="%(department)s" faculty="%(faculty)s">
Index: main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py
===================================================================
--- main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py	(revision 15104)
+++ main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/interswitch/tests.py	(revision 15105)
@@ -105,8 +105,5 @@
             self.browser.contents)
         self.assertTrue(
-            'item_name="Tuition/Exams Fee and Student Union Dues" item_amt="3775000" bank_id="121" acct_num="0068241848"' in
-            self.browser.contents)
-        self.assertTrue(
-            'item_name="Student Union Dues" item_amt="200000" bank_id="121" acct_num="0066437412"' in
+            'item_name="Tuition/Exams Fee" item_amt="3975000" bank_id="121" acct_num="0068241848"' in
             self.browser.contents)
         # Clearance Fee
Index: main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/utils.py
===================================================================
--- main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/utils.py	(revision 15104)
+++ main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/students/utils.py	(revision 15105)
@@ -228,4 +228,6 @@
         elif category == 'late_registration':
             amount = academic_session.late_registration_fee
+        elif category == 'union':
+            amount = academic_session.union_fee
         if amount in (0.0, None):
             return _('Amount could not be determined.'), None
Index: main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/utils/utils.py
===================================================================
--- main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/utils/utils.py	(revision 15104)
+++ main/kofacustom.edopoly/trunk/src/kofacustom/edopoly/utils/utils.py	(revision 15105)
@@ -35,5 +35,5 @@
 
     PAYMENT_CATEGORIES = {
-        'schoolfee': 'Tuition/Exams Fee and Student Union Dues',
+        'schoolfee': 'Tuition/Exams Fee',
         'clearance': 'Acceptance Fee',
         'bed_allocation': 'Accommodation Booking Fee',
@@ -48,4 +48,5 @@
         'late_registration': 'Late Course Registration Fee',
         'final_clearance': 'Final Clearance Fee',
+        'union': 'Student Union Dues',
         }
 
@@ -53,5 +54,5 @@
 
     BALANCE_PAYMENT_CATEGORIES = {
-        'schoolfee': 'Tuition/Exams Fee and Student Union Dues',
+        'schoolfee': 'Tuition/Exams Fee',
         'ict_entre': 'ICT and Entrepreneur Fee',
         'certificate_confirm': 'Certificate Confirmation Fee',
@@ -70,4 +71,5 @@
         'late_registration': 'Late Course Registr. Fee',
         'final_clearance': 'Final Clearance Fee',
+        'union': 'Student Union Dues',
         }
 
