Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/interfaces.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/interfaces.py	(revision 15536)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/interfaces.py	(revision 15571)
@@ -81,4 +81,5 @@
         required = True,
         )
+
     hnd_certificate_fee = schema.Float(
         title = _(u'HND Certificate Fee'),
@@ -86,4 +87,5 @@
         required = True,
         )
+
     pgd_certificate_fee = schema.Float(
         title = _(u'PGD Certificate Fee'),
@@ -91,4 +93,5 @@
         required = True,
         )
+
     state_result_fee = schema.Float(
         title = _(u'ND Statement of Result Fee'),
@@ -96,4 +99,5 @@
         required = True,
         )
+
     hnd_state_result_fee = schema.Float(
         title = _(u'HND Statement of Result Fee'),
@@ -101,4 +105,5 @@
         required = True,
         )
+
     pgd_state_result_fee = schema.Float(
         title = _(u'PGD Statement of Result Fee'),
@@ -106,4 +111,5 @@
         required = True,
         )
+
     transcript_local_fee = schema.Float(
         title = _(u'ND Transcript (local) Fee'),
@@ -111,4 +117,5 @@
         required = True,
         )
+
     hnd_transcript_local_fee = schema.Float(
         title = _(u'HND Transcript (local) Fee'),
@@ -116,4 +123,5 @@
         required = True,
         )
+
     pgd_transcript_local_fee = schema.Float(
         title = _(u'PGD Transcript (local) Fee'),
@@ -121,4 +129,5 @@
         required = True,
         )
+
     transcript_foreign_fee = schema.Float(
         title = _(u'ND Transcript (foreign) Fee'),
@@ -126,4 +135,5 @@
         required = True,
         )
+
     hnd_transcript_foreign_fee = schema.Float(
         title = _(u'HND Transcript (foreign) Fee'),
@@ -131,4 +141,5 @@
         required = True,
         )
+
     pgd_transcript_foreign_fee = schema.Float(
         title = _(u'PGD Transcript (foreign) Fee'),
@@ -136,4 +147,5 @@
         required = True,
         )
+
     ver_result_fee = schema.Float(
         title = _(u'Verification of Result Fee'),
@@ -141,4 +153,5 @@
         required = True,
         )
+
     change_course_fee = schema.Float(
         title = _(u'Change of Course Fee'),
@@ -146,4 +159,5 @@
         required = True,
         )
+
     change_inst_fee = schema.Float(
         title = _(u'Change of Institute Fee'),
@@ -151,4 +165,5 @@
         required = True,
         )
+
     jamb_reject_fee = schema.Float(
         title = _(u'JAMB Rejection Form Fee'),
@@ -156,4 +171,5 @@
         required = True,
         )
+
     cert_of_cert_fee = schema.Float(
         title = _(u'Certification of Certificate Fee'),
@@ -161,4 +177,5 @@
         required = True,
         )
+
     ref_let_fee = schema.Float(
         title = _(u'Recommendation/Reference Letter Fee'),
@@ -166,4 +183,5 @@
         required = True,
         )
+
     proc_cert_fee = schema.Float(
         title = _(u'Processing of Certificate by Proxy Fee'),
@@ -171,4 +189,5 @@
         required = True,
         )
+
     loss_idcard_fee = schema.Float(
         title = _(u'Loss of ID Card Fee (student)'),
@@ -176,4 +195,5 @@
         required = True,
         )
+
     staff_loss_idcard_fee = schema.Float(
         title = _(u'Loss of ID Card Fee (staff)'),
@@ -181,4 +201,5 @@
         required = True,
         )
+
     loss_examcard_fee = schema.Float(
         title = _(u'Loss of Exam Card Fee'),
@@ -186,4 +207,5 @@
         required = True,
         )
+
     loss_result_fee = schema.Float(
         title = _(u'Loss of Result Fee'),
@@ -191,4 +213,5 @@
         required = True,
         )
+
     loss_receipt_fee = schema.Float(
         title = _(u'Loss of Receipt Fee'),
@@ -196,4 +219,5 @@
         required = True,
         )
+
     loss_clearance_fee = schema.Float(
         title = _(u'Loss of Clearance Fee'),
@@ -201,19 +225,23 @@
         required = True,
         )
