[5164] | 1 | ## Script (Python) "getSchoolFee"
|
---|
| 2 | ##bind container=container
|
---|
| 3 | ##bind context=context
|
---|
| 4 | ##bind namespace=
|
---|
| 5 | ##bind script=script
|
---|
| 6 | ##bind subpath=traverse_subpath
|
---|
| 7 | ##parameters=brain=None,instalment='0'
|
---|
| 8 | ##title=
|
---|
| 9 | ##
|
---|
| 10 | # $Id: getSchoolFee.py 2534 2007-11-05 06:37:12Z henrik $
|
---|
| 11 | """
|
---|
| 12 | return SchoolFee
|
---|
| 13 | """
|
---|
| 14 |
|
---|
| 15 | d = {}
|
---|
[5172] | 16 | d['all'] = 0
|
---|
[5164] | 17 |
|
---|
[5172] | 18 | MPA = ('MPAPT','MEMPT','MMPPT')
|
---|
[5175] | 19 | i2_states = ('school_fee_paid','courses_registered','courses_validated',)
|
---|
[5172] | 20 |
|
---|
[5164] | 21 | if brain.mode == 'ug_sw': # ug_sw students payment does not depend on the current session
|
---|
| 22 | if str(brain.level) in ('100','200',) and brain.review_state == 'cleared_and_validated':
|
---|
| 23 | d['all'] = 45000
|
---|
| 24 | elif str(brain.level) in ('100',): #200 returning students
|
---|
| 25 | d['all'] = 45000
|
---|
| 26 | else:
|
---|
| 27 | d['all'] = 35000
|
---|
| 28 | elif brain.mode == 'pg_sw':
|
---|
| 29 | if str(brain.level) == '600' and brain.review_state == 'cleared_and_validated': # only 600 fresh
|
---|
| 30 | d['all'] = 65000
|
---|
| 31 | else:
|
---|
| 32 | d['all'] = 80000
|
---|
[5171] | 33 | elif brain.session in ('06','07',) and brain.review_state == 'cleared_and_validated':
|
---|
| 34 | if brain.mode == 'dp_pt' and str(brain.level) in ('100',):
|
---|
| 35 | d['all'] = 40000
|
---|
| 36 | elif brain.mode == 'ug_pt' and str(brain.level) in ('100','200',):
|
---|
| 37 | d['all'] = 50000
|
---|
| 38 | elif brain.mode == 'pg_pt':
|
---|
| 39 | if str(brain.level) == '600': # only 600 fresh
|
---|
| 40 | d['all'] = 60000
|
---|
[5176] | 41 | if str(brain.level) == '700': # only 700 fresh
|
---|
| 42 | d['all'] = 75000
|
---|
[5171] | 43 | elif brain.session in ('06',) and brain.review_state == 'returning':
|
---|
[5164] | 44 | if brain.mode == 'dp_pt':
|
---|
[5171] | 45 | d['all'] = 35000
|
---|
[5164] | 46 | elif brain.mode == 'ug_pt':
|
---|
[5171] | 47 | d['all'] = 45000
|
---|
[5164] | 48 | elif brain.mode == 'pg_pt':
|
---|
[5171] | 49 | if str(brain.level) == '600' and brain.verdict == 'C': # 600 repeaters
|
---|
[5164] | 50 | d['all'] = 55000
|
---|
[5171] | 51 | elif str(brain.level) == '600': # going to register for 700
|
---|
[5164] | 52 | d['all'] = 75000
|
---|
| 53 | else:
|
---|
| 54 | d['all'] = 65000
|
---|
[5171] | 55 |
|
---|
[5172] | 56 | elif brain.session in ('07','08','09',):
|
---|
| 57 | if brain.mode == 'dp_pt':
|
---|
[5175] | 58 | if brain.review_state == 'cleared_and_validated' and str(brain.level) in ('100',) and instalment == '1':
|
---|
| 59 | d['all'] = 35000
|
---|
| 60 | elif brain.review_state in i2_states and str(brain.level) in ('100',) and instalment == '2':
|
---|
| 61 | d['all'] = 20000
|
---|
| 62 | elif brain.review_state == 'returning' and instalment == '1':
|
---|
| 63 | d['all'] = 25000
|
---|
| 64 | elif brain.review_state in i2_states and instalment == '2':
|
---|
| 65 | d['all'] = 10000
|
---|
[5172] | 66 | if brain.mode == 'ug_pt':
|
---|
[5175] | 67 | if brain.review_state == 'cleared_and_validated' and str(brain.level) in ('100','200') and instalment == '1':
|
---|
| 68 | d['all'] = 45000
|
---|
| 69 | elif brain.review_state in i2_states and instalment == '2': # 2nd instalment applies to both 200 de fresh and 200 returning
|
---|
| 70 | d['all'] = 25000
|
---|
| 71 | elif brain.review_state == 'returning' and instalment == '1':
|
---|
| 72 | d['all'] = 20000
|
---|
[5172] | 73 | if brain.mode == 'pg_pt':
|
---|
[5175] | 74 | # 600 level students (no returning studentsor repeaters)
|
---|
| 75 | if brain.review_state == 'cleared_and_validated' and str(brain.level) in ('600',) and instalment == '1':
|
---|
| 76 | d['all'] = 65000
|
---|
| 77 | elif brain.review_state in i2_states and str(brain.level) in ('600',) and instalment == '2':
|
---|
| 78 | d['all'] = 50000
|
---|
| 79 | # 700 level students, two different certificate groups, 700 level repeaters and 700 level returning students exist
|
---|
| 80 | # MPA students
|
---|
| 81 | elif brain.review_state == 'cleared_and_validated' and str(brain.level) in ('700',) and instalment == '1' and brain.course in MPA:
|
---|
| 82 | d['all'] = 85000
|
---|
| 83 | elif brain.review_state in i2_states and str(brain.level) in ('700',) and instalment == '2' and brain.course in MPA:
|
---|
| 84 | d['all'] = 80000
|
---|
| 85 | # non-MPA students
|
---|
| 86 | elif brain.review_state == 'cleared_and_validated' and str(brain.level) in ('700',) and instalment == '1':
|
---|
| 87 | d['all'] = 100000
|
---|
| 88 | elif brain.review_state in i2_states and str(brain.level) in ('700',) and instalment == '2':
|
---|
| 89 | d['all'] = 80000
|
---|
| 90 | # 700 level returning students
|
---|
| 91 | elif brain.review_state == 'returning' and instalment == '1':
|
---|
| 92 | d['all'] = 35000
|
---|
| 93 | elif brain.review_state in i2_states and instalment == '2':
|
---|
| 94 | d['all'] = 30000
|
---|
[5164] | 95 |
|
---|
[5175] | 96 |
|
---|
[5164] | 97 | next_info = context.getNextInfo(brain)
|
---|
| 98 | next_session_str = next_info['next_session_str']
|
---|
| 99 | d['next_session_id'] = next_info['next_session_id']
|
---|
| 100 | d['description'] = "School Fee for Session %s" % next_session_str
|
---|
| 101 |
|
---|
| 102 | return d
|
---|