## $Id: utils.py 15348 2019-03-10 21:29:39Z 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 kofacustom.nigeria.utils.utils import NigeriaKofaUtils

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

    APP_CATS_DICT = {
        'basic': 'Basic',
        'ndft': 'National Diploma Full-Time Programmes',
        'ndpt': 'National Diploma Part-Time Programmes',
        'ndwe': 'National Diploma Weekend Programmes',
        'hndft': 'Higher National Diploma Full-Time Programmes',
        'hndpt': 'Higher National Diploma Part-Time Programmes',
        'hndwe': 'Higher National Diploma Weekend Programmes',
        'pgd': 'Postgraduate Diploma Programmes',
        'rmd': 'Remedial Programmes',
        'no': 'no application',
        }

    STUDY_MODES_DICT = {
        'transfer': 'Transfer',
        'ug_ft': 'Undergraduate Full Time',
        'ug_pt': 'Undergraduate Part Time',
        'nd_ft': 'National Diploma Full-Time',
        'nd_pt': 'National Diploma Part-Time',
        'nd_we': 'National Diploma Weekend',
        'hnd_ft': 'Higher National Diploma Full-Time',
        'hnd_pt': 'Higher National Diploma Part-Time',
        'hnd_we': 'Higher National Diploma Weekend',
        'pgd_ft': 'Postgraduate Diploma Full-Time',
        'pgd_pt': 'Postgraduate Diploma Part-Time',
        'prend': 'Pre-ND',
        'rmd': 'Remedial',
        }

    PAYMENT_CATEGORIES = {
        'clearance': 'Acceptance',
        'schoolfee': 'School Fee',
        'dep_sug':'NADESU/SA/SUG', # is not a special paynent
        'carryover1': '1, 2 or 3 Carry-Over Courses',
        'carryover4': '4 Carry-Over Courses',
        'carryover5': '5 Carry-Over Courses',
        'carryover6': '6 Carry-Over Courses',
        'carryover7': '7 Carry-Over Courses',
        'carryover8': '8 Carry-Over Courses',
        'carryover9': '9 Carry-Over Courses',
        'carryover10': '10 Carry-Over Courses',
        'carryover11': '11 Carry-Over Courses',
        'carryover12': '12 Carry-Over Courses',
        'balance': 'Balance Payment',
        'bed_allocation': 'Bed Allocation',
        'hostel_maintenance': 'Hostel Maintenance',
        'application': 'Application',
        'certificate': 'ND Certificate',
        'hnd_certificate': 'HND Certificate',
        'pgd_certificate': 'PGD Certificate',
        'state_result': 'ND Statement of Result',
        'hnd_state_result': 'HND Statement of Result',
        'pgd_state_result': 'PGD Statement of Result',
        'transcript_local': 'ND Transcript (local)',
        'hnd_transcript_local': 'HND Transcript (local)',
        'pgd_transcript_local': 'PGD Transcript (local)',
        'transcript_foreign': 'ND Transcript (foreign)',
        'hnd_transcript_foreign': 'HND Transcript (foreign)',
        'pgd_transcript_foreign': 'PGD Transcript (foreign)',
        'ver_result': 'Verification of Result',
        'change_course': 'Change of Course',
        'change_inst': 'Change of Institute',
        'jamb_reject': 'JAMB Rejection Form',
        'cert_of_cert': 'Certification of Certificate',
        'ref_let': 'Recommendation/Reference Letter',
        'proc_cert': 'Processing of Certificate by Proxy',
        'loss_idcard': 'Loss of ID Card (student)',
        'staff_loss_idcard': 'Loss of ID Card (staff)',
        'loss_examcard': 'Loss of Exam Card',
        'loss_result': 'Loss of Result',
        'loss_receipt': 'Loss of Receipt',
        'loss_clearance': 'Loss of Clearance',
        'conv_brochure': 'ND Convocation Brochure',
        'hnd_conv_brochure': 'HND Convocation Brochure',
        'pgd_conv_brochure': 'PGD Convocation Brochure',
        'log_book': 'Log Book',
        'jamb_regularization': 'Jamb Regularization',
        'utme_registration': 'UTME Registration',
        'utme_cbt': 'UTME CBT',
        'nysc_id_card': 'NYSC ID Card',
        'ijmb_result':'IJMB Result',
        'gown': 'Gown Hire Fee',
        'sports': 'Sports Clearance Levy',
        'siwes': 'SIWES Fee',
        'eed_1': 'EED 1 Fee',
        'eed_2': 'EED 2 Fee',
        'olevel_results_1': 'O Level Results Verification 1',
        'olevel_results_2': 'O Level Results Verification 2',
        'eng_1':'School of Engineering Dues I',
        'eng_2':'School of Engineering Dues II',
        'sbs_1':'SBS Pack I',
        'sbs_2':'SBS Pack II',
        'bfn':'BFN Pack',
        'mkt':'MKT Pack',
        'mcn':'MCN Pack',
        'otm':'OTM Pack',
        'acct':'ACCT Pack',
        'bam':'BAM Pack',
        'pom':'POM Pack',
        'hrm':'HRM Pack',
        'lsfp_penalty':'Late School Fee Payment Penalty',
        }

    SELECTABLE_PAYMENT_CATEGORIES = {
        'clearance': 'Acceptance',
        'schoolfee': 'School Fee',
        'dep_sug':'NADESU/SA/SUG',
        'gown': 'Gown Hire Fee',
        #'carryover1': 'One Carry-Over',
        #'carryover2': 'Two Carry-Overs',
        #'carryover3': 'Three Carry-Overs',
        #'carryover4': 'Four Carry-Overs',
        'hostel_maintenance': 'Hostel Maintenance',
        #'certificate': 'ND Certificate',
        #'hnd_certificate': 'HND Certificate',
        #'pgd_certificate': 'PGD Certificate',
        #'state_result': 'ND Statement of Result',
        #'hnd_state_result': 'HND Statement of Result',
        #'pgd_state_result': 'PGD Statement of Result',
        #'transcript_local': 'ND Transcript (local)',
        #'hnd_transcript_local': 'HND Transcript (local)',
        #'pgd_transcript_local': 'PGD Transcript (local)',
        #'transcript_foreign': 'ND Transcript (foreign)',
        #'hnd_transcript_foreign': 'HND Transcript (foreign)',
        #'pgd_transcript_foreign': 'PGD Transcript (foreign)',
        #'ver_result': 'Verification of Result',
        'change_course': 'Change of Course',
        #'change_inst': 'Change of Institute',
        #'jamb_reject': 'JAMB Rejection Form',
        #'cert_of_cert': 'Certification of Certificate',
        #'ref_let': 'Recommendation/Reference Letter',
        #'proc_cert': 'Processing of Certificate by Proxy',
        #'loss_idcard': 'Loss of ID Card (student)',
        #'staff_loss_idcard': 'Loss of ID Card (staff)',
        #'loss_examcard': 'Loss of Exam Card',
        #'loss_result': 'Loss of Result',
        #'loss_receipt': 'Loss of Receipt',
        #'loss_clearance': 'Loss of Clearance',
        #'conv_brochure': 'ND Convocation Brochure',
        #'hnd_conv_brochure': 'HND Convocation Brochure',
        #'pgd_conv_brochure': 'PGD Convocation Brochure',
        #'log_book': 'Log Book',
        #'jamb_regularization': 'Jamb Regularization',
        #'utme_registration': 'UTME Registration',
        #'utme_cbt': 'UTME CBT',
        #'nysc_id_card': 'NYSC ID Card',
        #'ijmb_result':'IJMB Result',
        'sports': 'Sports Clearance Levy',
        'siwes': 'SIWES Fee',
        'eed_1': 'EED 1 Fee',
        'eed_2': 'EED 2 Fee',
        'olevel_results_1': 'O Level Results Verification 1',
        'olevel_results_2': 'O Level Results Verification 2',
        'eng_1':'School of Engineering Dues I',
        'eng_2':'School of Engineering Dues II',
        'sbs_1':'SBS Pack I',
        'sbs_2':'SBS Pack II',
        'bfn':'BFN Pack',
        'mkt':'MKT Pack',
        'mcn':'MCN Pack',
        'otm':'OTM Pack',
        'acct':'ACCT Pack',
        'bam':'BAM Pack',
        'pom':'POM Pack',
        'hrm':'HRM Pack',
        'lsfp_penalty':'Late School Fee Payment Penalty',
        }

    SPECIAL_APP_DICT = {
        'certificate': 'ND Certificate',
        'hnd_certificate': 'HND Certificate',
        'pgd_certificate': 'PGD Certificate',
        'state_result': 'ND Statement of Result',
        'hnd_state_result': 'HND Statement of Result',
        'pgd_state_result': 'PGD Statement of Result',
        'transcript_local': 'ND Transcript (local)',
        'hnd_transcript_local': 'HND Transcript (local)',
        'pgd_transcript_local': 'PGD Transcript (local)',
        'transcript_foreign': 'ND Transcript (foreign)',
        'hnd_transcript_foreign': 'HND Transcript (foreign)',
        'pgd_transcript_foreign': 'PGD Transcript (foreign)',
        'ver_result': 'Verification of Result',
        'change_course': 'Change of Course',
        'change_inst': 'Change of Institute',
        'jamb_reject': 'JAMB Rejection Form',
        'cert_of_cert': 'Certification of Certificate',
        'ref_let': 'Recommendation/Reference Letter',
        'proc_cert': 'Processing of Certificate by Proxy',
        'loss_idcard': 'Loss of ID Card (student)',
        'staff_loss_idcard': 'Loss of ID Card (staff)',
        'loss_examcard': 'Loss of Exam Card',
        'loss_result': 'Loss of Result',
        'loss_receipt': 'Loss of Receipt',
        'loss_clearance': 'Loss of Clearance',
        'conv_brochure': 'ND Convocation Brochure',
        'hnd_conv_brochure': 'HND Convocation Brochure',
        'pgd_conv_brochure': 'PGD Convocation Brochure',
        'log_book': 'Log Book',
        'jamb_regularization': 'Jamb Regularization',
        'utme_registration': 'UTME Registration',
        'utme_cbt': 'UTME CBT',
        'nysc_id_card': 'NYSC ID Card',
        'ijmb_result':'IJMB Result',
        'carryover1': '01, 02 or 03 Carry-Over Courses',
        'carryover4': '04 Carry-Over Courses',
        'carryover5': '05 Carry-Over Courses',
        'carryover6': '06 Carry-Over Courses',
        'carryover7': '07 Carry-Over Courses',
        'carryover8': '08 Carry-Over Courses',
        'carryover9': '09 Carry-Over Courses',
        'carryover10': '10 Carry-Over Courses',
        'carryover11': '11 Carry-Over Courses',
        'carryover12': '12 Carry-Over Courses',
        'balance': 'Balance Payment',
        }