-    conv_brochure_fee = schema.Float(
-        title = _(u'ND Convocation Brochure Fee'),
-        default = 0.0,
-        required = True,
-        )
-    hnd_conv_brochure_fee = schema.Float(
-        title = _(u'HND Convocation Brochure Fee'),
-        default = 0.0,
-        required = True,
-        )
-    pgd_conv_brochure_fee = schema.Float(
-        title = _(u'PGD Convocation Brochure Fee'),
-        default = 0.0,
-        required = True,
-        )
+
+    #conv_brochure_fee = schema.Float(
+    #    title = _(u'ND Convocation Brochure Fee'),
+    #    default = 0.0,
+    #    required = True,
+    #    )
+
+    #hnd_conv_brochure_fee = schema.Float(
+    #    title = _(u'HND Convocation Brochure Fee'),
+    #    default = 0.0,
+    #    required = True,
+    #    )
+
+    #pgd_conv_brochure_fee = schema.Float(
+    #    title = _(u'PGD Convocation Brochure Fee'),
+    #    default = 0.0,
+    #    required = True,
+    #    )
+
     log_book_fee = schema.Float(
         title = _(u'Log Book Fees'),
@@ -221,4 +249,5 @@
         required = True,
         )
+
     jamb_regularization_fee = schema.Float(
         title = _(u'Jamb Regularization Fee'),
@@ -226,4 +255,5 @@
         required = True,
         )
+
     utme_registration_fee = schema.Float(
         title = _(u'UTME Registration Fee'),
@@ -231,4 +261,5 @@
         required = True,
         )
+
     utme_cbt_fee = schema.Float(
         title = _(u'UTME CBT Fee'),
@@ -236,4 +267,5 @@
         required = True,
         )
+
     nysc_id_card_fee = schema.Float(
         title = _(u'NYSC ID Card Fee'),
@@ -241,4 +273,5 @@
         required = True,
         )
+
     ijmb_result_fee = schema.Float(
         title = _(u'IJMB Result Fee'),
@@ -246,4 +279,5 @@
         required = True,
         )
+
     carryover1_fee = schema.Float(
         title = _(u'1, 2 or 3 Carry-Over Courses Fee'),
@@ -251,4 +285,5 @@
         required = True,
         )
+
     carryover4_fee = schema.Float(
         title = _(u'4 Carry-Over Courses Fee'),
@@ -256,4 +291,5 @@
         required = True,
         )
+
     carryover5_fee = schema.Float(
         title = _(u'5 Carry-Over Courses Fee'),
@@ -261,4 +297,5 @@
         required = True,
         )
+
     carryover6_fee = schema.Float(
         title = _(u'6 Carry-Over Courses Fee'),
@@ -266,4 +303,5 @@
         required = True,
         )
+
     carryover7_fee = schema.Float(
         title = _(u'7 Carry-Over Courses Fee'),
@@ -271,4 +309,5 @@
         required = True,
         )
+
     carryover8_fee = schema.Float(
         title = _(u'8 Carry-Over Courses Fee'),
@@ -276,4 +315,5 @@
         required = True,
         )
+
     carryover9_fee = schema.Float(
         title = _(u'9 Carry-Over Courses Fee'),
@@ -281,4 +321,5 @@
         required = True,
         )
+
     carryover10_fee = schema.Float(
         title = _(u'10 Carry-Over Courses Fee'),
@@ -286,4 +327,5 @@
         required = True,
         )
+
     carryover11_fee = schema.Float(
         title = _(u'11 Carry-Over Courses Fee'),
@@ -291,4 +333,5 @@
         required = True,
         )
+
     carryover12_fee = schema.Float(
         title = _(u'12 Carry-Over Courses Fee'),
@@ -296,4 +339,5 @@
         required = True,
         )
+
     balance_fee = schema.Float(
         title = _(u'Balance Payment'),
@@ -410,6 +454,24 @@
         )
 
