source: WAeUP_SRP/trunk/skins/waeup_aaua/getSchoolFee.py @ 6290

Last change on this file since 6290 was 5940, checked in by Henrik Bettermann, 14 years ago

Second trial to resolve ticket AAUA #45.

File size: 4.7 KB
RevLine 
[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"""
12return SchoolFee
13"""
14 
15d = {}
[5172]16d['all'] = 0
[5164]17
[5172]18MPA = ('MPAPT','MEMPT','MMPPT')
[5175]19i2_states = ('school_fee_paid','courses_registered','courses_validated',)
[5172]20
[5164]21if 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
[5312]25        d['all'] = 35000
[5164]26    else:
27        d['all'] = 35000
28elif 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]33elif 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]43elif 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       
[5877]56elif brain.session in ('07','08','09','10'):   
[5172]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
[5940]71        elif brain.review_state == 'returning' and instalment == '1' and brain.entry_session in ('05','06','07',):
72            d['all'] = 20000
[5175]73        elif brain.review_state == 'returning' and instalment == '1':
[5938]74            d['all'] = 40000
[5172]75    if brain.mode == 'pg_pt': 
[5175]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       
93        elif brain.review_state == 'returning' and instalment == '1':
94            d['all'] = 35000
95        elif brain.review_state in i2_states and instalment == '2':
96            d['all'] = 30000
[5164]97
[5175]98
[5164]99next_info = context.getNextInfo(brain)
100next_session_str = next_info['next_session_str']
101d['next_session_id'] = next_info['next_session_id']
102d['description'] = "School Fee for Session %s" % next_session_str
103
[5312]104return d
Note: See TracBrowser for help on using the repository browser.