Ignore:
Timestamp:
14 Dec 2016, 16:57:13 (8 years ago)
Author:
Henrik Bettermann
Message:

Implement payment by instalments.

Location:
main/kofacustom.coewarri/trunk/src/kofacustom/coewarri/students/tests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/kofacustom.coewarri/trunk/src/kofacustom/coewarri/students/tests/test_browser.py

    r14035 r14344  
    4242    layer = FunctionalLayer
    4343
    44     def test_dummytest(self):
     44    def test_for_instalment_payments(self):
     45
     46        #configuration_1 = createObject('waeup.SessionConfiguration')
     47        #configuration_1.academic_session = 2015
     48        #self.app['configuration'].addSessionConfiguration(configuration_1)
     49        self.student['studycourse'].certificate.study_mode = 'ug_ft'
     50        self.student.nationality = u'NG'
     51        # Fresh student
     52        IWorkflowState(self.student).setState('cleared')
     53        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     54        self.browser.open(self.payments_path + '/addop')
     55        self.browser.open(self.payments_path + '/addop')
     56        # Add first instalment
     57        self.browser.getControl(name="form.p_category").value = ['schoolfee_1']
     58        self.browser.getControl("Create ticket").click()
     59        self.assertTrue('ticket created' in self.browser.contents)
     60        self.browser.open(self.payments_path)
     61        ctrl = self.browser.getControl(name='val_id')
     62        p_id = ctrl.options[0]
     63        self.browser.open(self.payments_path + '/' + p_id + '/approve')
     64        # Add the second instalment ...
     65        self.browser.open(self.payments_path + '/addop')
     66        self.browser.getControl(name="form.p_category").value = ['schoolfee_2']
     67        self.browser.getControl("Create ticket").click()
     68        self.assertTrue('ticket created' in self.browser.contents)
     69        # ... approve the second instalment ...
     70        ctrl = self.browser.getControl(name='val_id')
     71        p_id = ctrl.options[1]
     72        self.browser.open(self.payments_path + '/' + p_id + '/approve')
     73        self.assertEqual(self.student['payments'].values()[0].p_category, 'schoolfee_1')
     74        self.assertEqual(self.student['payments'].values()[1].p_category, 'schoolfee_2')
     75        # 79200 / 2 + 300
     76        self.assertEqual(self.student['payments'].values()[0].amount_auth, 39900.0)
     77        self.assertEqual(self.student['payments'].values()[1].amount_auth, 39900.0)
     78        # The  two payments belong to the same session and level.
     79        self.assertEqual(self.student['payments'].values()[0].p_session, 2004)
     80        self.assertEqual(self.student['payments'].values()[0].p_level, 100)
     81        self.assertEqual(self.student['payments'].values()[1].p_session, 2004)
     82        self.assertEqual(self.student['payments'].values()[1].p_level, 100)
     83
     84        # Returning student
     85        configuration_2 = createObject('waeup.SessionConfiguration')
     86        configuration_2.academic_session = 2005
     87        self.app['configuration'].addSessionConfiguration(configuration_2)
     88        IWorkflowState(self.student).setState('returning')
     89        self.browser.open(self.payments_path + '/addop')
     90        self.browser.getControl(name="form.p_category").value = ['schoolfee_1']
     91        self.browser.getControl("Create ticket").click()
     92        self.browser.open(self.payments_path + '/addop')
     93        self.browser.getControl(name="form.p_category").value = ['schoolfee_2']
     94        self.browser.getControl("Create ticket").click()
     95        self.browser.open(self.payments_path)
     96        ctrl = self.browser.getControl(name='val_id')
     97        # Nothing happens if we approve the 2nd instalment for session 2005
     98        self.browser.open(self.payments_path + '/' + ctrl.options[3] + '/approve')
     99        self.assertEqual(self.student.state, 'returning')
     100        # Workflow transition is trigered if we approve the 1st indtalment
     101        self.browser.open(self.payments_path + '/' + ctrl.options[2] + '/approve')
     102        self.assertEqual(self.student.state, 'school fee paid')
     103        self.assertEqual(self.student.current_level, 200)
     104        self.assertEqual(self.student.current_session, 2005)
     105        # 63100 / 2 + 300
     106        self.assertEqual(self.student['payments'].values()[2].amount_auth, 31850.0)
     107        self.assertEqual(self.student['payments'].values()[3].amount_auth, 31850.0)
     108        # The last two payments belong to the same session and level.
     109        self.assertEqual(self.student['payments'].values()[2].p_session, 2005)
     110        self.assertEqual(self.student['payments'].values()[2].p_level, 200)
     111        self.assertEqual(self.student['payments'].values()[3].p_session, 2005)
     112        self.assertEqual(self.student['payments'].values()[3].p_level, 200)
    45113        return
  • main/kofacustom.coewarri/trunk/src/kofacustom/coewarri/students/tests/test_utils.py

    r14336 r14344  
    2727        self.app['configuration']['2016'].clearance_fee = 10234.0
    2828
    29         error, payment = utils.setPaymentDetails('schoolfee', self.student)
    30         self.assertEqual(payment, None)
    31         self.assertEqual(error, u'Amount could not be determined.')
    32         IWorkflowState(self.student).setState('cleared')
    3329        error, payment = utils.setPaymentDetails('schoolfee',self.student)
    3430        self.assertEqual(payment.p_level, 100)
    3531        self.assertEqual(payment.p_session, 2016)
    3632        self.assertEqual(payment.amount_auth, 79500.0)
     33        self.assertEqual(payment.p_item, u'CERT1')
     34        self.assertEqual(error, None)
     35
     36        error, payment = utils.setPaymentDetails('schoolfee_1',self.student)
     37        self.assertEqual(payment.p_level, 100)
     38        self.assertEqual(payment.p_session, 2016)
     39        self.assertEqual(payment.amount_auth, 39900.0)
     40        self.assertEqual(payment.p_item, u'CERT1')
     41        self.assertEqual(error, None)
     42
     43        error, payment = utils.setPaymentDetails('schoolfee_2',self.student)
     44        self.assertEqual(payment.p_level, 100)
     45        self.assertEqual(payment.p_session, 2016)
     46        self.assertEqual(payment.amount_auth, 39900.0)
    3747        self.assertEqual(payment.p_item, u'CERT1')
    3848        self.assertEqual(error, None)
Note: See TracChangeset for help on using the changeset viewer.