Changeset 17431 for main/waeup.aaue/trunk/src/waeup/aaue
- Timestamp:
- 16 Jun 2023, 11:43:53 (17 months ago)
- Location:
- main/waeup.aaue/trunk/src/waeup/aaue
- Files:
-
- 3 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.aaue/trunk/src/waeup/aaue/interswitch/tests.py
r17083 r17431 71 71 self.browser.getControl("Save").click() 72 72 73 def test_interswitch_form_regular(self):73 def deactivated_test_interswitch_form_regular(self): 74 74 self.browser.getControl("Add online").click() 75 75 self.assertTrue('ticket created' in self.browser.contents) … … 101 101 in self.browser.contents) 102 102 103 def test_interswitch_form_pg(self):103 def deactivated_test_interswitch_form_pg(self): 104 104 self.applicant.applicant_id = u'pg_anything' 105 105 self.browser.getControl("Add online").click() … … 135 135 in self.browser.contents) 136 136 137 def test_interswitch_form_utme(self):137 def deactivated_test_interswitch_form_utme(self): 138 138 self.applicant.applicant_id = u'utme_anything' 139 139 self.browser.getControl("Add online").click() … … 166 166 in self.browser.contents) 167 167 168 def test_interswitch_form_bridge(self):168 def deactivated_test_interswitch_form_bridge(self): 169 169 self.applicant.applicant_id = u'bridge_xyz' 170 170 self.browser.getControl("Add online").click() … … 205 205 self.app['configuration']['2004'].interswitch_enabled = True 206 206 207 def test_interswitch_form_pt_school_fees(self):207 def disabled_test_interswitch_form_pt_school_fees(self): 208 208 self.certificate.study_mode = 'ug_pt' 209 209 self.student['studycourse'].entry_session = 2013 … … 232 232 self.student['payments']['xyz'] = acc_payment 233 233 self.browser.getLink("Pay via Interswitch", index=0).click() 234 self.assertTrue('<input type="hidden" name="pay_item_id" value="105" />'235 in self.browser.contents)236 234 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 237 235 self.assertEqual(self.student.current_mode, 'ug_pt') … … 246 244 def test_interswitch_form_regular_school_fees(self): 247 245 self.certificate.study_mode = 'ug_ft' 248 self.student['studycourse'].entry_session = 2013249 self.student['studycourse'].certificate.school_fee_3 = 51750.0246 #self.student['studycourse'].entry_session = 2013 247 #self.student['studycourse'].certificate.school_fee_3 = 51750.0 250 248 # Manager can access InterswitchForm 251 249 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') … … 260 258 self.assertTrue('Amount Authorized' in 261 259 self.browser.contents) 262 self.assertTrue('<span>51750.0</span>' in self.browser.contents) 263 self.payment_url = self.browser.url 264 self.browser.getLink("Pay via Interswitch", index=0).click() 265 self.assertTrue( 266 'Please pay acceptance fee first' in self.browser.contents) 267 acc_payment = createObject('waeup.StudentOnlinePayment') 268 acc_payment.p_state = 'paid' 269 acc_payment.p_category = 'clearance' 270 self.student['payments']['xyz'] = acc_payment 271 self.browser.getLink("Pay via Interswitch", index=0).click() 272 self.assertTrue('<input type="hidden" name="pay_item_id" value="107" />' 273 in self.browser.contents) 260 self.assertTrue('<span>239500.0</span>' in self.browser.contents) 261 self.payment_url = self.browser.url 262 self.browser.getLink("Pay via Interswitch", index=0).click() 263 #self.assertTrue( 264 # 'Please pay acceptance fee first' in self.browser.contents) 265 #acc_payment = createObject('waeup.StudentOnlinePayment') 266 #acc_payment.p_state = 'paid' 267 #acc_payment.p_category = 'clearance' 268 #self.student['payments']['xyz'] = acc_payment 269 #self.browser.getLink("Pay via Interswitch", index=0).click() 274 270 self.assertTrue('Total Amount Authorized:' 275 271 in self.browser.contents) 276 272 self.assertEqual(self.student.current_mode, 'ug_ft') 277 273 self.assertTrue( 278 '<input type="hidden" name="amount" value="5175000" />' 279 in self.browser.contents) 280 self.assertTrue( 281 'item_name="School Fee Plus" item_amt="4755000" bank_id="117" ' 282 'acct_num="1010827641"' in self.browser.contents) 283 284 def test_interswitch_form_pt_acceptance_fees(self): 274 '<input type="hidden" name="amount" value="24220000" />' 275 in self.browser.contents) 276 self.assertTrue( 277 'item_name="Faculty Fee (tuition)" item_amt="18400000" bank_id="7" ' 278 'acct_num="1022438743"' in self.browser.contents) 279 280 self.student['studycourse'].entry_session = 2015 281 self.browser.open(self.payments_path + '/addop') 282 self.browser.getControl(name="form.p_category").value = ['schoolfee_2'] 283 self.browser.getControl("Create ticket").click() 284 self.assertTrue('ticket created' in 285 self.browser.contents) 286 self.assertTrue('<span>92000.0</span>' in self.browser.contents) 287 self.payment_url = self.browser.url 288 self.browser.getLink("Pay via Interswitch", index=0).click() 289 self.assertTrue( 290 '<input type="hidden" name="amount" value="9220000" />' 291 in self.browser.contents) 292 self.assertTrue( 293 'item_name="School Fee (2nd instalment)" item_amt="9200000" bank_id="7" acct_num="1022438743"' in self.browser.contents) 294 295 self.browser.open(self.payments_path + '/addop') 296 self.browser.getControl(name="form.p_category").value = ['schoolfee_1'] 297 self.browser.getControl("Create ticket").click() 298 self.assertTrue('ticket created' in 299 self.browser.contents) 300 self.assertTrue('<span>147500.0</span>' in self.browser.contents) 301 self.payment_url = self.browser.url 302 self.browser.getLink("Pay via Interswitch", index=0).click() 303 self.assertTrue( 304 '<input type="hidden" name="amount" value="15020000" />' 305 in self.browser.contents) 306 self.assertTrue( 307 'item_name="Faculty Fee (lmsplus)" item_amt="2000000" bank_id="7" acct_num="1022438743"' in self.browser.contents) 308 self.assertTrue( 309 'item_name="Faculty Fee (tuition)" item_amt="9200000" bank_id="7" acct_num="1022438743"' in self.browser.contents) 310 311 self.browser.open(self.payments_path + '/addop') 312 self.browser.getControl(name="form.p_category").value = ['schoolfee_2'] 313 self.browser.getControl("Create ticket").click() 314 self.assertTrue('ticket created' in 315 self.browser.contents) 316 self.assertTrue('<span>92000.0</span>' in self.browser.contents) 317 self.payment_url = self.browser.url 318 self.browser.getLink("Pay via Interswitch", index=0).click() 319 self.assertTrue( 320 '<input type="hidden" name="amount" value="9220000" />' 321 in self.browser.contents) 322 self.assertTrue( 323 'item_name="School Fee (2nd instalment)" item_amt="9200000" bank_id="7" acct_num="1022438743"' in self.browser.contents) 324 325 def disabled_test_interswitch_form_pt_acceptance_fees(self): 285 326 self.certificate.study_mode = 'ug_pt' 286 327 self.app['configuration']['2004'].clearance_fee_ug_pt = 40200.0 … … 301 342 self.payment_url = self.browser.url 302 343 self.browser.getLink("Pay via Interswitch", index=0).click() 303 self.assertTrue('<input type="hidden" name="pay_item_id" value="104" />' in304 self.browser.contents)305 344 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 306 345 self.assertTrue( … … 314 353 def test_interswitch_form_regular_acceptance_fees(self): 315 354 self.certificate.study_mode = 'ug_ft' 316 self.app['configuration']['2004'].clearance_fee = 43050.0355 #self.app['configuration']['2004'].clearance_fee = 43050.0 317 356 # Manager can access InterswitchForm 318 357 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') … … 325 364 self.assertTrue('ticket created' in self.browser.contents) 326 365 self.assertTrue('Amount Authorized' in self.browser.contents) 327 self.assertTrue('<span>43050.0</span>' in self.browser.contents) 328 self.payment_url = self.browser.url 329 self.browser.getLink("Pay via Interswitch", index=0).click() 330 self.assertTrue('<input type="hidden" name="pay_item_id" value="102" />' 331 in self.browser.contents) 332 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 333 self.assertTrue( 334 '<input type="hidden" name="amount" value="4305000" />' 335 in self.browser.contents) 336 self.assertTrue( 337 'item_name="Acceptance Fee Plus" item_amt="4135000" bank_id="117" ' 338 'acct_num="1010835352"' in self.browser.contents) 339 340 def test_interswitch_form_concessional_fees(self): 366 self.assertTrue('<span>16800.0</span>' in self.browser.contents) 367 self.browser.getLink("Pay via Interswitch", index=0).click() 368 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 369 self.assertTrue( 370 '<input type="hidden" name="amount" value="1850000" />' 371 in self.browser.contents) 372 self.assertTrue(self.student['payments'].values()[0].net_amt == 16800) 373 self.assertTrue( 374 'item_name="Acceptance Fee (acceptance)" item_amt="1400000" bank_id="8" ' 375 'acct_num="2000249757"' in self.browser.contents) 376 377 self.certificate.study_mode = 'bridge' 378 self.browser.open(self.payments_path + '/addop') 379 self.browser.getControl(name="form.p_category").value = ['clearance'] 380 self.browser.getControl("Create ticket").click() 381 self.assertTrue('ticket created' in self.browser.contents) 382 self.assertTrue('Amount Authorized' in self.browser.contents) 383 self.assertTrue('<span>14000.0</span>' in self.browser.contents) 384 self.browser.getLink("Pay via Interswitch", index=0).click() 385 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 386 self.assertTrue( 387 '<input type="hidden" name="amount" value="1570000" />' 388 in self.browser.contents) 389 self.assertTrue(self.student['payments'].values()[1].net_amt == 14000) 390 self.assertTrue( 391 'item_name="Acceptance Fee" item_amt="1400000" bank_id="8" ' 392 'acct_num="2000249757"' in self.browser.contents) 393 394 def deactivated_test_interswitch_form_concessional_fees(self): 341 395 self.certificate.study_mode = 'ug_ft' 342 396 self.app['configuration']['2004'].concessional_fee = 1567.0 … … 356 410 self.certificate.study_mode = 'ug_ft' 357 411 self.browser.getLink("Pay via Interswitch", index=0).click() 358 self.assertTrue('<input type="hidden" name="pay_item_id" value="107" />'359 in self.browser.contents)360 412 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 361 413 self.assertTrue( … … 367 419 in self.browser.contents) 368 420 369 def test_interswitch_form_ticket_expired(self):421 def deactivated_test_interswitch_form_ticket_expired(self): 370 422 self.certificate.study_mode = 'ug_pt' 371 423 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') … … 380 432 self.browser.open(self.payments_path + '/xyz') 381 433 self.browser.getLink("Pay via Interswitch", index=0).click() 382 self.assertTrue('<input type="hidden" name="pay_item_id" value="104" />'383 in self.browser.contents)384 434 self.assertTrue('Total Amount Authorized:' in self.browser.contents) 385 435 self.assertEqual(self.student.current_mode, 'ug_pt') -
main/waeup.aaue/trunk/src/waeup/aaue/locales/en/LC_MESSAGES/waeup.kofa.po
r17425 r17431 127 127 #: school_fee_1 128 128 msgid "Initial School Fee" 129 msgstr " Current School Fees"129 msgstr "School Fees 1 (not used)" 130 130 131 131 #: school_fee_2 132 132 msgid "Returning School Fee" 133 msgstr "School Fees 2 015-2020"133 msgstr "School Fees 2 (not used)" 134 134 135 135 #: school_fee_3 136 136 msgid "Foreigner Initial School Fee" 137 msgstr "School Fees till 2015"137 msgstr "School Fees 3 (not used)" 138 138 139 139 #: school_fee_4 -
main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py
r17430 r17431 90 90 ICustomStudentBase, 91 91 ICustomStudentStudyCourse) 92 from waeup.aaue.interswitch.browser import gateway_net_amt93 92 from waeup.aaue.interfaces import MessageFactory as _ 94 93 … … 340 339 if self.context.p_category in ('schoolfee_incl', 'schoolfee_1') \ 341 340 and academic_session: 342 #welfare_fee = gateway_net_amt(academic_session.welfare_fee)343 #union_fee = gateway_net_amt(academic_session.union_fee)344 341 if self.context.student.entry_session == 2016 \ 345 342 and self.context.student.entry_mode == 'ug_ft' \ -
main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py
r17057 r17431 179 179 cpt_value = ctrl.options[0] 180 180 # School fee payment ticket can be added ... 181 self.student['studycourse'].certificate.school_fee_3 = 6666.0181 #self.student['studycourse'].certificate.school_fee_3 = 6666.0 182 182 self.student.nationality = u'NG' 183 183 self.browser.open(self.payments_path + '/addop') … … 222 222 self.browser.contents) 223 223 self.browser.open(self.payments_path + '/addop') 224 self.browser.getControl(name="form.p_category").value = ['late_registration']225 self.browser.getControl("Create ticket").click()226 self.assertMatches('...ticket created...',227 self.browser.contents)224 #self.browser.getControl(name="form.p_category").value = ['late_registration'] 225 #self.browser.getControl("Create ticket").click() 226 #self.assertMatches('...ticket created...', 227 # self.browser.contents) 228 228 return 229 229 … … 233 233 self.app['configuration'].addSessionConfiguration(configuration_1) 234 234 self.student['studycourse'].certificate.study_mode = 'ug_pt' 235 self.student['studycourse'].certificate.school_fee_2 = 6666.0236 self.app['configuration']['2015'].union_fee = 1250.0237 self.app['configuration']['2015'].welfare_fee = 750.0235 #self.student['studycourse'].certificate.school_fee_2 = 6666.0 236 #self.app['configuration']['2015'].union_fee = 1250.0 237 #self.app['configuration']['2015'].welfare_fee = 750.0 238 238 self.student.nationality = u'NG' 239 239 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') … … 282 282 self.assertEqual(self.student['payments'].values()[0].p_category, 'schoolfee_1') 283 283 self.assertEqual(self.student['payments'].values()[1].p_category, 'schoolfee_2') 284 # (6666-200)/2 + 1250 + 750 - 400 + 200 285 self.assertEqual(self.student['payments'].values()[0].amount_auth, 5033.0) 286 # (6666-200)/2 + 200 287 self.assertEqual(self.student['payments'].values()[1].amount_auth, 3433.0) 284 self.assertEqual(self.student['payments'].values()[0].amount_auth, 147500.0) 285 self.assertEqual(self.student['payments'].values()[1].amount_auth, 92000.0) 288 286 # The two payments belong to the same session and level. 289 287 self.assertEqual(self.student['payments'].values()[0].p_session, 2015) … … 296 294 configuration_2.academic_session = 2016 297 295 self.app['configuration'].addSessionConfiguration(configuration_2) 298 self.student['studycourse'].certificate.school_fee_2 = 5666.0299 self.app['configuration']['2016'].union_fee = 1250.0300 self.app['configuration']['2016'].welfare_fee = 750.0296 #self.student['studycourse'].certificate.school_fee_2 = 5666.0 297 #self.app['configuration']['2016'].union_fee = 1250.0 298 #self.app['configuration']['2016'].welfare_fee = 750.0 301 299 self.student.father_name = u'Albert' 302 300 IWorkflowState(self.student).setState('returning') … … 317 315 self.browser.getControl("Create ticket").click() 318 316 self.assertTrue('ticket created' in self.browser.contents) 319 # (5666-200)/2 + 1250 + 750 - 400 + 200 320 self.assertEqual(self.student['payments'].values()[2].amount_auth, 4533.0) 321 # (5666-200)/2 + 200 322 self.assertEqual(self.student['payments'].values()[3].amount_auth, 2933.0) 317 self.assertEqual(self.student['payments'].values()[2].amount_auth, 147500.0) 318 self.assertEqual(self.student['payments'].values()[3].amount_auth, 92000.0) 323 319 # The last two payments belong to the same session and level. 324 320 self.assertEqual(self.student['payments'].values()[2].p_session, 2016) … … 329 325 330 326 def test_manage_payments_bypass_ac_creation(self): 331 self.student['studycourse'].certificate.school_fee_3 = 6666.0327 #self.student['studycourse'].certificate.school_fee_3 = 6666.0 332 328 self.student.nationality = u'NG' 333 329 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') … … 365 361 logcontent = open(logfile).read() 366 362 self.assertTrue( 367 '"zope.mgr",E1000000,%s,schoolfee_incl, 6666.0,AP,,,,,,\n' % value363 '"zope.mgr",E1000000,%s,schoolfee_incl,239500.0,AP,,,,,,\n' % value 368 364 in logcontent) 369 365 # Student is in state school fee paid, no activation … … 563 559 564 560 def test_payment_disabled(self): 565 self.student['studycourse'].certificate.school_fee_3 = 6666.0561 #self.student['studycourse'].certificate.school_fee_3 = 6666.0 566 562 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') 567 563 self.browser.open(self.payments_path) … … 621 617 self.student['accommodation'].addBedTicket(bedticket) 622 618 623 def test_maintenance_fee_payment(self):619 def deactivated_test_maintenance_fee_payment(self): 624 620 self.certificate.study_mode = 'ug_ft' 625 621 self.student['studycourse'].entry_session = 2013 … … 649 645 self.student['studycourse'].current_session = 2018 650 646 self.student['studycourse'].entry_mode = 'ug_ft' 651 self.student['studycourse'].certificate.school_fee_2 = 50200.0647 #self.student['studycourse'].certificate.school_fee_2 = 50200.0 652 648 self.app['configuration']['2018'].union_fee = 1200.0 653 649 self.app['configuration']['2018'].welfare_fee = 700.0 … … 672 668 self.browser.getLink(value).click() 673 669 self.assertTrue('Amount Authorized' in self.browser.contents) 674 # 50200 + 1200 + 700 + 300 + 300- 800 = 51900 675 self.assertEqual(self.student['payments'][value].amount_auth, 51900.0) 670 self.assertEqual(self.student['payments'][value].amount_auth, 239500.0) 676 671 self.student['payments'][value].r_company = u'interswitch' 677 672 self.browser.getLink("Download").click() … … 692 687 return 693 688 694 def test_late_registration(self):689 def deactivated_test_late_registration(self): 695 690 delta = timedelta(days=10) 696 691 self.app['configuration'][ … … 982 977 in self.browser.contents) 983 978 # 2nd instalment has to be paid first 984 self.certificate.school_fee_3 = 678.0979 #self.certificate.school_fee_3 = 678.0 985 980 self.browser.open(self.payments_path + '/addop') 986 981 self.browser.getControl(name="form.p_category").value = ['schoolfee_2'] … … 993 988 return 994 989 995 def test_student_GST_registration(self):990 def deactivated_test_student_GST_registration(self): 996 991 configuration_1 = createObject('waeup.SessionConfiguration') 997 992 configuration_1.academic_session = 2016 … … 1087 1082 return 1088 1083 1089 def test_course_registration_forbidden_2(self):1084 def deactivated_test_course_registration_forbidden_2(self): 1090 1085 IWorkflowState(self.student).setState('school fee paid') 1091 1086 self.student['studycourse'].entry_session = 2004 -
main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_utils.py
r17057 r17431 52 52 self.app['configuration']['2004'].booking_fee = 150.0 53 53 self.app['configuration']['2004'].maint_fee = 180.0 54 self.app['configuration']['2004'].clearance_fee_pg = 1234.055 self.app['configuration']['2004'].clearance_fee_fp = 3456.056 self.student['studycourse'].certificate.school_fee_1 = 6666.057 self.student['studycourse'].certificate.school_fee_2 = 7777.058 self.student['studycourse'].certificate.school_fee_3 = 8888.054 #self.app['configuration']['2004'].clearance_fee_pg = 1234.0 55 #self.app['configuration']['2004'].clearance_fee_fp = 3456.0 56 #self.student['studycourse'].certificate.school_fee_1 = 6666.0 57 #self.student['studycourse'].certificate.school_fee_2 = 7777.0 58 #self.student['studycourse'].certificate.school_fee_3 = 8888.0 59 59 self.student['studycourse'].certificate.study_mode = 'special_pg_ft' 60 60 self.student.nationality = u'NG' … … 74 74 self.assertEqual(payment.p_level, 100) 75 75 self.assertEqual(payment.p_session, 2004) 76 self.assertEqual(payment.amount_auth, 2 8888.0)76 self.assertEqual(payment.amount_auth, 204000.0) # tuition plus penalty 77 77 self.assertEqual(payment.p_item, u'CERT1') 78 78 self.assertEqual(error, None) … … 84 84 self.student.lga = 'edo_afuze' 85 85 error, payment = utils.setPaymentDetails('schoolfee',self.student) 86 self.assertEqual(payment.amount_auth, 8987.0)86 self.assertEqual(payment.amount_auth, 184099.0) 87 87 IWorkflowState(self.student).setState('returning') 88 88 error, payment = utils.setPaymentDetails('schoolfee',self.student) … … 94 94 self.assertEqual(payment.p_level, 200) 95 95 self.assertEqual(payment.p_session, 2005) 96 self.assertEqual(payment.amount_auth, 8976.0) 97 self.assertEqual(payment.p_item, u'CERT1') 98 self.assertEqual(error, None) 99 100 configuration = createObject('waeup.SessionConfiguration') 101 configuration.academic_session = 2016 102 self.app['configuration'].addSessionConfiguration(configuration) 103 configuration = createObject('waeup.SessionConfiguration') 104 configuration.academic_session = 2017 105 self.app['configuration'].addSessionConfiguration(configuration) 106 configuration = createObject('waeup.SessionConfiguration') 107 configuration.academic_session = 2018 108 self.app['configuration'].addSessionConfiguration(configuration) 109 self.student['studycourse'].current_session = 2017 110 self.student['studycourse'].entry_session = 2015 111 error, payment = utils.setPaymentDetails('schoolfee',self.student) 112 self.assertEqual(payment.p_level, 200) 113 self.assertEqual(payment.p_session, 2018) 114 self.assertEqual(payment.amount_auth, 7777.0) 115 self.assertEqual(payment.p_item, u'CERT1') 116 self.assertEqual(error, None) 117 self.student['studycourse'].entry_session = 2014 118 error, payment = utils.setPaymentDetails('schoolfee',self.student) 119 self.assertEqual(payment.p_level, 200) 120 self.assertEqual(payment.p_session, 2018) 121 self.assertEqual(payment.amount_auth, 8888.0) 96 self.assertEqual(payment.amount_auth, 184088.0) 122 97 self.assertEqual(payment.p_item, u'CERT1') 123 98 self.assertEqual(error, None) … … 133 108 self.assertEqual(payment.p_level, 100) 134 109 self.assertEqual(payment.p_session, 2004) 135 self.assertEqual(payment.amount_auth, 1234.0) 136 self.assertEqual(payment.p_item, u'CERT1') 137 self.assertEqual(error, None) 138 139 self.app['faculties']['fac1'].code = u'FP' 140 error, payment = utils.setPaymentDetails('clearance',self.student) 141 self.assertEqual(payment.p_level, 100) 142 self.assertEqual(payment.p_session, 2004) 143 self.assertEqual(payment.amount_auth, 3456.0) 144 self.assertEqual(payment.p_item, u'CERT1') 145 self.assertEqual(error, None) 146 147 error, payment = utils.setPaymentDetails('restitution',self.student) 148 self.assertEqual(error, 'Restitution fee payment not required.') 149 self.student['studycourse'].certificate.study_mode = 'ug_ft' 150 configuration = createObject('waeup.SessionConfiguration') 151 self.app['configuration']['2016'].restitution_fee = 1111.0 152 self.student['studycourse'].current_session = 2016 153 error, payment = utils.setPaymentDetails('restitution',self.student) 154 self.assertEqual(payment.p_level, 100) 155 self.assertEqual(payment.p_session, 2016) 156 self.assertEqual(payment.amount_auth, 1111.0) 157 self.assertEqual(payment.p_item, u'') 110 self.assertEqual(payment.amount_auth, 14000.0) 111 self.assertEqual(payment.p_item, u'CERT1') 158 112 self.assertEqual(error, None) 159 113 … … 164 118 self.assertEqual(payment.p_level, 100) 165 119 self.assertEqual(payment.p_session, 2004) 166 self.assertEqual(payment.amount_auth, 8888.0)120 self.assertEqual(payment.amount_auth, 184099.0) 167 121 self.assertEqual(payment.p_item, u'CERT1') 168 122 self.assertEqual(error, None) -
main/waeup.aaue/trunk/src/waeup/aaue/students/utils.py
r17266 r17431 17 17 ## 18 18 import grok 19 import os 20 import csv 19 21 from time import time 20 22 from zope.component import createObject, queryUtility … … 26 28 from waeup.kofa.accesscodes import create_accesscode 27 29 from waeup.kofa.students.utils import trans 28 from waeup.aaue.interswitch.browser import gateway_net_amt, GATEWAY_AMT29 30 from waeup.aaue.interfaces import MessageFactory as _ 30 31 31 32 MINIMUM_UNITS_THRESHOLD = 15 33 34 schoolfees_path = os.path.join( 35 os.path.dirname(__file__), 'schoolfees.csv') 36 reader = csv.DictReader(open(schoolfees_path, 'rb')) 37 SCHOOLFEES = {item['code']:(item['tuition'], item.values()) for item in reader} 38 acceptancefees_path = os.path.join( 39 os.path.dirname(__file__), 'acceptancefees.csv') 40 reader = csv.DictReader(open(acceptancefees_path, 'rb')) 41 ACCEPTANCEFEES = {item['code']:(item['acceptance'], item.values()) for item in reader} 32 42 33 43 class CustomStudentsUtils(NigeriaStudentsUtils): … … 312 322 p_item = acco_details['bt'] 313 323 amount = academic_session.booking_fee 314 elif category == 'restitution':315 if student.current_session != 2016 \316 or student.current_mode not in ('ug_ft', 'dp_ft') \317 or student.is_fresh:318 return _(u'Restitution fee payment not required.'), None319 amount = academic_session.restitution_fee320 324 elif category == 'hostel_maintenance': 321 325 amount = 0.0 … … 338 342 if student.state not in (ADMITTED, CLEARANCE, REQUESTED, CLEARED): 339 343 return _(u'Acceptance Fee payments not allowed.'), None 344 try: 345 certificate = student['studycourse'].certificate 346 p_item = certificate.code 347 except (AttributeError, TypeError): 348 return _('Study course data are incomplete.'), None 340 349 if student.current_mode in ( 341 350 'ug_ft', 'ug_pt', 'de_ft', 'de_pt', … … 343 352 and category != 'clearance_incl': 344 353 return _("Additional fees must be included."), None 345 if student.current_mode == 'ijmbe':346 amount = academic_session.clearance_fee_ijmbe347 elif student.current_mode == 'bridge':348 amount = academic_session.clearance_fee_bridge349 elif student.current_mode == 'dp_ft':350 amount = academic_session.clearance_fee_dp351 elif student.faccode == 'FP':352 amount = academic_session.clearance_fee_fp353 elif student.current_mode in ('ug_pt', 'de_pt', 'ug_dsh', 'de_dsh'):354 amount = academic_session.clearance_fee_ug_pt355 elif student.current_mode == 'special_pg_pt':356 amount = academic_session.clearance_fee_pg_pt357 elif student.faccode == 'FCS':358 # Students in clinical medical sciences pay the medical359 # acceptance fee360 amount = academic_session.clearance_fee_med361 354 elif student.current_mode == 'special_pg_ft': 362 355 if category != 'clearance': 363 356 return _("No additional fees required."), None 364 amount = academic_session.clearance_fee_pg 365 else: 366 amount = academic_session.clearance_fee 367 p_item = student['studycourse'].certificate.code 368 if amount in (0.0, None): 369 return _(u'Amount could not be determined.'), None 370 # Add Matric Gown Fee and Lapel Fee 357 try: 358 acceptancefees_entry = ACCEPTANCEFEES[student.certcode] 359 except KeyError: 360 return _('Acceptance fees not yet fixed.'), None 371 361 if category == 'clearance_incl': 372 amount += gateway_net_amt(academic_session.matric_gown_fee) + \ 373 gateway_net_amt(academic_session.lapel_fee) 362 for item in acceptancefees_entry[1]: 363 try: 364 amount += int(item) 365 except: 366 pass 367 else: 368 amount = float(acceptancefees_entry[0]) 374 369 elif category == 'late_registration': 375 370 if student.is_postgrad: … … 388 383 except (AttributeError, TypeError): 389 384 return _('Study course data are incomplete.'), None 385 try: 386 schoolfees_entry = SCHOOLFEES[student.certcode] 387 except KeyError: 388 return _('School fees not yet fixed.'), None 390 389 if student.is_postgrad and category != 'schoolfee': 391 390 return _("No additional fees required."), None … … 404 403 return _("You are not allowed " 405 404 "to pay by instalments."), None 406 # We determine the base amount first 407 if student.entry_session < 2015: 408 amount = getattr(certificate, 'school_fee_3', 0.0) 409 elif student.entry_session < 2021: 410 amount = getattr(certificate, 'school_fee_2', 0.0) 411 else: 412 amount = getattr(certificate, 'school_fee_1', 0.0) 405 additional = 0.0 406 for item in schoolfees_entry[1]: 407 try: 408 additional += int(item) 409 except: 410 pass 411 amount = float(schoolfees_entry[0]) 412 additional -= amount 413 413 if previous_session: 414 414 # Students can pay for previous sessions in all … … 419 419 # Cut school fee by 50% 420 420 if category in ('schoolfee_1', 'schoolfee_2') and amount: 421 amount = gateway_net_amt(amount) / 2 + GATEWAY_AMT421 amount /= 2 422 422 elif student.state == RETURNING and category != 'schoolfee_2': 423 423 if not student.father_name: … … 434 434 # Cut school fee by 50% 435 435 if category == 'schoolfee_1' and amount: 436 amount = gateway_net_amt(amount) / 2 + GATEWAY_AMT436 amount /= 2 437 437 elif category == 'schoolfee_2' and amount: 438 amount = gateway_net_amt(amount) / 2 + GATEWAY_AMT438 amount /= 2 439 439 else: 440 440 return _('Wrong state.'), None 441 441 if amount in (0.0, None): 442 442 return _(u'Amount could not be determined.'), None 443 # Add Student Union Fee, Student Id Card Fee, Sports Dev. Fee, 444 # Library Dev. Fee and Welfare Assurance 445 if category in ('schoolfee_incl', 'schoolfee_1') \ 446 and student.current_mode != 'ijmbe': 447 amount += gateway_net_amt(academic_session.welfare_fee) + \ 448 gateway_net_amt(academic_session.union_fee) 449 if student.entry_session >= 2018 and student.is_fresh: 450 amount += gateway_net_amt(academic_session.sports_fee) 451 if student.is_postgrad: 452 amount += gateway_net_amt(academic_session.library_pg_fee) 453 else: 454 amount += gateway_net_amt(academic_session.library_fee) 455 if student.entry_session >= 2021 \ 456 and student.current_mode == 'ug_ft': 457 amount += gateway_net_amt(academic_session.lms_sund_fee) 443 # Add additional fees 444 if category in ('schoolfee_incl', 'schoolfee_1'): 445 amount += additional 458 446 # Add non-indigenous fee and session specific penalty fees 459 447 if student.is_postgrad: … … 463 451 else: 464 452 amount += academic_session.penalty_ug 465 #elif category == ('fac_dep'):466 # if student.faccode in ('FAT', 'FED', 'FLW', 'FMS', 'FSS'):467 # amount = 4200.0468 # elif student.faccode in ('FAG', 'FBM', 'FCS',469 # 'FES', 'FET', 'FLS', 'FPS'):470 # amount = 5200.0471 # elif student.faccode == 'FAG' and student.current_level == 400:472 # amount = 10200.0473 # elif student.depcode == 'VTE':474 # amount = 5200.0475 # if student.entry_session >= 2019:476 # amount += gateway_net_amt(academic_session.ict_fee)477 elif category == 'sports_library': # temporarily in 2020478 if student.is_postgrad:479 amount = academic_session.sports_fee + gateway_net_amt(480 academic_session.library_pg_fee)481 else:482 amount = academic_session.sports_fee + gateway_net_amt(483 academic_session.library_fee)484 453 elif not student.is_postgrad: 485 454 fee_name = category + '_fee' -
main/waeup.aaue/trunk/src/waeup/aaue/utils/utils.py
r17099 r17431 93 93 'clearance': 'Acceptance Fee without additional fees', 94 94 'clearance_incl': 'Acceptance Fee incl. additional fees', 95 'hostel_maintenance': 'Hostel Accommodation Fee',95 ##'hostel_maintenance': 'Hostel Accommodation Fee', 96 96 #'application': 'Application Fee', 97 97 #'bed_allocation': 'Bed Allocation Fee', 98 98 #'transfer': 'Transfer Fee', 99 'transcript_local': 'Local Transcript Fee',100 'transcript_inter': 'International Transcript Fee',101 'late_registration': 'Late Course Registration Fee',99 ##'transcript_local': 'Local Transcript Fee', 100 ##'transcript_inter': 'International Transcript Fee', 101 ##'late_registration': 'Late Course Registration Fee', 102 102 #'welfare': 'Student Welfare Assurance Fee', 103 103 #'union': 'Student Union Dues', 104 104 #'lapel': 'Lapel/File Fee', 105 105 #'matric_gown': 'Matriculation Gown Fee', 106 'concessional': 'Concessional Fee',106 ##'concessional': 'Concessional Fee', 107 107 #'id_card': 'Student ID Card', 108 'gst_text_book_0': 'Text Book Fee GST101 GST102 GST111 GST112',109 'gst_text_book_1': 'Text Book Fee GST101 GST102',110 'gst_text_book_2': 'Text Book Fee GST111 GST112',111 'gst_text_book_3': 'Text Book Fee GST222',112 'gst_registration_1': 'Registration Fee GST101 GST102 GST111 GST112',113 'gst_registration_2': 'Registration Fee GST222',114 'ent_text_book_1': 'Text Book Fee ENT201',115 'ent_text_book_2': 'Text Book Fee ENT211',116 'ent_text_book_0': 'Text Book Fee for ENT201 and ENT211',117 'ent_registration_1': 'Registration Fee ENT201',118 'ent_registration_2': 'Registration Fee ENT211',119 'ent_registration_0': 'Registration Fee for ENT201 and ENT211',120 'ent_combined': 'Registration and Textbook Fee for ENT201 and ENT211',121 # 'fac_dep': 'Faculty and Departmental Dues (incl. ICT/Affidavit Dues)',122 'ict': 'ICT/Affidavit Dues',123 # 'affidavit': 'Affidavit Dues',124 'restitution': 'Restitution Fee',125 'sports': 'Sports Fee',126 'library': 'UG Library Fee',127 'library_pg': 'PG Library Fee',128 'sports_library': 'Sports Development and Library Fee',129 'lab_1': 'Faculty Laboratory Due (CHM102/PHY103/CSC101)',130 'lab_2': 'Laboratory Due (BIO101/BIO111)',131 'lms_sund': 'LMS plus Sundry Fees (new UG students only)',132 'access_card': 'AAU Access Card Fee',108 ##'gst_text_book_0': 'Text Book Fee GST101 GST102 GST111 GST112', 109 ##'gst_text_book_1': 'Text Book Fee GST101 GST102', 110 ##'gst_text_book_2': 'Text Book Fee GST111 GST112', 111 ##'gst_text_book_3': 'Text Book Fee GST222', 112 ##'gst_registration_1': 'Registration Fee GST101 GST102 GST111 GST112', 113 ##'gst_registration_2': 'Registration Fee GST222', 114 ##'ent_text_book_1': 'Text Book Fee ENT201', 115 ##'ent_text_book_2': 'Text Book Fee ENT211', 116 ##'ent_text_book_0': 'Text Book Fee for ENT201 and ENT211', 117 ##'ent_registration_1': 'Registration Fee ENT201', 118 ##'ent_registration_2': 'Registration Fee ENT211', 119 ##'ent_registration_0': 'Registration Fee for ENT201 and ENT211', 120 ##'ent_combined': 'Registration and Textbook Fee for ENT201 and ENT211', 121 ##'fac_dep': 'Faculty and Departmental Dues (incl. ICT/Affidavit Dues)', 122 ##'ict': 'ICT/Affidavit Dues', 123 ##'affidavit': 'Affidavit Dues', 124 ##'restitution': 'Restitution Fee', 125 ##'sports': 'Sports Fee', 126 ##'library': 'UG Library Fee', 127 ##'library_pg': 'PG Library Fee', 128 ##'sports_library': 'Sports Development and Library Fee', 129 ##'lab_1': 'Faculty Laboratory Due (CHM102/PHY103/CSC101)', 130 ##'lab_2': 'Laboratory Due (BIO101/BIO111)', 131 ##'lms_sund': 'LMS plus Sundry Fees (new UG students only)', 132 ##'access_card': 'AAU Access Card Fee', 133 133 } 134 134 … … 141 141 'clearance': 'Acceptance Fee', 142 142 'schoolfee': 'School Fee', 143 'late_registration': 'Late Course Registration Fee',144 'sports': 'Sports Fee',145 'library': 'UG Library Fee',146 'library_pg': 'PG Library Fee',147 'sports_library': 'Sports Development and Library Fee',143 ##'late_registration': 'Late Course Registration Fee', 144 ##'sports': 'Sports Fee', 145 ##'library': 'UG Library Fee', 146 ##'library_pg': 'PG Library Fee', 147 ##'sports_library': 'Sports Development and Library Fee', 148 148 } 149 149 … … 153 153 'schoolfee_1': 'School Fee (1st instalment)', 154 154 'schoolfee_2': 'School Fee (2nd instalment)', 155 'sports': 'Sports Fee',156 'library': 'UG Library Fee',157 'library_pg': 'PG Library Fee',158 'sports_library': 'Sports Development and Library Fee',159 'exam': 'IJMBE Examination Fee',155 ##'sports': 'Sports Fee', 156 ##'library': 'UG Library Fee', 157 ##'library_pg': 'PG Library Fee', 158 ##'sports_library': 'Sports Development and Library Fee', 159 ##'exam': 'IJMBE Examination Fee', 160 160 } 161 161 … … 163 163 'clearance_incl': 'Acceptance Fee Plus', 164 164 'schoolfee_incl': 'School Fee Plus', 165 'ent_text_book_1': 'Text Book Fee ENT201',166 'ent_text_book_2': 'Text Book Fee ENT211',167 'ent_text_book_0': 'Text Book Fee for ENT201 and ENT211',168 'ent_registration_1': 'Registration Fee ENT201',169 'ent_registration_2': 'Registration Fee ENT211',170 'ent_registration_0': 'Registration Fee for ENT201 and ENT211',171 'gst_registration_1': 'Registration Fee GST101 GST102 GST111 GST112',172 'gst_registration_2': 'Registration Fee GST222',173 'gst_text_book_0': 'Text Book Fee GST101 GST102 GST111 GST112',174 'gst_text_book_1': 'Text Book Fee GST101 GST102',175 'gst_text_book_2': 'Text Book Fee GST111 GST112',176 'gst_text_book_3': 'Text Book Fee GST222',177 'ent_combined': 'Registration and Textbook Fee for ENT201 and ENT211',178 'late_registration': 'Late Course Registration Fee',179 'sports': 'Sports Fee',180 'library': 'UG Library Fee',181 'library_pg': 'PG Library Fee',182 'sports_library': 'Sports Development and Library Fee',183 'lab_1': 'Faculty Laboratory Due (CHM102/PHY103/CSC101)',184 'lab_2': 'Laboratory Due (BIO101/BIO111)',165 ##'ent_text_book_1': 'Text Book Fee ENT201', 166 ##'ent_text_book_2': 'Text Book Fee ENT211', 167 ##'ent_text_book_0': 'Text Book Fee for ENT201 and ENT211', 168 ##'ent_registration_1': 'Registration Fee ENT201', 169 ##'ent_registration_2': 'Registration Fee ENT211', 170 ##'ent_registration_0': 'Registration Fee for ENT201 and ENT211', 171 ##'gst_registration_1': 'Registration Fee GST101 GST102 GST111 GST112', 172 ##'gst_registration_2': 'Registration Fee GST222', 173 ##'gst_text_book_0': 'Text Book Fee GST101 GST102 GST111 GST112', 174 ##'gst_text_book_1': 'Text Book Fee GST101 GST102', 175 ##'gst_text_book_2': 'Text Book Fee GST111 GST112', 176 ##'gst_text_book_3': 'Text Book Fee GST222', 177 ##'ent_combined': 'Registration and Textbook Fee for ENT201 and ENT211', 178 ##'late_registration': 'Late Course Registration Fee', 179 ##'sports': 'Sports Fee', 180 ##'library': 'UG Library Fee', 181 ##'library_pg': 'PG Library Fee', 182 ##'sports_library': 'Sports Development and Library Fee', 183 ##'lab_1': 'Faculty Laboratory Due (CHM102/PHY103/CSC101)', 184 ##'lab_2': 'Laboratory Due (BIO101/BIO111)', 185 185 } 186 186 … … 208 208 } 209 209 210 BALANCE_PAYMENT_CATEGORIES = { 210 BALANCE_PAYMENT_CATEGORIES = {} 211 212 XXXBALANCE_PAYMENT_CATEGORIES = { 211 213 'schoolfee': 'School Fee', 212 214 'clearance': 'Acceptance Fee',
Note: See TracChangeset for help on using the changeset viewer.