Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 8263)
@@ -29,5 +29,5 @@
     ApplicantManageFormPage, ApplicantEditFormPage,
     ApplicantRegistrationPage, ApplicantAddFormPage,
-    OnlinePaymentDisplayFormPage, AcceptanceFeePaymentAddPage,
+    OnlinePaymentDisplayFormPage, ApplicationFeePaymentAddPage,
     OnlinePaymentBreadcrumb, ExportPDFPaymentSlipPage,
     ApplicantBaseDisplayFormPage)
@@ -127,6 +127,5 @@
     """
     grok.context(ICustomApplicantOnlinePayment)
-    form_fields = grok.AutoFields(ICustomApplicantOnlinePayment).omit(
-        'surcharge_1', 'surcharge_2', 'surcharge_3', 'ac')
+    form_fields = grok.AutoFields(ICustomApplicantOnlinePayment).omit('ac')
     form_fields[
         'creation_date'].custom_widget = FriendlyDatetimeDisplayWidget('le')
@@ -140,5 +139,5 @@
         return tcode[len(tcode)-8:len(tcode)]
 
-class CustomAcceptanceFeePaymentAddPage(AcceptanceFeePaymentAddPage):
+class CustomApplicationFeePaymentAddPage(ApplicationFeePaymentAddPage):
     """ Page to add an online payment ticket
     """
@@ -146,7 +145,5 @@
 
     def _fillCustomFields(self, payment, session_config):
-        payment.surcharge_1 = session_config.surcharge_1
-        payment.surcharge_2 = session_config.surcharge_2
-        payment.surcharge_3 = session_config.surcharge_3
+        # No custom fields at the moment
         return payment
 
Index: main/waeup.uniben/trunk/src/waeup/uniben/applicants/payment.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/applicants/payment.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/applicants/payment.py	(revision 8263)
@@ -17,5 +17,5 @@
 ##
 """
