Index: main/waeup.fceokene/trunk/CHANGES.txt
===================================================================
--- main/waeup.fceokene/trunk/CHANGES.txt	(revision 11913)
+++ main/waeup.fceokene/trunk/CHANGES.txt	(revision 11919)
@@ -4,4 +4,6 @@
 1.2dev (unreleased)
 ===================
+
+* Add new payment category 'third_semester'.
 
 * Make jamb_reg_number a requird field.
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/interfaces.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/interfaces.py	(revision 11913)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/interfaces.py	(revision 11919)
@@ -63,10 +63,4 @@
         )
 
-    third_semester_fee = schema.Float(
-        title = _(u'NCE Third Semester Fee'),
-        default = 0.0,
-        required = False,
-        )
-
     def getSessionString():
         """Returns the session string from the vocabulary.
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/interswitch/browser.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/interswitch/browser.py	(revision 11913)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/interswitch/browser.py	(revision 11919)
@@ -78,5 +78,5 @@
         xmldict['institution_item_name'] = self.category
         xmldict['institution_name'] = INSTITUTION_NAME
-        if self.context.p_category == 'schoolfee':
+        if self.context.p_category in ('schoolfee', 'third_semester'):
             self.pay_item_id = '8302'
             if student.current_mode in ('nce_sw','prence',):
@@ -119,5 +119,5 @@
 
         # Interswitch amount is not part of the xml data
-        if self.context.p_category == 'schoolfee':
+        if self.context.p_category in ('schoolfee', 'third_semester'):
             xmltext = """<payment_item_detail>
 <item_details detail_ref="%(detail_ref)s" college="%(institution_name)s" department="%(department)s" faculty="%(faculty)s">
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/interswitch/tests.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/interswitch/tests.py	(revision 11913)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/interswitch/tests.py	(revision 11919)
@@ -106,4 +106,29 @@
             in self.browser.contents)
 
+        # Third semester payment
+        self.app['configuration']['2004'].third_semester_fee = 10000.0
+        self.browser.open(self.payments_path)
+        self.browser.open(self.payments_path + '/addop')
+        self.browser.getControl(
+            name="form.p_category").value = ['third_semester']
+        self.browser.getControl("Create ticket").click()
+        ctrl = self.browser.getControl(name='val_id')
+        value = ctrl.options[1]
+        self.browser.getLink(value).click()
+        self.browser.getLink("CollegePAY", index=0).click()
+
+        self.assertTrue(
+            '<input type="hidden" name="amount" value="691300" />'
+            in self.browser.contents)
+        self.assertTrue(
+            'item_name="NCE Third Semester Fee" item_amt="376300" bank_id="117" acct_num="1012044015"'
+            in self.browser.contents)
+        self.assertTrue(
+            'item_name="FCEOkene Split" item_amt="140000" bank_id="117" acct_num="1012044039"'
+            in self.browser.contents)
+        self.assertTrue(
+            'item_name="BT Education" item_amt="160000" bank_id="31" acct_num="0026781725"'
+            in self.browser.contents)
+
         # Maintenance fee payment
 
@@ -136,5 +161,5 @@
                            self.browser.contents)
         ctrl = self.browser.getControl(name='val_id')
-        value = ctrl.options[1]
+        value = ctrl.options[2]
         self.browser.getLink(value).click()
         self.assertMatches('...Amount Authorized...',
@@ -192,5 +217,5 @@
                            self.browser.contents)
         ctrl = self.browser.getControl(name='val_id')
-        value = ctrl.options[2]
+        value = ctrl.options[3]
         self.browser.getLink(value).click()
         self.assertMatches('...Amount Authorized...',
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py	(revision 11913)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py	(revision 11919)
@@ -84,5 +84,4 @@
     def test_manage_payments(self):
         # Add missing configuration data
-        self.app['configuration']['2004'].third_semester_fee = 90.0
         self.app['configuration']['2004'].clearance_fee = 120.0
         self.app['configuration']['2004'].booking_fee = 150.0
@@ -214,5 +213,4 @@
 
     def test_set_payment_details(self):
-        self.app['configuration']['2004'].third_semester_fee = 90.0
         self.app['configuration']['2004'].booking_fee = 150.0
         self.app['configuration']['2004'].maint_fee = 180.0
@@ -289,5 +287,5 @@
         self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
-        self.assertEqual(payment.amount_auth, 240.0)
+        self.assertEqual(payment.amount_auth, 6913.0)
         self.assertEqual(payment.p_item, u'')
         self.assertEqual(error, None)
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py	(revision 11913)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py	(revision 11919)
@@ -28,4 +28,13 @@
 from waeup.kofa.students.utils import trans
 from waeup.fceokene.interswitch.browser import GATEWAY_AMT
+
+# Very special school fee configuration, should be moved to
+# a seperate file.
+
+ARTS = ('CRS','ISS','HIS','MUS','ECO','GEO','POL','SOS','CCA','ECU',
+        'THA','GED','GSE','PES','SPC','ENG','FRE','ARB','HAU','IGB',
+        'YOR','NCRS','NISS','NHIS','NMUS','NECO','NGEO','NPOL',
+        'NCCA','NECU','NTHA','NGED','NGSE','NPES','NSPC','NENG',
+        'NFRE','NARB','NHAU','NIGB','NYOR','NSOS')
 
 class CustomStudentsUtils(NigeriaStudentsUtils):
@@ -139,5 +148,8 @@
                 return _('Study course data are incomplete.'), None
         elif category == 'third_semester' and student.current_mode == 'nce_ft':
-            amount = academic_session.third_semester_fee
+            if student.depcode in ARTS:
+                amount = 5835
+            else:
+                amount = 6763
         elif category == 'schoolfee':
             try:
@@ -146,13 +158,4 @@
             except (AttributeError, TypeError):
                 return _('Study course data are incomplete.'), None
-
-            # Very special school fee configuration, should be moved to
-            # a seperate file.
-
-            ARTS = ('CRS','ISS','HIS','MUS','ECO','GEO','POL','SOS','CCA','ECU',
-                    'THA','GED','GSE','PES','SPC','ENG','FRE','ARB','HAU','IGB',
-                    'YOR','NCRS','NISS','NHIS','NMUS','NECO','NGEO','NPOL',
-                    'NCCA','NECU','NTHA','NGED','NGSE','NPES','NSPC','NENG',
-                    'NFRE','NARB','NHAU','NIGB','NYOR','NSOS')
 
             if student.state not in (CLEARED, RETURNING):
