Index: main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py	(revision 9726)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py	(revision 9727)
@@ -268,9 +268,14 @@
             xmldict['institution_bank_id'] = '7'
             xmldict['institution_acct'] = '1003475516'
-        if self.context.p_category == 'gown':
+        elif self.context.p_category == 'gown':
             self.pay_item_id = '5704'
             provider_amt = 0
             xmldict['institution_bank_id'] = '7'
             xmldict['institution_acct'] = '1016232382'
+        elif self.context.p_category.startswith('hostel_maintenance'):
+            self.pay_item_id = '5705'
+            provider_amt = 400
+            xmldict['institution_bank_id'] = '129'
+            xmldict['institution_acct'] = '0014414547'
 
         xmldict['provider_amt'] = 100 * provider_amt
Index: main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py	(revision 9726)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py	(revision 9727)
@@ -189,4 +189,31 @@
             'item_name="BT Education"' in self.browser.contents)
 
+        # Create temp maint fee ticket
+        self.browser.open(self.payments_path + '/addop')
+        self.browser.getControl(name="form.p_category").value = ['tempmaint_1']
+        self.browser.getControl("Create ticket").click()
+        ctrl = self.browser.getControl(name='val_id')
+        value = ctrl.options[4]
+        self.browser.getLink(value).click()
+        self.assertMatches(
+            '...<span>8550.0</span>...',
+            self.browser.contents)
+        # Manager can access InterswitchForm
+        self.browser.getLink("CollegePAY", index=0).click()
+        self.assertMatches('...<input type="hidden" name="pay_item_id" value="5705" />...',
+                           self.browser.contents)
+        self.assertMatches('...Total Amount Authorized:...',
+                           self.browser.contents)
+        self.assertMatches(
+            '...<input type="hidden" name="amount" value="855000.0" />...',
+            self.browser.contents)
+        self.assertMatches(
+            '...<item_detail item_id="1" item_name="Hostel Maint. Fee" item_amt="800000" bank_id="129" acct_num="0014414547" />...',
+            self.browser.contents)
+        self.assertMatches(
+            '...item_name="BT Education" item_amt="40000" bank_id="117" acct_num="1010764827"...',
+            self.browser.contents)
+
+
 #    @external_test
 #    def test_callback(self):
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 9726)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 9727)
@@ -589,4 +589,28 @@
         self.assertEqual(error, None)
 
+        error, payment = utils.setPaymentDetails('tempmaint_1',
+            self.student, None, None)
+        self.assertEqual(payment.p_level, 100)
+        self.assertEqual(payment.p_session, 2004)
+        self.assertEqual(payment.amount_auth, 8550.0)
+        self.assertEqual(payment.p_item, u'Hall 1-4 M/F Ekehuan')
+        self.assertEqual(error, None)
+
+        error, payment = utils.setPaymentDetails('tempmaint_2',
+            self.student, None, None)
+        self.assertEqual(payment.p_level, 100)
+        self.assertEqual(payment.p_session, 2004)
+        self.assertEqual(payment.amount_auth, 13050.0)
+        self.assertEqual(payment.p_item, u'Hall 5 M/F')
+        self.assertEqual(error, None)
+
+        error, payment = utils.setPaymentDetails('tempmaint_3',
+            self.student, None, None)
+        self.assertEqual(payment.p_level, 100)
+        self.assertEqual(payment.p_session, 2004)
+        self.assertEqual(payment.amount_auth, 10050.0)
+        self.assertEqual(payment.p_item, u'Clinical Hostel')
+        self.assertEqual(error, None)
+
         error, payment = utils.setPaymentDetails('transfer',
             self.student, None, None)
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 9726)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 9727)
@@ -100,4 +100,10 @@
         elif category == 'hostel_maintenance':
             amount = academic_session.maint_fee
+        elif category == 'tempmaint_1':
+            amount = 8550.0
+        elif category == 'tempmaint_2':
+            amount = 13050.0
+        elif category == 'tempmaint_3':
+            amount = 10050.0
         elif category == 'clearance':
             try:
@@ -192,4 +198,11 @@
         elif category == 'schoolfee':
             amount += academic_session.penalty_ug
+        # XXX: Obsolete in 2013
+        if category.startswith('tempmaint'):
+            p_item = getUtility(IKofaUtils).PAYMENT_CATEGORIES[category]
+            p_item = unicode(p_item)
+            # Now we change the category because tempmaint payments
+            # will be obsolete in 2013
+            category = 'hostel_maintenance'
         # Create ticket.
         for key in student['payments'].keys():
Index: main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py	(revision 9726)
+++ main/waeup.uniben/trunk/src/waeup/uniben/utils/utils.py	(revision 9727)
@@ -45,2 +45,15 @@
         'Postgraduate Part-Time':('pg_pt', 'special_pg_pt', 'pgd_pt'),
         }
+
+    PAYMENT_CATEGORIES = {
+        'schoolfee': 'School Fee',
+        'clearance': 'Acceptance Fee',
+        'bed_allocation': 'Bed Allocation Fee',
+        'hostel_maintenance': 'Hostel Maint. Fee',
+        'tempmaint_1': 'Hall 1-4 M/F Ekehuan',
+        'tempmaint_2': 'Hall 5 M/F',
+        'tempmaint_3': 'Clinical Hostel',
+        'transfer': 'Transfer Fee',
+        'gown': 'Gown Hire Fee',
+        'application': 'Application Fee'
+        }