-Acceptance fee payment.
+Application fee payment.
 """
 import grok
Index: main/waeup.uniben/trunk/src/waeup/uniben/interfaces.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interfaces.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interfaces.py	(revision 8263)
@@ -86,18 +86,6 @@
         )
 
-    surcharge_1 = schema.Float(
-        title = _(u'Surcharge Portal Provider'),
-        default = 0.0,
-        required = False,
-        )
-
-    surcharge_2 = schema.Float(
-        title = _(u'Surcharge Interswitch'),
-        default = 0.0,
-        required = False,
-        )
-
-    surcharge_3 = schema.Float(
-        title = _(u'Surcharge 3'),
+    application_fee = schema.Float(
+        title = _(u'Application Fee'),
         default = 0.0,
         required = False,
@@ -112,10 +100,4 @@
     booking_fee = schema.Float(
         title = _(u'Booking Fee'),
-        default = 0.0,
-        required = False,
-        )
-
-    acceptance_fee = schema.Float(
-        title = _(u'Acceptance Fee'),
         default = 0.0,
         required = False,
Index: main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py	(revision 8263)
@@ -23,10 +23,11 @@
 from waeup.kofa.browser.layout import KofaPage, UtilityView
 from waeup.kofa.accesscodes import create_accesscode
-from waeup.uniben.students.interfaces import ICustomStudentOnlinePayment
-from waeup.uniben.applicants.interfaces import ICustomApplicantOnlinePayment
+from waeup.kofa.interfaces import RETURNING
 from waeup.kofa.students.browser import write_log_message
 from waeup.kofa.students.viewlets import RequestCallbackActionButton as RCABStudent
 from waeup.kofa.applicants.viewlets import RequestCallbackActionButton as RCABApplicant
 from waeup.kofa.payments.interfaces import payment_categories
+from waeup.uniben.students.interfaces import ICustomStudentOnlinePayment
+from waeup.uniben.applicants.interfaces import ICustomApplicantOnlinePayment
 from waeup.uniben.students.utils import actions_after_student_payment
 from waeup.uniben.applicants.utils import actions_after_applicant_payment
@@ -52,41 +53,21 @@
 
 PRODUCT_ID = '57'
-SITE_NAME = 'xyz.waeup.org'
-PROVIDER_ACCT = '2345'
-PROVIDER_BANK_ID = '8'
-PROVIDER_ITEM_NAME = 'Kofa Provider Fee'
-INSTITUTION_ACCT = '1234'
-INSTITUTION_BANK_ID = '9'
-INSTITUTION_NAME = 'Sample University'
+SITE_NAME = 'uniben-kofa.waeup.org'
+PROVIDER_ACCT = '0061001000021095'
+PROVIDER_BANK_ID = '89'
+PROVIDER_ITEM_NAME = 'BT Education'
+INSTITUTION_NAME = 'Uniben'
 CURRENCY = '566'
-PAY_ITEM_ID = '5700'
-QUERY_URL =   'https://testwebpay.interswitchng.com/test_paydirect/services/TransactionQueryURL.aspx'
+#QUERY_URL = 'https://webpay.interswitchng.com/paydirect/services/TransactionQueryURL.aspx'
+QUERY_URL = 'https://testwebpay.interswitchng.com/test_paydirect/services/TransactionQueryURL.aspx'
+#POST_ACTION = 'https://webpay.interswitchng.com/paydirect/webpay/pay.aspx'
 POST_ACTION = 'https://testwebpay.interswitchng.com/test_paydirect/webpay/pay.aspx'
 
+#HOST = 'webpay.interswitchng.com'
 HOST = 'testwebpay.interswitchng.com'
+#URL = '/paydirect/services/TransactionQueryWs.asmx'
 URL = '/test_paydirect/services/TransactionQueryWs.asmx'
 httplib.HTTPConnection.debuglevel = 0
 
-
-def collect_xml_data(payment, xmldict):
-    xmldict['detail_ref'] = payment.p_id
-    xmldict['provider_amt'] = 100 * payment.surcharge_1
-    xmldict['provider_acct'] = PROVIDER_ACCT
-    xmldict['provider_bank_id'] = PROVIDER_BANK_ID
-    xmldict['provider_item_name'] = PROVIDER_ITEM_NAME
-    xmldict['institution_amt'] = 100 * payment.amount_auth
-    xmldict['institution_acct'] = INSTITUTION_ACCT
-    xmldict['institution_bank_id'] = INSTITUTION_BANK_ID
-    xmldict['institution_item_name'] = payment.p_category
-    xmldict['institution_name'] = INSTITUTION_NAME
-    # Interswitch amount is not part of the xml data
-    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="%(institution_bank_id)s" acct_num="%(institution_acct)s" />
-<item_detail item_id="2" item_name="%(provider_item_name)s" item_amt="%(provider_amt)d" bank_id="%(provider_bank_id)s" acct_num="%(provider_acct)s" />
-</item_details>
-</payment_item_detail>""" % xmldict
-    xml_data = """<input type="hidden" name="xml_data" value='%s'  />""" % xmltext
-    return xml_data
 
 def SOAP_post(soap_action,xml):
@@ -146,9 +127,5 @@
         payment.p_state = 'failed'
         return False
