Index: main/kofacustom.edocons/trunk/src/kofacustom/edocons/students/utils.py
===================================================================
--- main/kofacustom.edocons/trunk/src/kofacustom/edocons/students/utils.py	(revision 16702)
+++ main/kofacustom.edocons/trunk/src/kofacustom/edocons/students/utils.py	(revision 16704)
@@ -70,34 +70,36 @@
                 # workflow states.  Fresh students are excluded by the
                 # update method of the PreviousPaymentAddFormPage.
-                if previous_level == 100:
-                    amount = getattr(certificate, 'school_fee_1', 0.0)
+                amount = getattr(certificate, 'school_fee_1', 0.0)
+            else:
+                if category == 'secondinstal':
+                    amount = 0.4 * getattr(certificate, 'school_fee_1', 0.0)
                 else:
-                    amount = getattr(certificate, 'school_fee_2', 0.0)
-            else:
-                if student.state == CLEARED:
-                    amount = getattr(certificate, 'school_fee_1', 0.0)
-                elif student.state == RETURNING:
-                    # In case of returning school fee payment the
-                    # payment session and level contain the values of
-                    # the session the student has paid for. Payment
-                    # session is always next session.
-                    p_session, p_level = self.getReturningData(student)
-                    academic_session = self._getSessionConfiguration(p_session)
-                    if academic_session == None:
-                        return _(
-                            u'Session configuration object is not available.'
-                            ), None
-                    amount = getattr(certificate, 'school_fee_2', 0.0)
-                elif student.is_postgrad and student.state == PAID:
-                    # Returning postgraduate students also pay for the
-                    # next session but their level always remains the
-                    # same.
-                    p_session += 1
-                    academic_session = self._getSessionConfiguration(p_session)
-                    if academic_session == None:
-                        return _(
-                            u'Session configuration object is not available.'
-                            ), None
-                    amount = getattr(certificate, 'school_fee_2', 0.0)
+                    if student.state == CLEARED:
+                        amount = getattr(certificate, 'school_fee_1', 0.0)
+                    elif student.state == RETURNING:
+                        # In case of returning school fee payment the
+                        # payment session and level contain the values of
+                        # the session the student has paid for. Payment
+                        # session is always next session.
+                        p_session, p_level = self.getReturningData(student)
+                        academic_session = self._getSessionConfiguration(p_session)
+                        if academic_session == None:
+                            return _(
+                                u'Session configuration object is not available.'
+                                ), None
+                        amount = getattr(certificate, 'school_fee_1', 0.0)
+                    elif student.is_postgrad and student.state == PAID:
+                        # Returning postgraduate students also pay for the
+                        # next session but their level always remains the
+                        # same.
+                        p_session += 1
+                        academic_session = self._getSessionConfiguration(p_session)
+                        if academic_session == None:
+                            return _(
+                                u'Session configuration object is not available.'
+                                ), None
+                        amount = getattr(certificate, 'school_fee_1', 0.0)
+                    if category == 'schoolfee_1':
+                        amount *= 0.6
         elif category == 'clearance':
             try:
