Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/interfaces.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/interfaces.py	(revision 15248)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/interfaces.py	(revision 15255)
@@ -338,4 +338,77 @@
         )
 
+    eng_1_fee = schema.Float(
+        title = _(u'School of English Dues I'),
+        default = 0.0,
+        required = True,
+        )
+
+    eng_2_fee = schema.Float(
+        title = _(u'School of English Dues II'),
+        default = 0.0,
+        required = True,
+        )
+
+    sbs_1_fee = schema.Float(
+        title = _(u'SBS Pack I'),
+        default = 0.0,
+        required = True,
+        )
+
+    sps_2_fee = schema.Float(
+        title = _(u'SBS Pack I'),
+        default = 0.0,
+        required = True,
+        )
+
+    bfn_fee = schema.Float(
+        title = _(u'BFN Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    mkt_fee = schema.Float(
+        title = _(u'MKT Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    mcn_fee = schema.Float(
+        title = _(u'MCN Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    otm_fee = schema.Float(
+        title = _(u'OTM Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    acct_fee = schema.Float(
+        title = _(u'ACCT Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    bam_fee = schema.Float(
+        title = _(u'BAM Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    pom_fee = schema.Float(
+        title = _(u'POM Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+    hrm_fee = schema.Float(
+        title = _(u'HRM Pack'),
+        default = 0.0,
+        required = True,
+        )
+
+
     def getSessionString():
         """Returns the session string from the vocabulary.
Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/browser.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/browser.py	(revision 15248)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/browser.py	(revision 15255)
@@ -251,6 +251,9 @@
 </item_details>
 </payment_item_detail>""" % xmldict
-        # dep_sug payments are treated completely separately. The following lines
+
+
+        # Some payments are treated completely separately. The following lines
         # override the configuration above.
+
         if self.context.p_category == 'dep_sug':
             self.pay_item_id = '102' # We use school fee item id
@@ -270,4 +273,151 @@
 </item_details>
 </payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'eng_1':
+            self.pay_item_id = '118'
+            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="%(institution_item_name)s" item_amt="%(institution_amt)d" bank_id="8" acct_num="2024473077" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'eng_2':
+            self.pay_item_id = '119'
+            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="%(institution_item_name)s" item_amt="%(institution_amt)d" bank_id="8" acct_num="2024473077" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'sbs_1':
+            self.pay_item_id = '120'
+            # 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 * 800
+            xmldict['amt2'] = 100 * 1000
+            xmldict['amt3'] = 100 * 500
+
+            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="SBS Dues I" item_amt="%(amt1)d" bank_id="11" acct_num="0010772626" />
+<item_detail item_id="2" item_name="Journal fee" item_amt="%(amt2)d" bank_id="11" acct_num="0010772626" />
+<item_detail item_id="3" item_name="ABSOBS" item_amt="%(amt3)d" bank_id="8" acct_num="2008185712" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'sbs_2':
+            self.pay_item_id = '123'
+            # 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 * 300
+            xmldict['amt2'] = 100 * 500
+            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="SBS Dues II" item_amt="%(amt1)d" bank_id="11" acct_num="0010772626" />
+<item_detail item_id="2" item_name="ABSOBS" item_amt="%(amt2)d" bank_id="8" acct_num="2008185712" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'bfn':
+            self.pay_item_id = '125'
+            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="%(institution_item_name)s" item_amt="%(institution_amt)d" bank_id="11" acct_num="0048039049" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'mkt':
+            self.pay_item_id = '127'
+            # 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 * 500
+            xmldict['amt2'] = 100 * 500
+            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="MKT Dues" item_amt="%(amt1)d" bank_id="11" acct_num="0048297823" />
+<item_detail item_id="2" item_name="NAMS" item_amt="%(amt2)d" bank_id="8" acct_num="2032309812" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'mcn':
+            self.pay_item_id = '129'
+            # 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 * 500
+            xmldict['amt2'] = 100 * 500
+            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="MCN Dues" item_amt="%(amt1)d" bank_id="11" acct_num="0010789213" />
+<item_detail item_id="2" item_name="AMCOS" item_amt="%(amt2)d" bank_id="8" acct_num="3020253234" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'otm':
+            self.pay_item_id = '131'
+            # 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 * 500
+            xmldict['amt2'] = 100 * 500
+            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="OTM Dues" item_amt="%(amt1)d" bank_id="8" acct_num="3068446702" />
+<item_detail item_id="2" item_name="NAOTM" item_amt="%(amt2)d" bank_id="11" acct_num="0036652027" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'acct':
+            self.pay_item_id = '134'
+            # 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 * 500
+            xmldict['amt3'] = 100 * 500
+            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="Profession Accreditation" item_amt="%(amt1)d" bank_id="11" acct_num="0040285084" />
+<item_detail item_id="2" item_name="ACCT Dues" item_amt="%(amt2)d" bank_id="11" acct_num="0036184955" />
+<item_detail item_id="3" item_name="NAPAS" item_amt="%(amt3)d" bank_id="11" acct_num="2008498661" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'bam':
+            self.pay_item_id = '136'
+            # 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 * 500
+            xmldict['amt2'] = 100 * 500
+            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="BAM Dues" item_amt="%(amt1)d" bank_id="11" acct_num="0010788058" />
+<item_detail item_id="2" item_name="NABAS" item_amt="%(amt2)d" bank_id="8" acct_num="2006936848" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'pom':
+            self.pay_item_id = '138'
+            # 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 * 500
+            xmldict['amt2'] = 100 * 500
+            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="POM Dues" item_amt="%(amt1)d" bank_id="11" acct_num="0096851444" />
+<item_detail item_id="2" item_name="NAMS" item_amt="%(amt2)d" bank_id="8" acct_num="2033423003" />
+</item_details>
+</payment_item_detail>""" % xmldict
+
+        if self.context.p_category == 'hrm':
+            self.pay_item_id = '140'
+            # 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 * 500
+            xmldict['amt2'] = 100 * 500
+            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="HRM Dues" item_amt="%(amt1)d" bank_id="11" acct_num="0096858546" />
+<item_detail item_id="2" item_name="NAMS" item_amt="%(amt2)d" bank_id="8" acct_num="2033423003" />
+</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/interswitch/tests.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/tests.py	(revision 15248)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/interswitch/tests.py	(revision 15255)
@@ -203,5 +203,5 @@
         self.assertTrue('<item_detail item_id="2" item_name="School Fee 2" item_amt="1030000" bank_id="123" acct_num="1002883141" />'
             in self.browser.contents)
-        self.assertTrue('<item_detail item_id="3" item_name="BT Education" item_amt="280000" bank_id="8" acct_num="2028964403" />'
+        self.assertTrue('<item_detail item_id="3" item_name="WAEAC" item_amt="280000" bank_id="8" acct_num="2028964403" />'
             in self.browser.contents)
         self.assertTrue('<item_detail item_id="4" item_name="Technology Fee" item_amt="120000" bank_id="307" acct_num="5100189030" />'
@@ -376,5 +376,5 @@
         self.assertTrue('<item_detail item_id="2" item_name="Application 2" item_amt="10000" bank_id="123" acct_num="1002883141" />'
             in self.browser.contents)
-        self.assertTrue('<item_detail item_id="3" item_name="BT Education" item_amt="50000" bank_id="8" acct_num="2028964403" />'
+        self.assertTrue('<item_detail item_id="3" item_name="WAEAC" item_amt="50000" bank_id="8" acct_num="2028964403" />'
             in self.browser.contents)
 
Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/students/utils.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/students/utils.py	(revision 15248)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/students/utils.py	(revision 15255)
@@ -204,12 +204,4 @@
             else:
                 return _(u'No bed allocated.'), None
-        elif category == 'carryover1':
-            amount = 10000.0
-        elif category == 'carryover2':
-            amount = 10000.0
-        elif category == 'carryover3':
-            amount = 10000.0
-        elif category == 'carryover4':
-            amount = 13000.0
         elif category == 'dep_sug':
             amount = 3150.0 # includes GATEWAY_AMT
Index: main/kofacustom.dspg/trunk/src/kofacustom/dspg/utils/utils.py
===================================================================
--- main/kofacustom.dspg/trunk/src/kofacustom/dspg/utils/utils.py	(revision 15248)
+++ main/kofacustom.dspg/trunk/src/kofacustom/dspg/utils/utils.py	(revision 15255)
@@ -112,4 +112,16 @@
         'olevel_results_1': 'O Level Results Verification 1',
         'olevel_results_2': 'O Level Results Verification 2',
+        'eng_1':'School of English Dues I',
+        'eng_2':'School of English 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',
         }
 
@@ -164,4 +176,16 @@
         'olevel_results_1': 'O Level Results Verification 1',
         'olevel_results_2': 'O Level Results Verification 2',
+        'eng_1':'School of English Dues I',
+        'eng_2':'School of English 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',
         }
 