-    total_amount_auth = (
-        payment.amount_auth
-        + payment.surcharge_1
-        + payment.surcharge_2)
-    if payment.r_amount_approved != total_amount_auth:
+    if payment.r_amount_approved != payment.amount_auth:
         view.flash(_('Wrong amount'))
         user.loggerInfo(ob_class,'successful callback but wrong amount: %s'
@@ -167,5 +144,4 @@
     return True
 
-
 class InterswitchActionButtonStudent(RCABStudent):
     grok.order(1)
@@ -240,5 +216,5 @@
     site_name = SITE_NAME
     currency = CURRENCY
-    pay_item_id = PAY_ITEM_ID
+    pay_item_id = '5700'
     product_id = PRODUCT_ID
 
@@ -250,5 +226,5 @@
             return
 
-        self.student = self.context.getStudent()
+        student = self.student = self.context.getStudent()
         certificate = getattr(self.student['studycourse'],'certificate',None)
         xmldict = {}
@@ -259,15 +235,68 @@
             xmldict['department'] = None
             xmldict['faculty'] = None
-        self.amount = (self.context.amount_auth + self.context.surcharge_1 +
-            self.context.surcharge_2 + self.context.surcharge_3)
+        self.amount_special = 100 * (self.context.amount_auth - 150)
         self.category = payment_categories.getTermByToken(
             self.context.p_category).title
-        self.amount_100 = 100 * self.amount
         self.local_date_time = str(self.context.creation_date)
         self.site_redirect_url = self.url(self.context, 'request_webservice')
-        self.xml_data = collect_xml_data(self.context, xmldict)
-        return
-
-class InterswitchPageApplicant(InterswitchPageStudent):
+        # Provider data
+        xmldict['detail_ref'] = self.context.p_id
+        xmldict['provider_acct'] = PROVIDER_ACCT
+        xmldict['provider_bank_id'] = PROVIDER_BANK_ID
+        xmldict['provider_item_name'] = PROVIDER_ITEM_NAME
+        if student.current_mode.endswith('_ft') \
+            and student.state == RETURNING:
+            provider_amt = 600
+        else:
+            provider_amt = 1500
+        xmldict['provider_amt'] = 100 * provider_amt
+        # Institution data
+        studycourse = student['studycourse']
+        xmldict['institution_acct'] = ''
+        xmldict['institution_bank_id'] = ''
+        if student.current_mode.endswith('_ft'):
+            #post-grad full-time students of all faculties
+            if studycourse.current_level in ('700','710','800','810','900','910'):
+                xmldict['institution_acct'] = '1012842833'
+                xmldict['institution_bank_id'] = '117'
+            #all other part-time students depending on faculty
+            elif student.faccode in ('SSC','LAW','MED'):
+                xmldict['institution_acct'] = '0005986938'
+                xmldict['institution_bank_id'] = '31'
+            elif student.faccode in ('ENG','PSC','PHA'):
+                xmldict['institution_acct'] = '0014413973'
+                xmldict['institution_bank_id'] = '129'
+            elif student.faccode in ('LSC','DEN','AGR'):
+                xmldict['institution_acct'] = '1012801319'
+                xmldict['institution_bank_id'] = '117'
+            elif student.faccode in ('ART','EDU','MGS','BMS'):
+                xmldict['institution_acct'] = '6220027556'
+                xmldict['institution_bank_id'] = '51'
+        elif student.current_mode.endswith('_pt'):
+            #post-grad part-time students of all faculties
+            if studycourse.current_level in ('700','710','800','810','900','910'):
+                xmldict['institution_acct'] = '0023708207'
+                xmldict['institution_bank_id'] = '72'
+            #all other part-time students depending on faculty
+            elif student.faccode in ('ENG','LAW','MGS'):
+                xmldict['institution_acct'] = '2019006824'
+                xmldict['institution_bank_id'] = '8'
+            elif student.faccode in ('IPA','PHA','SSC','AGR','EDU'):
+                xmldict['institution_acct'] = '0122012109'
+                xmldict['institution_bank_id'] = '16'
+        xmldict['institution_amt'] = self.amount_special - 100 * provider_amt
+        xmldict['institution_item_name'] = self.context.p_category
+        xmldict['institution_name'] = INSTITUTION_NAME
+        # Interswitch amount is not part of the xml data
+        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="%(institution_bank_id)s" acct_num="%(institution_acct)s" />
+<item_detail item_id="2" item_name="%(provider_item_name)s" item_amt="%(provider_amt)d" bank_id="%(provider_bank_id)s" acct_num="%(provider_acct)s" />
+</item_details>
+</payment_item_detail>""" % xmldict
+        self.xml_data = """<input type="hidden" name="xml_data" value='%s'  />""" % xmltext
+        return
+
+class InterswitchPageApplicant(KofaPage):
     """ View which sends a POST request to the Interswitch
     CollegePAY payment gateway.
@@ -276,31 +305,55 @@
     grok.require('waeup.payApplicant')
     grok.template('applicant_goto_interswitch')
+    grok.name('goto_interswitch')
+    label = _('Submit data to CollegePAY (Interswitch Payment Gateway)')
+    submit_button = _('Submit')
+    action = POST_ACTION
+    site_name = SITE_NAME
+    currency = CURRENCY
+    pay_item_id = '5700'
+    product_id = PRODUCT_ID
 
     def update(self):
-        #if self.context.p_state != 'unpaid':
-        #    self.flash(_("Payment ticket can't be re-send to CollegePAY."))
-        #    self.redirect(self.url(self.context, '@@index'))
-        #    return
+        if self.context.p_state != 'unpaid':
+            self.flash(_("Payment ticket can't be re-send to CollegePAY."))
+            self.redirect(self.url(self.context, '@@index'))
+            return
         self.applicant = self.context.__parent__
         xmldict = {}
-        xmldict['department'] = None
-        xmldict['faculty'] = None
         self.category = payment_categories.getTermByToken(
             self.context.p_category).title
-        self.amount = (self.context.amount_auth + self.context.surcharge_1 +
-            self.context.surcharge_2 + self.context.surcharge_3)
-        self.amount_100 = 100 * self.amount
+        # substract invisible Interswitch surcharge
+        self.amount_special = 100 * (self.context.amount_auth - 150)
         self.local_date_time = str(self.context.creation_date)
         self.site_redirect_url = self.url(self.context, 'request_webservice')
-        self.xml_data = collect_xml_data(self.context, xmldict)
+        # Provider data
+        xmldict['detail_ref'] = self.context.p_id
+        xmldict['provider_amt'] = 100 * 400
+        xmldict['provider_acct'] = PROVIDER_ACCT
+        xmldict['provider_bank_id'] = PROVIDER_BANK_ID
+        xmldict['provider_item_name'] = PROVIDER_ITEM_NAME
+        # Institution data
+        xmldict['institution_amt'] = 100 * (self.context.amount_auth - 400 - 150)
+        xmldict['institution_acct'] = '123456'
+        xmldict['institution_bank_id'] = '99'
+        xmldict['institution_item_name'] = self.context.p_category
+        xmldict['institution_name'] = INSTITUTION_NAME
+        # Interswitch amount is not part of the xml data
+        xmltext = """<payment_item_detail>
+<item_details detail_ref="%(detail_ref)s" college="%(institution_name)s">
+<item_detail item_id="1" item_name="%(institution_item_name)s" item_amt="%(institution_amt)d" bank_id="%(institution_bank_id)s" acct_num="%(institution_acct)s" />
+<item_detail item_id="2" item_name="%(provider_item_name)s" item_amt="%(provider_amt)d" bank_id="%(provider_bank_id)s" acct_num="%(provider_acct)s" />
+</item_details>
+</payment_item_detail>""" % xmldict
+        self.xml_data = """<input type="hidden" name="xml_data" value='%s'  />""" % xmltext
         return
 
 # Deprecated
-class InterswitchPaymentCallbackPageStudent(UtilityView, grok.View):
-    """ Callback view for the CollegePAY gateway
-    """
-    grok.context(ICustomStudentOnlinePayment)
-    grok.name('isw_callback')
-    grok.require('waeup.payStudent')
+#class InterswitchPaymentCallbackPageStudent(UtilityView, grok.View):
+#    """ Callback view for the CollegePAY gateway
+#    """
+#    grok.context(ICustomStudentOnlinePayment)
+#    grok.name('isw_callback')
+#    grok.require('waeup.payStudent')
 
     # This view is not yet working for offline querying transactions
@@ -310,59 +363,48 @@
     # the RequestCallbackActionButton by a RequestWebserviceActionButton
 
-    def update(self):
-        if self.context.p_state == 'paid':
-            self.flash(_('This ticket has already been paid.'))
-            return
-        student = self.context.getStudent()
-        query = self.request.form
-        write_log_message(self,'callback received: %s' % query)
-
-        self.context.r_card_num = query.get('cardNum', None)
-        self.context.r_code = query.get('resp', None)
-        self.context.r_pay_reference  = query.get('payRef', None)
-        self.context.r_amount_approved = float(query.get('apprAmt', '0.0')) / 100
-        self.context.r_desc = query.get('desc', None)
-
-        if self.context.r_code != '00':
-            self.flash(_('Unsuccessful callback: ${a}',
-                mapping = {'a': query.get('desc', _('Incomplete query string.'))}))
-            write_log_message(self,'unsuccessful callback: %s' % self.context.p_id)
-            self.context.p_state = 'failed'
-            return
-
-        total_amount_auth = (
-            self.context.amount_auth
-            + self.context.surcharge_1
-            + self.context.surcharge_2)
-
-        if self.context.r_amount_approved != total_amount_auth:
-            self.flash(_('Wrong amount'))
-            write_log_message(
-                self,'successful but wrong amount: %s' % self.context.p_id)
-            self.context.p_state = 'failed'
-            return
-
-        try:
-            validation_list = get_SOAP_response(
-                PRODUCT_ID, self.context.p_id).split(':')
+#    def update(self):
+#        if self.context.p_state == 'paid':
+#            self.flash(_('This ticket has already been paid.'))
+#            return
+#        student = self.context.getStudent()
+#        query = self.request.form
+#        write_log_message(self,'callback received: %s' % query)
+#        self.context.r_card_num = query.get('cardNum', None)
+#        self.context.r_code = query.get('resp', None)
+#        self.context.r_pay_reference  = query.get('payRef', None)
+#        self.context.r_amount_approved = float(query.get('apprAmt', '0.0')) / 100
+#        self.context.r_desc = query.get('desc', None)
+#        if self.context.r_code != '00':
+#            self.flash(_('Unsuccessful callback: ${a}',
+#                mapping = {'a': query.get('desc', _('Incomplete query string.'))}))
+#            write_log_message(self,'unsuccessful callback: %s' % self.context.p_id)
+#            self.context.p_state = 'failed'
+#            return
+#        if self.context.r_amount_approved != payment.amount_auth:
+#            self.flash(_('Wrong amount'))
+#            write_log_message(
+#                self,'successful but wrong amount: %s' % self.context.p_id)
+#            self.context.p_state = 'failed'
+#            return
+#        try:
+#            validation_list = get_SOAP_response(
+#                PRODUCT_ID, self.context.p_id).split(':')
             # Validation does not make sense yet since the query string
             # formats are conflicting. We are only printing the validation
             # string, nothing else.
-            print 'WARNING: Webservice validation is not yet implemented'
-            print 'validation list: %s' % validation_list
-        except:
-            print 'Connection to webservice failed.'
-
+#            print 'WARNING: Webservice validation is not yet implemented'
+#            print 'validation list: %s' % validation_list
+#        except:
+#            print 'Connection to webservice failed.'
         # Add webservice validation here
-
-        write_log_message(self,'valid callback: %s' % self.context.p_id)
-        self.context.p_state = 'paid'
-        self.context.payment_date = datetime.now()
-        actions_after_student_payment(student, self.context, self)
-        return
-
-    def render(self):
-        self.redirect(self.url(self.context, '@@index'))
-        return
+#        write_log_message(self,'valid callback: %s' % self.context.p_id)
+#        self.context.p_state = 'paid'
+#        self.context.payment_date = datetime.now()
+#        actions_after_student_payment(student, self.context, self)
+#        return
+
+#    def render(self):
+#        self.redirect(self.url(self.context, '@@index'))
+#        return
 
 # Alternative solution, replaces InterswitchPaymentCallbackPage
Index: main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser_templates/applicant_goto_interswitch.pt
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser_templates/applicant_goto_interswitch.pt	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser_templates/applicant_goto_interswitch.pt	(revision 8263)
@@ -15,5 +15,5 @@
           Total Amount Authorized:</td>
         <td>
-          <span tal:replace="view/amount">AMOUNT</span>
+          <span tal:replace="view/context/amount_auth">AMOUNT</span>
         </td>
       </tr>
@@ -62,5 +62,5 @@
   <input type="hidden" name="site_name" tal:attributes="value view/site_name" />
   <input type="hidden" name="local_date_time" tal:attributes="value view/local_date_time" />
-  <input type="hidden" name="amount" tal:attributes="value view/amount_100" />
+  <input type="hidden" name="amount" tal:attributes="value view/amount_special" />
   <input type="hidden" name="txn_ref" tal:attributes="value view/context/p_id" />
   <input type="hidden" name="pay_item_name" tal:attributes="value view/context/p_item" />
Index: main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser_templates/student_goto_interswitch.pt
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser_templates/student_goto_interswitch.pt	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser_templates/student_goto_interswitch.pt	(revision 8263)
@@ -15,5 +15,5 @@
           Total Amount Authorized:</td>
         <td>
-          <span tal:replace="view/amount">AMOUNT</span>
+          <span tal:replace="view/context/amount_auth">AMOUNT</span>
         </td>
       </tr>
@@ -62,5 +62,5 @@
   <input type="hidden" name="site_name" tal:attributes="value view/site_name" />
   <input type="hidden" name="local_date_time" tal:attributes="value view/local_date_time" />
-  <input type="hidden" name="amount" tal:attributes="value view/amount_100" />
+  <input type="hidden" name="amount" tal:attributes="value view/amount_special" />
   <input type="hidden" name="txn_ref" tal:attributes="value view/context/p_id" />
   <input type="hidden" name="pay_item_name" tal:attributes="value view/context/p_item" />
Index: main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/interswitch/tests.py	(revision 8263)
@@ -59,14 +59,14 @@
 
 
-    def callback_url(self, payment_url, resp, apprAmt):
-        return payment_url + (
-            '/isw_callback?echo=' +
-            '&resp=%s' +
-            '&desc=Something went wrong' +
-            '&txnRef=p1331792385335' +
-            '&payRef=' + '&retRef=' +
-            '&cardNum=0' +
-            '&apprAmt=%s' +
-            '&url=http://xyz') % (resp, apprAmt)
+#    def callback_url(self, payment_url, resp, apprAmt):
+#        return payment_url + (
+#            '/isw_callback?echo=' +
+#            '&resp=%s' +
+#            '&desc=Something went wrong' +
+#            '&txnRef=p1331792385335' +
+#            '&payRef=' + '&retRef=' +
+#            '&cardNum=0' +
+#            '&apprAmt=%s' +
+#            '&url=http://xyz') % (resp, apprAmt)
 
     def test_interswitch_form(self):
@@ -77,27 +77,27 @@
                            self.browser.contents)
         self.assertMatches(
-            '...<input type="hidden" name="amount" value="4000000.0" />...',
+            '...<input type="hidden" name="amount" value="3985000.0" />...',
             self.browser.contents)
 
