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 = {} |
---|
16 | d['all'] = 0 |
---|
17 | |
---|
18 | MPA = ('MPAPT','MEMPT','MMPPT') |
---|
19 | i2_states = ('school_fee_paid','courses_registered','courses_validated',) |
---|
20 | |
---|
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'] = 35000 |
---|
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 |
---|
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 |
---|
41 | if str(brain.level) == '700': # only 700 fresh |
---|
42 | d['all'] = 75000 |
---|
43 | elif brain.session in ('06',) and brain.review_state == 'returning': |
---|
44 | if brain.mode == 'dp_pt': |
---|
45 | d['all'] = 35000 |
---|
46 | elif brain.mode == 'ug_pt': |
---|
47 | d['all'] = 45000 |
---|
48 | elif brain.mode == 'pg_pt': |
---|
49 | if str(brain.level) == '600' and brain.verdict == 'C': # 600 repeaters |
---|
50 | d['all'] = 55000 |
---|
51 | elif str(brain.level) == '600': # going to register for 700 |
---|
52 | d['all'] = 75000 |
---|
53 | else: |
---|
54 | d['all'] = 65000 |
---|
55 | |
---|
56 | elif brain.session in ('07','08','09','10','11','12','13'): |
---|
57 | if brain.mode == 'dp_pt': |
---|
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'] = 30000 |
---|
64 | elif brain.review_state in i2_states and instalment == '2': |
---|
65 | d['all'] = 20000 |
---|
66 | if brain.mode == 'ug_pt': |
---|
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' and brain.entry_session in ('05','06','07',): |
---|
72 | d['all'] = 20000 |
---|
73 | elif brain.review_state == 'returning' and instalment == '1': |
---|
74 | d['all'] = 40000 |
---|
75 | if brain.mode == 'pg_pt': |
---|
76 | # 600 level students (no returning studentsor repeaters) |
---|
77 | if brain.review_state == 'cleared_and_validated' and str(brain.level) in ('600',) and instalment == '1': |
---|
78 | d['all'] = 65000 |
---|
79 | elif brain.review_state in i2_states and str(brain.level) in ('600',) and instalment == '2': |
---|
80 | d['all'] = 50000 |
---|
81 | # 700 level students, two different certificate groups, 700 level repeaters and 700 level returning students exist |
---|
82 | # MPA students |
---|
83 | elif brain.review_state == 'cleared_and_validated' and str(brain.level) in ('700',) and instalment == '1' and brain.course in MPA: |
---|
84 | d['all'] = 85000 |
---|
85 | elif brain.review_state in i2_states and str(brain.level) in ('700',) and instalment == '2' and brain.course in MPA: |
---|
86 | d['all'] = 80000 |
---|
87 | # non-MPA students |
---|
88 | elif brain.review_state == 'cleared_and_validated' and str(brain.level) in ('700',) and instalment == '1': |
---|
89 | d['all'] = 100000 |
---|
90 | elif brain.review_state in i2_states and str(brain.level) in ('700',) and instalment == '2': |
---|
91 | d['all'] = 80000 |
---|
92 | # 700 level returning students MPA and non-MPA with entry session 05 or 06 |
---|
93 | elif brain.review_state == 'returning' and instalment == '1' and brain.entry_session in ('05','06','07',): # returning 700 to 800 level |
---|
94 | d['all'] = 35000 |
---|
95 | elif brain.review_state in i2_states and instalment == '2' and brain.entry_session in ('05','06','07',): |
---|
96 | d['all'] = 30000 |
---|
97 | # 700 level returning students MPA |
---|
98 | elif brain.review_state == 'returning' and instalment == '1' and brain.course in MPA: |
---|
99 | d['all'] = 80000 |
---|
100 | elif brain.review_state in i2_states and instalment == '2' and brain.course in MPA: |
---|
101 | d['all'] = 75000 |
---|
102 | # 700 level returning students non-MPA |
---|
103 | elif brain.review_state == 'returning' and instalment == '1': |
---|
104 | d['all'] = 95000 |
---|
105 | elif brain.review_state in i2_states and instalment == '2': |
---|
106 | d['all'] = 75000 |
---|
107 | |
---|
108 | |
---|
109 | next_info = context.getNextInfo(brain) |
---|
110 | next_session_str = next_info['next_session_str'] |
---|
111 | d['next_session_id'] = next_info['next_session_id'] |
---|
112 | d['description'] = "School Fee for Session %s" % next_session_str |
---|
113 | |
---|
114 | return d |
---|
115 | |
---|