## $Id: utils.py 16747 2022-01-11 08:47:44Z henrik $
##
## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##
"""Customize general helper utilities for Kofa.
"""

from copy import deepcopy
from kofacustom.nigeria.utils.utils import NigeriaKofaUtils

class CustomKofaUtils(NigeriaKofaUtils):
    """A collection of methods subject to customization.
    """

    PAYMENT_CATEGORIES = {
        'schoolfee': 'Tuition Plus (total amount)',
        'schoolfee40': 'Tuition Plus (40% - 1st instalment)',
        'secondinstal': 'Tuition Plus (60% - 2nd instalment)',
        'clearance': 'Acceptance Fee',
        'grad_clearance': 'Clearance Fee',
        'registration': 'Registration Fee',
        #'bed_allocation': 'Bed Allocation Fee',
        #'hostel_maintenance': 'Accommodation',
        #'transfer': 'Transfer Fee',
        #'gown': 'Gown Hire Fee',
        'application': 'Application Fee',
        'pg_application': 'PG Application Fee',
        'app_balance': 'Application Fee Balance',
        'transcript': 'Transcript Fee',
        'transcript_local': 'Transcript Fee Local',
        'transcript_overseas': 'Transcript Fee Oversea',
        'late_registration': 'Late Registration Fee',
        'science': 'Science Bench Fee',
        'clinical': 'Clinical Fee (Medical Students)',
        'develop': 'Development Fee',
        'municipal_fresh': 'Municipal Fee (Fresh Students)',
        'municipal_returning': 'Municipal Fee (Returning Students)',
        'alumni': 'Alumni Fee',
        'conv': 'Convocation Fee',
        'matric': 'Matriculation Fee',
        'waecneco': 'WAEC/NECO Verification',
        'jambver': 'JAMB Verification',
        'book': 'Book Deposit',
        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
        'pharmlab': 'Pharmacy Lab Support Fee',
        'lo_ident': 'Letter of Identification Fee',
        'change_course': 'Change of Course Fee',
        'make_up': 'Make-up Fee',
        'iuits': 'IUITS Fee',
        'fine': 'Fine',
        'combi': 'Combi Payment',
        'resit1': '1 Make-Up Examination Course',
        'resit2': '2 Make-Up Examination Courses',
        'resit3': '3 Make-Up Examination Courses',
        'resit4': '4 Make-Up Examination Courses',
        'resit5': '5 Make-Up Examination Courses',
        'resit6': '6 Make-Up Examination Course',
        'resit7': '7 Make-Up Examination Courses',
        'resit8': '8 Make-Up Examination Courses',
        'resit9': '9 Make-Up Examination Courses',
        'makeup_admin': 'Make-Up Registration Fee',
        'id_card': 'Student ID Card',
        'required_combi': 'Required Combi Payment',
        'pg_other': 'PG Other Charges',
        'jupeb_form':'JUPEB Form Fee',
        'jupeb_acc':'JUPEB Acceptance Fee',
        'jupeb_reg':'JUPEB Administrative Fee',
        'jupeb_sci':'JUPEB Tuition (Science)',
        'jupeb_arts':'JUPEB Tuition (Arts)',
        'jupeb_hostel':'JUPEB Accommodation (optional)',
        'brought_fwd': 'Balance Brought Forward',
        }

    SELECTABLE_PAYMENT_CATEGORIES = {
        'schoolfee': 'Tuition Plus (total amount)',
        'schoolfee40': 'Tuition Plus (40% - 1st instalment)',
        'secondinstal': 'Tuition Plus (60% - 2nd instalment)',
        'registration': 'Registration Fee',
        'clearance': 'Acceptance Fee',
        'grad_clearance': 'Clearance Fee',
        #'bed_allocation': 'Bed Allocation Fee',
        #'hostel_maintenance': 'Accommodation',
        #'transfer': 'Transfer Fee',
        #'gown': 'Gown Hire Fee',
        'application': 'Application Fee',
        'pg_application': 'PG Application Fee',
        #'app_balance': 'Application Fee Balance',
        'transcript_local': 'Transcript Fee (Local Students)',
        'transcript_overseas': 'Transcript Fee (Oversea Students)',
        'late_registration': 'Late Registration Fee',
        'science': 'Science Bench Fee',
        'clinical': 'Clinical Fee (Medical Students)',
        'develop': 'Development Fee',
        'municipal_fresh': 'Municipal Fee (Fresh Students)',
        'municipal_returning': 'Municipal Fee (Returning Students)',
        'alumni': 'Alumni Fee',
        'conv': 'Convocation Fee',
        'matric': 'Matriculation Fee',
        'waecneco': 'WAEC/NECO Verification',
        'jambver': 'JAMB Verification',
        'book': 'Book Deposit',
        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
        'pharmlab': 'Pharmacy Lab Support Fee',
        'lo_ident': 'Letter of Identification Fee',
        'change_course': 'Change of Course Fee',
        #'make_up': 'Make-up Fee',
        'iuits': 'IUITS Fee',
        'fine': 'Fine',
        'combi': 'Combi Payment',
        'resit1': '1 Make-Up Examination Course',
        'resit2': '2 Make-Up Examination Courses',
        'resit3': '3 Make-Up Examination Courses',
        'resit4': '4 Make-Up Examination Courses',
        'resit5': '5 Make-Up Examination Courses',
        'resit6': '6 Make-Up Examination Course',
        'resit7': '7 Make-Up Examination Courses',
        'resit8': '8 Make-Up Examination Courses',
        'resit9': '9 Make-Up Examination Courses',
        'makeup_admin': 'Make-Up Registration Fee',
        'id_card': 'Student ID Card',
        'required_combi': 'Required Combi Payment',
        'pg_other': 'PG Other Charges',
        #'jupeb_form':'JUPEB Form Fee',
        #'jupeb_acc':'JUPEB Acceptance Fee',
        #'jupeb_reg':'JUPEB Administrative Fee',
        'jupeb_sci':'JUPEB Tuition (Science)',
        'jupeb_arts':'JUPEB Tuition (Arts)',
        'jupeb_hostel':'JUPEB Accommodation (optional)',
        }

    def selectable_payment_categories(self, student):
        return self.SELECTABLE_PAYMENT_CATEGORIES

    PREVIOUS_PAYMENT_CATEGORIES = {
        'schoolfee': 'Tuition, Accommodation, Adm. Charges',
        'registration': 'Registration Fee',
        'clearance': 'Acceptance Fee',
        'grad_clearance': 'Clearance Fee',
        'application': 'Application Fee',
        'late_registration': 'Late Registration Fee',
        'science': 'Science Bench Fee',
        'clinical': 'Clinical Fee (Medical Students)',
        'develop': 'Development Fee',
        'municipal_fresh': 'Municipal Fee (Fresh Students)',
        'municipal_returning': 'Municipal Fee (Returning Students)',
        'alumni': 'Alumni Fee',
        'conv': 'Convocation Fee',
        'matric': 'Matriculation Fee',
        'waecneco': 'WAEC/NECO Verification',
        'jambver': 'JAMB Verification',
        'book': 'Book Deposit',
        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
        'pharmlab': 'Pharmacy Lab Support Fee',
        'lo_ident': 'Letter of Identification Fee',
        'change_course': 'Change of Course Fee',
        'make_up': 'Make-up Fee',
        'iuits': 'IUITS Fee',
        'fine': 'Fine',
        'id_card': 'Student ID Card',
        'required_combi': 'Required Combi Payment',
        'pg_other': 'PG Other Charges',
        #'jupeb_form':'JUPEB Form Fee',
        #'jupeb_acc':'JUPEB Acceptance Fee',
        #'jupeb_reg':'JUPEB Administrative Fee',
        'jupeb_sci':'JUPEB Tuition (Science)',
        'jupeb_arts':'JUPEB Tuition (Arts)',
        'jupeb_hostel':'JUPEB Accommodation (optional)',
        }

    COMBI_PAYMENT_CATEGORIES = {
        'registration': 'Registration Fee',
        'grad_clearance': 'Clearance Fee',
        'late_registration': 'Late Registration Fee',
        'science': 'Science Bench Fee',
        'clinical': 'Clinical Fee (Medical Students)',
        'develop': 'Development Fee',
        'municipal_fresh': 'Municipal Fee (Fresh Students)',
        'municipal_returning': 'Municipal Fee (Returning Students)',
        'alumni': 'Alumni Fee',
        'conv': 'Convocation Fee',
        'matric': 'Matriculation Fee',
        'waecneco': 'WAEC/NECO Verification',
        'jambver': 'JAMB Verification',
        'book': 'Book Deposit',
        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
        'pharmlab': 'Pharmacy Lab Support Fee',
        'lo_ident': 'Letter of Identification Fee',
        'change_course': 'Change of Course Fee',
        'make_up': 'Make-up Fee',
        'iuits': 'IUITS Fee',
        'fine': 'Fine',
        'id_card': 'Student ID Card',
        'pg_other': 'PG Other Charges',
        #'jupeb_form':'JUPEB Form Fee',
        #'jupeb_acc':'JUPEB Acceptance Fee',
        #'jupeb_reg':'JUPEB Administrative Fee',
        'jupeb_sci':'JUPEB Tuition (Science)',
        'jupeb_arts':'JUPEB Tuition (Arts)',
        'jupeb_hostel':'JUPEB Accommodation (optional)',
        }

    BALANCE_PAYMENT_CATEGORIES = {
        'schoolfee': 'Tuition, Accommodation, Adm. Charges',
        }

    PAYMENT_OPTIONS = {
        'first': 'First Bank Debit Card',
        'access': 'Access Bank Debit Card',
        'zenith': 'Zenith Bank Debit Card',
        'other': 'Other Bank Debit Card',
        }

    APP_CATS_DICT = {
        'basic': 'UAS, PUTME, PUDE, PCE, PRENCE',
        'no': 'No Application',
        'pg': 'Postgraduate Programmes',
        'pg2': 'Postgraduate Programmes 2',
        'pgphd': 'Postgraduate PhD/MPhil',
        'pre': 'Pre-Degree Studies',
        'pt': 'Part-Time Degree Programmes',
        'ut': 'Undergraduate Programmes',
        'conv': 'HND to BSc Conversion',
        }

    #: Maximum size in Bytes of passport images in the applicants and
    #: students section
    MAX_PASSPORT_SIZE = 250 * 1024
