Ignore:
Timestamp:
21 Feb 2017, 06:46:42 (8 years ago)
Author:
Henrik Bettermann
Message:

Add level specific penalty fees.

Location:
main/waeup.fceokene/trunk/src/waeup/fceokene/students
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.fceokene/trunk/src/waeup/fceokene/students/tests/test_utils.py

    r14556 r14566  
    4747        self.certificate.end_level = 300
    4848        self.student['studycourse'].current_verdict = 'B'
    49         self.student['studycourse'].current_level = 300
     49        self.student['studycourse'].current_level = 200
    5050        configuration = createObject('waeup.SessionConfiguration')
    5151        configuration.academic_session = 2005
    5252        self.app['configuration'].addSessionConfiguration(configuration)
    53         self.app['configuration']['2005'].penalty_nce_ft = 99.0
     53        self.app['configuration']['2005'].penalty_nce3_ft = 99.0
    5454        self.student['studycourse'].certificate.study_mode = 'nce_ft'
    5555        utils = getUtility(IStudentsUtils)
     
    5757        IWorkflowState(self.student).setState('returning')
    5858        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    59         self.assertEqual(payment.amount_auth, 12224.0) # 11975 + 150 + 99
     59        self.assertEqual(payment.amount_auth, 14124.0) # 13875 + 150 + 99
    6060        self.student['studycourse'].previous_verdict = 'O'
    6161        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    62         self.assertEqual(payment.amount_auth, 12125.0) # 11975 + 150
     62        self.assertEqual(payment.amount_auth, 14025.0) # 13875 + 150
    6363        return
  • main/waeup.fceokene/trunk/src/waeup/fceokene/students/utils.py

    r14556 r14566  
    277277        if amount in (0.0, None):
    278278            return _(u'Amount could not be determined.'), None
    279         # Add session specific penalty fee.
     279
     280        # Add session and level specific penalty fee.
    280281        if category == 'schoolfee' and student.current_mode in (
    281282            'ug_ft', 'de_ft'):
     
    283284        elif category == 'schoolfee' and student.current_mode in (
    284285            'nce_ft',) and student['studycourse'].previous_verdict != 'O':
    285             amount += academic_session.penalty_nce_ft
     286            # NCE I fresh
     287            if student.current_level == 100 and student.state == CLEARED:
     288                amount += academic_session.penalty_nce1_ft
     289            # NCE II
     290            elif student.current_level in (100, 110, 120) and \
     291                student.state == RETURNING:
     292                amount += academic_session.penalty_nce2_ft
     293            # NCE III (except repeaters and spillovers)
     294            elif student.current_level in (200, 210, 220):
     295                amount += academic_session.penalty_nce3_ft
    286296        elif category == 'schoolfee' and student.current_mode in (
    287297            'nce_sw', 'nce_pt'):
    288             amount += academic_session.penalty_nce_pt
     298            # NCE I fresh
     299            if student.current_level == 100 and student.state == CLEARED:
     300                amount += academic_session.penalty_nce1_pt
     301            # NCE II
     302            elif student.current_level in (100, 110, 120) and \
     303                student.state == RETURNING:
     304                amount += academic_session.penalty_nce2_pt
     305            # NCE III (except repeaters and spillovers)
     306            elif student.current_level in (200, 210, 220):
     307                amount += academic_session.penalty_nce3_pt
    289308        elif category == 'schoolfee' and student.current_mode in ('prence',):
    290309            amount += academic_session.penalty_prence
Note: See TracChangeset for help on using the changeset viewer.