-    @external_test
-    def test_callback(self):
+#    @external_test
+#    def test_callback(self):
 
         # Manager can call callback manually
-        self.browser.open(self.callback_url(self.payment_url, 'XX', '300'))
-        self.assertMatches('...Unsuccessful callback: Something went wrong...',
-                          self.browser.contents)
-        self.assertMatches('...Failed...',
-                           self.browser.contents)
-        self.browser.open(self.payment_url + '/isw_callback')
-        self.assertMatches('...Unsuccessful callback: Incomplete query string...',
-                          self.browser.contents)
-        self.assertMatches('...Failed...',
-                           self.browser.contents)
-        self.browser.open(self.callback_url(self.payment_url, '00', '300000'))
-        self.assertMatches('...Wrong amount...',
-                          self.browser.contents)
-        self.browser.open(self.callback_url(self.payment_url, '00', '4000000'))
-        self.assertMatches('...Valid callback received...',
-                          self.browser.contents)
+#        self.browser.open(self.callback_url(self.payment_url, 'XX', '300'))
+#        self.assertMatches('...Unsuccessful callback: Something went wrong...',
+#                          self.browser.contents)
+#        self.assertMatches('...Failed...',
+#                           self.browser.contents)
+#        self.browser.open(self.payment_url + '/isw_callback')
+#        self.assertMatches('...Unsuccessful callback: Incomplete query string...',
+#                          self.browser.contents)
+#        self.assertMatches('...Failed...',
+#                           self.browser.contents)
+#        self.browser.open(self.callback_url(self.payment_url, '00', '300000'))
+#        self.assertMatches('...Wrong amount...',
+#                          self.browser.contents)
+#        self.browser.open(self.callback_url(self.payment_url, '00', '4000000'))
+#        self.assertMatches('...Valid callback received...',
+#                          self.browser.contents)
 
     @external_test
