source: main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/utils/utils.py @ 17800

Last change on this file since 17800 was 17800, checked in by Henrik Bettermann, 4 months ago

Enable combo payments.

  • Property svn:keywords set to Id
File size: 13.8 KB
Line 
1## $Id: utils.py 17800 2024-05-22 13:42:49Z henrik $
2##
3## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
4## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
6## the Free Software Foundation; either version 2 of the License, or
7## (at your option) any later version.
8##
9## This program is distributed in the hope that it will be useful,
10## but WITHOUT ANY WARRANTY; without even the implied warranty of
11## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12## GNU General Public License for more details.
13##
14## You should have received a copy of the GNU General Public License
15## along with this program; if not, write to the Free Software
16## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17##
18"""Customize general helper utilities for Kofa.
19"""
20
21import grok
22from copy import deepcopy
23from kofacustom.nigeria.utils.utils import NigeriaKofaUtils
24
25class CustomKofaUtils(NigeriaKofaUtils):
26    """A collection of methods subject to customization.
27    """
28
29    PAYMENT_CATEGORIES = {
30        'schoolfee': 'Tuition Plus (total amount)',
31        'schoolfee40': 'Tuition Plus (40% - 1st instalment)',
32        'secondinstal': 'Tuition Plus (60% - 2nd instalment)',
33        'clearance': 'Acceptance Fee',
34        'grad_clearance': 'Clearance Fee',
35        'registration': 'Registration Fee',
36        #'bed_allocation': 'Bed Allocation Fee',
37        #'hostel_maintenance': 'Accommodation',
38        #'transfer': 'Transfer Fee',
39        #'gown': 'Gown Hire Fee',
40        'application': 'Application Fee',
41        'pg_application': 'PG Application Fee',
42        'app_balance': 'Application Fee Balance',
43        'transcript': 'Transcript Fee',
44        'transcript_local': 'Transcript Fee Local',
45        'transcript_overseas': 'Transcript Fee Oversea',
46        'late_registration': 'Late Registration Fee',
47        'science': 'Science Bench Fee',
48        'clinical': 'Clinical Fee (Medical Students)',
49        'develop': 'Development Fee',
50        'municipal_fresh': 'Municipal Fee (Fresh Students)',
51        'municipal_returning': 'Municipal Fee (Returning Students)',
52        'alumni': 'Alumni Fee',
53        'conv': 'Convocation Fee',
54        'matric': 'Matriculation Fee',
55        'waecneco': 'WAEC/NECO Verification',
56        'jambver': 'JAMB Verification',
57        'book': 'Book Deposit',
58        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
59        'pharmlab': 'Pharmacy Lab Support Fee',
60        'lo_ident': 'Letter of Identification Fee',
61        'change_course': 'Change of Course Fee',
62        'make_up': 'Make-up Fee',
63        'iuits': 'IUITS Fee',
64        'fine': 'Fine',
65        'combi': 'Combi Payment',
66        'resit1': '1 Make-Up Examination Course',
67        'resit2': '2 Make-Up Examination Courses',
68        'resit3': '3 Make-Up Examination Courses',
69        'resit4': '4 Make-Up Examination Courses',
70        'resit5': '5 Make-Up Examination Courses',
71        'resit6': '6 Make-Up Examination Courses',
72        'resit7': '7 Make-Up Examination Courses',
73        'resit8': '8 Make-Up Examination Courses',
74        'resit9': '9 Make-Up Examination Courses',
75        'makeup_admin': 'Make-Up Registration Fee',
76        'id_card': 'Student ID Card',
77        'required_combi': 'Required Combi Payment',
78        'pg_other': 'PG Other Charges',
79        'jupeb_form':'JUPEB Form Fee',
80        'jupeb_acc':'JUPEB Acceptance Fee',
81        'jupeb_reg':'JUPEB Administrative Fee',
82        'jupeb_sci':'JUPEB Tuition (Science)',
83        'jupeb_arts':'JUPEB Tuition (Arts)',
84        'jupeb_hostel':'JUPEB Accommodation (optional)',
85        'brought_fwd': 'Balance Brought Forward',
86        'health_insurance': 'Student Health Insurance',
87        # CDL Portal Fees only
88        'medical':'Medical Services',
89        'library':'Library',
90        'ict':'ICT Fees',
91        'orientation':'Orientation Fee',
92        'examination':'Examination Fee',
93        'cdlcourse1': ' 1 Course',
94        'cdlcourse2': ' 2 Courses',
95        'cdlcourse3': ' 3 Courses',
96        'cdlcourse4': ' 4 Courses',
97        'cdlcourse5': ' 5 Courses',
98        'cdlcourse6': ' 6 Courses',
99        'cdlcourse7': ' 7 Courses',
100        'cdlcourse8': ' 8 Courses',
101        'cdlcourse9': ' 9 Courses',
102        'cdlcourse10': '10 Courses',
103        'cdlcourse11': '11 Courses',
104        'cdlcourse12': '12 Courses',
105        'cdlcourse13': '13 Courses',
106        'cdlcourse14': '14 Courses',
107        'cdlcourse15': '15 Courses',
108        }
109
110    SELECTABLE_PAYMENT_CATEGORIES = {
111        'schoolfee': 'Tuition Plus (total amount)',
112        'schoolfee40': 'Tuition Plus (40% - 1st instalment)',
113        'secondinstal': 'Tuition Plus (60% - 2nd instalment)',
114        'registration': 'Registration Fee',
115        'clearance': 'Acceptance Fee',
116        'grad_clearance': 'Clearance Fee',
117        #'bed_allocation': 'Bed Allocation Fee',
118        #'hostel_maintenance': 'Accommodation',
119        #'transfer': 'Transfer Fee',
120        #'gown': 'Gown Hire Fee',
121        'application': 'Application Fee',
122        'pg_application': 'PG Application Fee',
123        #'app_balance': 'Application Fee Balance',
124        'transcript_local': 'Transcript Fee (Local Students)',
125        'transcript_overseas': 'Transcript Fee (Oversea Students)',
126        'late_registration': 'Late Registration Fee',
127        'science': 'Science Bench Fee',
128        'clinical': 'Clinical Fee (Medical Students)',
129        'develop': 'Development Fee',
130        'municipal_fresh': 'Municipal Fee (Fresh Students)',
131        'municipal_returning': 'Municipal Fee (Returning Students)',
132        'alumni': 'Alumni Fee',
133        'conv': 'Convocation Fee',
134        'matric': 'Matriculation Fee',
135        'waecneco': 'WAEC/NECO Verification',
136        'jambver': 'JAMB Verification',
137        'book': 'Book Deposit',
138        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
139        'pharmlab': 'Pharmacy Lab Support Fee',
140        'lo_ident': 'Letter of Identification Fee',
141        'change_course': 'Change of Course Fee',
142        #'make_up': 'Make-up Fee',
143        'iuits': 'IUITS Fee',
144        'fine': 'Fine',
145        'combi': 'Combi Payment',
146        #'resit1': '1 Make-Up Examination Course',
147        #'resit2': '2 Make-Up Examination Courses',
148        #'resit3': '3 Make-Up Examination Courses',
149        #'resit4': '4 Make-Up Examination Courses',
150        #'resit5': '5 Make-Up Examination Courses',
151        #'resit6': '6 Make-Up Examination Courses',
152        #'resit7': '7 Make-Up Examination Courses',
153        #'resit8': '8 Make-Up Examination Courses',
154        #'resit9': '9 Make-Up Examination Courses',
155        'makeup_admin': 'Make-Up Registration Fee',
156        'id_card': 'Student ID Card',
157        'required_combi': 'Required Combi Payment',
158        'pg_other': 'PG Other Charges',
159        #'jupeb_form':'JUPEB Form Fee',
160        #'jupeb_acc':'JUPEB Acceptance Fee',
161        #'jupeb_reg':'JUPEB Administrative Fee',
162        'jupeb_sci':'JUPEB Tuition (Science)',
163        'jupeb_arts':'JUPEB Tuition (Arts)',
164        'jupeb_hostel':'JUPEB Accommodation (optional)',
165        'health_insurance': 'Student Health Insurance',
166        }
167
168    CDLPORTAL_PAYMENT_CATEGORIES = {
169        'schoolfee': 'School Fees',
170        'clearance': 'Acceptance Fee',
171        'id_card': 'Student ID Card',
172        'waecneco': 'WAEC/NECO Verification',
173        # CDL Portal fees only
174        'medical':'Medical Services',
175        'library':'Library',
176        'ict':'ICT Fees',
177        'orientation':'Orientation Fee',
178        'examination':'Examination Fee',
179        'cdlcourse1': ' 1 Course',
180        'cdlcourse2': ' 2 Courses',
181        'cdlcourse3': ' 3 Courses',
182        'cdlcourse4': ' 4 Courses',
183        'cdlcourse5': ' 5 Courses',
184        'cdlcourse6': ' 6 Courses',
185        'cdlcourse7': ' 7 Courses',
186        'cdlcourse8': ' 8 Courses',
187        'cdlcourse9': ' 9 Courses',
188        'cdlcourse10': '10 Courses',
189        'cdlcourse11': '11 Courses',
190        'cdlcourse12': '12 Courses',
191        'cdlcourse13': '13 Courses',
192        'cdlcourse14': '14 Courses',
193        'cdlcourse15': '15 Courses',
194        'combi': 'Combi Payment',
195        }
196
197    def selectable_payment_categories(self, student):
198        if grok.getSite().__name__ == 'iuokada-cdl':
199            spc = deepcopy(self.CDLPORTAL_PAYMENT_CATEGORIES)
200            return spc
201        spc = deepcopy(self.SELECTABLE_PAYMENT_CATEGORIES)
202        if student.depcode == 'BMS':
203            del spc['schoolfee40']
204            del spc['secondinstal']
205        return spc
206
207    PREVIOUS_PAYMENT_CATEGORIES = {
208        'schoolfee': 'Tuition, Accommodation, Adm. Charges',
209        'registration': 'Registration Fee',
210        'clearance': 'Acceptance Fee',
211        'grad_clearance': 'Clearance Fee',
212        'application': 'Application Fee',
213        'late_registration': 'Late Registration Fee',
214        'science': 'Science Bench Fee',
215        'clinical': 'Clinical Fee (Medical Students)',
216        'develop': 'Development Fee',
217        'municipal_fresh': 'Municipal Fee (Fresh Students)',
218        'municipal_returning': 'Municipal Fee (Returning Students)',
219        'alumni': 'Alumni Fee',
220        'conv': 'Convocation Fee',
221        'matric': 'Matriculation Fee',
222        'waecneco': 'WAEC/NECO Verification',
223        'jambver': 'JAMB Verification',
224        'book': 'Book Deposit',
225        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
226        'pharmlab': 'Pharmacy Lab Support Fee',
227        'lo_ident': 'Letter of Identification Fee',
228        'change_course': 'Change of Course Fee',
229        'make_up': 'Make-up Fee',
230        'iuits': 'IUITS Fee',
231        'fine': 'Fine',
232        'id_card': 'Student ID Card',
233        'required_combi': 'Required Combi Payment',
234        'pg_other': 'PG Other Charges',
235        #'jupeb_form':'JUPEB Form Fee',
236        #'jupeb_acc':'JUPEB Acceptance Fee',
237        #'jupeb_reg':'JUPEB Administrative Fee',
238        'jupeb_sci':'JUPEB Tuition (Science)',
239        'jupeb_arts':'JUPEB Tuition (Arts)',
240        'jupeb_hostel':'JUPEB Accommodation (optional)',
241        'health_insurance': 'Student Health Insurance',
242        }
243
244    @property
245    def COMBI_PAYMENT_CATEGORIES(self):
246        if grok.getSite().__name__ == 'iuokada-cdl':
247            return self.CDLPORTAL_COMBI_PAYMENT_CATEGORIES
248        return self._COMBI_PAYMENT_CATEGORIES
249
250    CDLPORTAL_COMBI_PAYMENT_CATEGORIES = {
251        'clearance': 'Acceptance Fee',
252        'id_card': 'Student ID Card',
253        'waecneco': 'WAEC/NECO Verification',
254        # CDL Portal fees only
255        'medical':'Medical Services',
256        'library':'Library',
257        'ict':'ICT Fees',
258        'orientation':'Orientation Fee',
259        'examination':'Examination Fee',
260        'cdlcourse1': ' 1 Course',
261        'cdlcourse2': ' 2 Courses',
262        'cdlcourse3': ' 3 Courses',
263        'cdlcourse4': ' 4 Courses',
264        'cdlcourse5': ' 5 Courses',
265        'cdlcourse6': ' 6 Courses',
266        'cdlcourse7': ' 7 Courses',
267        'cdlcourse8': ' 8 Courses',
268        'cdlcourse9': ' 9 Courses',
269        'cdlcourse10': '10 Courses',
270        'cdlcourse11': '11 Courses',
271        'cdlcourse12': '12 Courses',
272        'cdlcourse13': '13 Courses',
273        'cdlcourse14': '14 Courses',
274        'cdlcourse15': '15 Courses',
275        }
276
277    _COMBI_PAYMENT_CATEGORIES = {
278        'registration': 'Registration Fee',
279        'grad_clearance': 'Clearance Fee',
280        'late_registration': 'Late Registration Fee',
281        'science': 'Science Bench Fee',
282        'clinical': 'Clinical Fee (Medical Students)',
283        'develop': 'Development Fee',
284        'municipal_fresh': 'Municipal Fee (Fresh Students)',
285        'municipal_returning': 'Municipal Fee (Returning Students)',
286        'alumni': 'Alumni Fee',
287        'conv': 'Convocation Fee',
288        'matric': 'Matriculation Fee',
289        'waecneco': 'WAEC/NECO Verification',
290        'jambver': 'JAMB Verification',
291        'book': 'Book Deposit',
292        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
293        'pharmlab': 'Pharmacy Lab Support Fee',
294        'lo_ident': 'Letter of Identification Fee',
295        'change_course': 'Change of Course Fee',
296        'make_up': 'Make-up Fee',
297        'iuits': 'IUITS Fee',
298        'fine': 'Fine',
299        'id_card': 'Student ID Card',
300        'pg_other': 'PG Other Charges',
301        'jupeb_form':'JUPEB Form Fee',
302        'jupeb_acc':'JUPEB Acceptance Fee',
303        'jupeb_reg':'JUPEB Administrative Fee',
304        'jupeb_sci':'JUPEB Tuition (Science)',
305        'jupeb_arts':'JUPEB Tuition (Arts)',
306        'jupeb_hostel':'JUPEB Accommodation (optional)',
307        'health_insurance': 'Student Health Insurance',
308        }
309
310    BALANCE_PAYMENT_CATEGORIES = {
311        'schoolfee': 'Tuition, Accommodation, Adm. Charges',
312        }
313
314    @property
315    def PAYMENT_OPTIONS(self):
316        if grok.getSite().__name__ == 'iuokada-cdl':
317            return dict()
318        return self._PAYMENT_OPTIONS
319
320    _PAYMENT_OPTIONS = {
321        'first': 'First Bank Debit Card',
322        'access': 'Access Bank Debit Card',
323        'zenith': 'Zenith Bank Debit Card',
324        'other': 'Other Bank Debit Card',
325        }
326
327    APP_CATS_DICT = {
328        'basic': 'UAS, PUTME, PUDE, PCE, PRENCE',
329        'no': 'No Application',
330        'pg': 'Postgraduate Programmes',
331        'pg2': 'Postgraduate Programmes 2',
332        'pgphd': 'Postgraduate PhD/MPhil',
333        'pre': 'Pre-Degree Studies',
334        'pt': 'Part-Time Degree Programmes',
335        'ut': 'Undergraduate Programmes',
336        'conv': 'HND to BSc Conversion',
337        'odl': 'Open & Distant Learning',
338        }
339
340    STUDY_MODES_DICT = {
341        'ug_ft': 'Undergraduate Full Time',
342        'ug_pt': 'Undergraduate Part Time',
343        'pg_ft': 'Postgraduate Full Time',
344        'pg_pt': 'Postgraduate Part Time',
345        'pgphd': 'Postgraduate PhD/MPhil',
346        'odl': 'Open & Distant Learning',
347        'found': 'Foundation',
348        'no': 'no application',
349        'transfer': 'Transfer',
350        'transferred': 'Transferred',
351        'de': 'Direct Entry',
352        'jupeb': 'JUPEB',
353        }
354
355    #: Maximum size in Bytes of passport images in the applicants and
356    #: students section
357    MAX_PASSPORT_SIZE = 250 * 1024
Note: See TracBrowser for help on using the repository browser.