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 16891)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_browser.py	(revision 16899)
@@ -129,16 +129,16 @@
         self.assertMatches('...ticket created...',
                            self.browser.contents)
-        self.certificate.study_mode = 'nce_sw'
-        self.browser.open(self.payments_path + '/addop')
-        self.browser.getControl(name="form.p_category").value = ['third_semester']
-        self.browser.getControl("Create ticket").click()
-        self.assertMatches('...could not be determined...',
-                           self.browser.contents)
-        self.certificate.study_mode = 'nce_ft'
-        self.browser.open(self.payments_path + '/addop')
-        self.browser.getControl(name="form.p_category").value = ['third_semester']
-        self.student['studycourse'].current_level = 300
-        self.browser.getControl("Create ticket").click()
-        self.assertMatches('...Make NCE 3 school fee payment first...', self.browser.contents)
+        #self.certificate.study_mode = 'nce_sw'
+        #self.browser.open(self.payments_path + '/addop')
+        #self.browser.getControl(name="form.p_category").value = ['third_semester']
+        #self.browser.getControl("Create ticket").click()
+        #self.assertMatches('...could not be determined...',
+        #                   self.browser.contents)
+        #self.certificate.study_mode = 'nce_ft'
+        #self.browser.open(self.payments_path + '/addop')
+        #self.browser.getControl(name="form.p_category").value = ['third_semester']
+        #self.student['studycourse'].current_level = 300
+        #self.browser.getControl("Create ticket").click()
+        #self.assertMatches('...Amount could not be determined...', self.browser.contents)
         self.browser.open(self.payments_path + '/addop')
         self.browser.getControl(
@@ -290,27 +290,27 @@
         self.assertEqual(error, None)
 
-        error, payment = utils.setPaymentDetails('third_semester',self.student)
-        self.assertEqual(error, u'Amount could not be determined.')
-        self.student['studycourse'].current_level = 300
-        error, payment = utils.setPaymentDetails('third_semester',self.student)
-        self.assertEqual(error, u'Make NCE 3 school fee payment first.')
-        payment = createObject('waeup.StudentOnlinePayment')
-        payment.p_category = u'schoolfee'
-        payment.p_session = self.student.current_session
-        payment.p_item = u'My Certificate'
-        payment.p_id = u'anyid'
-        self.student['payments']['anykey'] = payment
-        payment.p_state = 'paid'
-        payment.p_level = 300
-        error, payment = utils.setPaymentDetails('third_semester',self.student)
-        self.assertEqual(payment.p_level, 300)
-        self.assertEqual(payment.p_session, 2004)
-        self.assertEqual(payment.amount_auth, 7938)
-        self.assertEqual(payment.p_item, u'')
-        self.assertEqual(error, None)
+        #error, payment = utils.setPaymentDetails('third_semester',self.student)
+        #self.assertEqual(error, u'Amount could not be determined.')
+        #self.student['studycourse'].current_level = 300
+        #error, payment = utils.setPaymentDetails('third_semester',self.student)
+        #self.assertEqual(error, u'Amount could not be determined.')
+        #payment = createObject('waeup.StudentOnlinePayment')
+        #payment.p_category = u'schoolfee'
+        #payment.p_session = self.student.current_session
+        #payment.p_item = u'My Certificate'
+        #payment.p_id = u'anyid'
+        #self.student['payments']['anykey'] = payment
+        #payment.p_state = 'paid'
+        #payment.p_level = 300
+        #error, payment = utils.setPaymentDetails('third_semester',self.student)
+        #self.assertEqual(payment.p_level, 300)
+        #self.assertEqual(payment.p_session, 2004)
+        #self.assertEqual(payment.amount_auth, 7938)
+        #self.assertEqual(payment.p_item, u'')
+        #self.assertEqual(error, None)
 
         self.certificate.study_mode = u'nce_sw'
         error, payment = utils.setPaymentDetails('hostel_maintenance',self.student)
-        self.assertEqual(payment.p_level, 300)
+        self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
         self.assertEqual(payment.amount_auth, 547.5)  # 62.5% * 876
@@ -319,5 +319,5 @@
 
         error, payment = utils.setPaymentDetails('bed_allocation',self.student)
-        self.assertEqual(payment.p_level, 300)
+        self.assertEqual(payment.p_level, 100)
         self.assertEqual(payment.p_session, 2004)
         self.assertEqual(payment.amount_auth, 150)
Index: main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py
===================================================================
--- main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py	(revision 16891)
+++ main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py	(revision 16899)
@@ -72,12 +72,12 @@
         return new_session, new_level
 
-    def _nce3PaymentMade(self, student, p_level):
-        if len(student['payments']):
-            for ticket in student['payments'].values():
-                if ticket.p_state in ('paid', 'scholarship', 'waived') and \
-                    ticket.p_level == p_level and \
-                    ticket.p_category == 'schoolfee':
-                    return True
-        return False
+    #def _nce3PaymentMade(self, student, p_level):
+    #    if len(student['payments']):
+    #        for ticket in student['payments'].values():
+    #            if ticket.p_state in ('paid', 'scholarship', 'waived') and \
+    #                ticket.p_level == p_level and \
+    #                ticket.p_category == 'schoolfee':
+    #                return True
+    #    return False
 
     def setPaymentDetails(self, category, student,
@@ -126,17 +126,13 @@
             if student.state not in (ADMITTED, CLEARANCE, REQUESTED, CLEARED):
                 return _(u'Acceptance Fee payments not allowed.'), None
-        elif category == 'third_semester' and student.current_mode == 'nce_ft' \
-            and p_level in (300, 310, 320, 400, 410, 420):
-            if not self._nce3PaymentMade(student, p_level):
-                return _(u'Make NCE 3 school fee payment first.'), None
-            if student.depcode in ARTS:
-                amount = 7688.0
-            else:
-                amount = 7938.0
-            no_additional_courses = 0
-            courses_level = student['studycourse'].get(str(p_level))
-            if courses_level and len(courses_level)> 6:
-                no_additional_courses = len(courses_level)-6
-                amount += 2000.0 * no_additional_courses
+        #elif category == 'third_semester' and student.current_mode == 'nce_ft' \
+        #    and p_level in (300, 310, 320, 400, 410, 420):
+        #    #if not self._nce3PaymentMade(student, p_level):
+        #    #    return _(u'Make NCE 3 school fee payment first.'), None
+        #    no_additional_courses = 0
+        #    courses_level = student['studycourse'].get(str(p_level))
+        #    if courses_level and len(courses_level)> 6:
+        #        no_additional_courses = len(courses_level)-6
+        #        amount = 2000.0 * no_additional_courses
         elif category.startswith('schoolfee'):
             if category == 'schoolfee_pde1':
@@ -145,4 +141,8 @@
                 if student.state != CLEARED:
                         return _('You are not a fresh student.'), None
+            if category == 'schoolfee_third':
+                if not student.current_mode == 'nce_ft' \
+                    or not p_level in (300, 310, 320, 400, 410, 420):
+                    return _('You are not an NCE 3 student.'), None
             p_item =  student.certcode
             if not p_item:
@@ -211,4 +211,7 @@
                     else:
                         amount = 25000
+                # NCE III third semester
+                elif category == 'schoolfee_third':
+                    amount = 7000
                 # NCE III
                 elif student.current_level in (200, 210, 220):