Index: main/waeup.uniben/trunk/src/waeup/uniben/payments/interfaces.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/payments/interfaces.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/payments/interfaces.py	(revision 8263)
@@ -25,25 +25,4 @@
 
     """
-
-    surcharge_1 = schema.Float(
-        title = _(u'Portal Fee'),
-        default = 0.0,
-        required = False,
-        readonly = True,
-        )
-
-    surcharge_2 = schema.Float(
-        title = _(u'Surcharge 2'),
-        default = 0.0,
-        required = False,
-        readonly = True,
-        )
-
-    surcharge_3 = schema.Float(
-        title = _(u'Surcharge 3'),
-        default = 0.0,
-        required = False,
-        readonly = True,
-        )
 
     ac = schema.TextLine(
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 8263)
@@ -181,7 +181,5 @@
 
     def _fillCustomFields(self, payment, pay_details):
-        payment.surcharge_1 = pay_details['surcharge_1']
-        payment.surcharge_2 = pay_details['surcharge_2']
-        payment.surcharge_3 = pay_details['surcharge_3']
+        # No custom fields at the moment
         return payment
 
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 8262)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 8263)
@@ -23,5 +23,5 @@
 from waeup.uniben.interfaces import MessageFactory as _
 
-def get_school_fee(student, surcharge):
+def get_school_fee(student):
     study_mode = student['studycourse'].certificate.study_mode
     entry_mode = student['studycourse'].entry_mode
@@ -34,8 +34,8 @@
         # fresh
         if state == CLEARED:
-            return 40000.0 - surcharge
+            return 40000.0
         # returning
         elif state == RETURNING:
-            return 20000.0 - surcharge
+            return 20000.0
         else:
             return 0.0
@@ -88,5 +88,4 @@
     def getPaymentDetails(self, category, student):
         d = {}
-        d['surcharge_1'] = d['surcharge_2'] = d['surcharge_3'] = 0.0
         d['p_item'] = u''
         d['amount'] = 0.0
@@ -111,7 +110,5 @@
             d['amount'] = academic_session.clearance_fee
         elif category == 'schoolfee':
-            d['surcharge_1'] = academic_session.surcharge_1
-            d['surcharge_2'] = academic_session.surcharge_2
-            d['amount'] = get_school_fee(student, d['surcharge_1'] + d['surcharge_2'])
+            d['amount'] = get_school_fee(student)
             code = student['studycourse'].certificate.code
             d['p_item'] = code
