## Script (Python) "getSchoolFeePrefix" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # $Id: getSchoolFeePrefix.py 5101 2010-03-31 13:16:04Z henrik $ """ return the Prefix for Schoolfee """ if context.portal_membership.isAnonymousUser(): return None try: from Products.zdb import set_trace except: def set_trace(): pass import logging logger = logging.getLogger('Skins.getSchoolFeePrefix') student_id = context.getStudentId() student_record = context.students_catalog(id=student_id)[0] FRNART = ( "BADTSW", "BAEDEDO", "BAEDEL", "BAEDENG", "BAEDFAA", "BAEDFRC", "BAEDHIS", "BBEDSW", "BECOSW", "BEDADT", "BEMGTSW", "BENLSW", "BGEOSW", "BHISSW", "BPOLSW", "BSCEDAC", "BSCEDAP", "BSCEDB", "BSCEDBE", "BSCEDE", "BSCEDECO", "BSCEDES", "BSCEDG", "BSCEDGEO", "BSCEDGR", "BSCEDPOL", "BSCEDPS", "BSCEDSE", "BSCEDSOC", "BSCEDSS", "BSSTSW", "DAED", ) FRNSCI = ( "BAGRSW", "BBIOSW", "BCHESW", "BCSCSW", "BHECSW", "BHEDSW", "BISCSW", "BITESW", "BSCEDAG", "BSCEDBC", "BSCEDC", "BSCEDCO", "BSCEDEE", "BSCEDEM", "BSCEDEV", "BSCEDHE", "BSCEDHK", "BSCEDHM", "BSCEDIS", "BSCEDM", "BSCEDME", "BSCEDP", "BSCEDPE", "BSCEDTE", "BSCEDWB", "DHT", ) FRNART_FACULTY = ( "ART", "LAW", "SSC", "MGS", ) FRNSCI_FACULTY = ( "ENG", "LSC", "PSC", "BMS", "MED", "DEN", "PHA", "AGR", ) if student_record.lga == 'foreigner': if student_record.course in FRNART: prefix = 'FRNART' elif student_record.course in FRNSCI: prefix = 'FRNSCI' elif student_record.faculty in FRNART_FACULTY: prefix = 'FRNART' elif student_record.faculty in FRNSCI_FACULTY: prefix = 'FRNSCI' else: logger.info('%s, foreign student course %s not categorized' % (student_id,student_record.faculty)) prefix = "--" return prefix if student_record.review_state == 'cleared_and_validated': prefix = prefix + 'NEW' return prefix res = context.certificates_catalog(code = student_record.course) if not res: logger.info('%s, certificate %s not found' % (student_id,student_record.course)) prefix = "--" else: prefix = res[0].school_fee_code if not prefix or prefix == 'none': prefix = res[0].faculty if student_record.review_state == 'cleared_and_validated': prefix = prefix + 'NEW' return prefix