Ignore:
Timestamp:
22 Oct 2011, 07:29:31 (13 years ago)
Author:
Henrik Bettermann
Message:

The customized payment functions can now use the new SessionConfiguration? objects.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.custom/trunk/src/waeup/custom/students/utils.py

    r6902 r6925  
     1from grok import getSite
    12from waeup.sirp.students.vocabularies import academic_sessions_vocab
     3from waeup.sirp.students.workflow import CLEARED, RETURNING
    24
    35def getPaymentDetails(category, student):
    4     p_session = student['studycourse'].current_session
     6
    57    surcharge_1 = surcharge_2 = surcharge_3 = 0
    68    p_item = u''
     9    amount = 0
     10    error = u''
     11    p_session = student['studycourse'].current_session
     12    session = str(p_session)
     13    try:
     14        academic_session = getSite()['configuration'][session]
     15    except KeyError:
     16        error = u'Session configuration object is not available.'
     17        return (amount, p_item, p_session,
     18            surcharge_1, surcharge_2, surcharge_3, error)
    719    if category == 'transfer':
    8         amount = 500
     20        amount = academic_session.transfer
    921    elif category == 'gown':
    10         amount = 500
     22        amount = academic_session.gown
    1123    elif category == 'hostel_maintenance':
    12         amount = 300
     24        amount = academic_session.hostelmaintenance
    1325    elif category == 'schoolfee':
    14         surcharge_1 = 1500 # BT amount
    15         surcharge_2 = 300 # Interswitch amount
     26        surcharge_1 = academic_session.surcharge_1
     27        surcharge_2 = academic_session.surcharge_2
    1628        try:
    1729            amount = getSchoolFee(student, surcharge_1 + surcharge_2)
    1830            code = student['studycourse'].certificate.code
    1931        except AttributeError:
    20             return 0, None, None, 0, 0, 0
     32            return 0, None, None, 0, 0, 0, 'School Fee could not be determined.'
    2133        #session_string = academic_sessions_vocab.by_value[p_session + 1].title
    2234        p_item = code
    2335        p_session += 1
    24     return amount, p_item, p_session, surcharge_1, surcharge_2, surcharge_3
     36    if amount ==0:
     37        error = u'Amount could not be determined.'
     38    return (amount, p_item, p_session,
     39        surcharge_1, surcharge_2, surcharge_3, error)
    2540
    2641def getSchoolFee(student, surcharge):
     
    3146    lga = 'nothing'
    3247    current_level = student['studycourse'].current_level
    33     CLEARED = 'cleared'
    3448
    3549    if study_mode.endswith('_ft'):
    36         # fresh remedial
    37         if current_level == 0 and state == CLEARED:
    38             if entry_mode == 'rmd_ft':
    39                 return 80200 - surcharge
    40             else:
    41                 return 74200 - surcharge
    4250        # fresh
    43         elif state == CLEARED:
    44             if study_mode == 'jm_ft':
    45                 return 72700 - surcharge
    46             elif lga == 'foreigner':
    47                 return 131500 - surcharge
    48             else:
    49                 return 41500 - surcharge
     51        if state == CLEARED:
     52            return 40000 - surcharge
    5053        # returning
    51         elif state == 'returning':
    52             if study_mode == 'jm_ft':
    53                 return 32500 - surcharge
    54             elif lga == 'foreigner':
    55                 return 109500 - surcharge
    56             else:
    57                 return 19500 - surcharge
     54        elif state == RETURNING:
     55            return 20000 - surcharge
    5856        else:
    5957            return 0
Note: See TracChangeset for help on using the changeset viewer.