+    hndgrad_fee = schema.Float(
+        title = _(u'HND Final Clearance Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    ndgrad_fee = schema.Float(
+        title = _(u'ND Final Clearance Pack'),
+        default = 0.0,
+        required = True,
+        )
+
     lsfp_penalty_fee = schema.Float(
         title = _(u'Late School Fee Payment Penalty Fee'),
+        default = 0.0,
+        required = True,
+        )
+
+    conv_fee = schema.Float(
+        title = _(u'Convocation Pack'),
         default = 0.0,
         required = True,
Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/browser.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/browser.py	(revision 15536)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/browser.py	(revision 15571)
@@ -98,4 +98,5 @@
     'nysc_id_card': ('144', 9.0, '1012808851', '117'),
     'ijmb_result': ('147', 500.0, '1012808851', '117'),
+    'conv': ('151', 500.0, '1012963301', '117'),
     }
 
@@ -426,4 +427,37 @@
 </payment_item_detail>""" % xmldict
 
+        if self.context.p_category == 'hndgrad':
+            self.pay_item_id = '153'
+            # amount_auth is being ignored. However, the sum of all split payments
+            # must coincide with the amount_auth configured in students/utils.py
+            xmldict['amt1'] = 100 * 3000
+            xmldict['amt2'] = 100 * 5000
+            xmldict['amt3'] = 100 * 1000
+            xmldict['amt4'] = 100 * 3500
+            xmltext = """<payment_item_detail>
+<item_details detail_ref="%(detail_ref)s" college="%(institution_name)s" department="%(department)s" faculty="%(faculty)s">
+<item_detail item_id="1" item_name="Collection of Results" item_amt="%(amt1)d" bank_id="117" acct_num="1012808851" />
+<item_detail item_id="2" item_name="Collection of Certificate" item_amt="%(amt2)d" bank_id="117" acct_num="1012808851" />
+<item_detail item_id="3" item_name="Alumni" item_amt="%(amt3)d" bank_id="8" acct_num="2011810346" />
+<item_detail item_id="4" item_name="Convocation" item_amt="%(amt3)d" bank_id="8" acct_num="2006612782" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'ndgrad':
+            self.pay_item_id = '152'
+            # amount_auth is being ignored. However, the sum of all split payments
+            # must coincide with the amount_auth configured in students/utils.py
+            xmldict['amt1'] = 100 * 3000
+            xmldict['amt2'] = 100 * 7500
+            xmldict['amt3'] = 100 * 1000
+            xmldict['amt4'] = 100 * 3500
+            xmltext = """<payment_item_detail>
+<item_details detail_ref="%(detail_ref)s" college="%(institution_name)s" department="%(department)s" faculty="%(faculty)s">
+<item_detail item_id="1" item_name="Collection of Results" item_amt="%(amt1)d" bank_id="117" acct_num="1012808851" />
+<item_detail item_id="2" item_name="Collection of Certificate" item_amt="%(amt2)d" bank_id="117" acct_num="1012808851" />
+<item_detail item_id="3" item_name="Alumni" item_amt="%(amt3)d" bank_id="8" acct_num="2011810346" />
+<item_detail item_id="4" item_name="Convocation" item_amt="%(amt3)d" bank_id="8" acct_num="2006612782" />
+</item_details>
+</payment_item_detail>""" % xmldict
 
         self.xml_data = """<input type="hidden" name="xml_data" value='%s'  />""" % xmltext
Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/utils/utils.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/utils/utils.py	(revision 15536)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/utils/utils.py	(revision 15571)
@@ -124,5 +124,8 @@
         'pom':'POM Pack',
         'hrm':'HRM Pack',
+        'hndgrad':'HND Final Clearance Pack',
+        'ndgrad':'ND Final Clearance Pack',
         'lsfp_penalty':'Late School Fee Payment Penalty',
+        'conv':'Convocation Pack',
         }
 
@@ -189,5 +192,8 @@
         'pom':'POM Pack',
         'hrm':'HRM Pack',
+        'hndgrad':'HND Final Clearance Pack',
+        'ndgrad':'ND Final Clearance Pack',
         'lsfp_penalty':'Late School Fee Payment Penalty',
+        'conv':'Convocation Pack',
         }
 
@@ -241,3 +247,4 @@
         'carryover12': '12 Carry-Over Courses',
         'balance': 'Balance Payment',
-        }
+        'conv':'Convocation Pack',
+        }
