## $Id: browser.py 15296 2019-01-14 13:04:14Z henrik $ ## ## Copyright (C) 2017 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## from kofacustom.nigeria.remita.studentsbrowser import ( module_activated, RemitaRequestPaymentStatusPageStudent, RemitaVerifyPaymentStatusPageStudent, RemitaPageStudent) from kofacustom.nigeria.remita.applicantsbrowser import ( RemitaRequestPaymentStatusPageApplicant, RemitaVerifyPaymentStatusPageApplicant, RemitaPageApplicant) # Temporarily we can use the test portal like in kofacustom.nigeria #from kofacustom.nigeria.remita.tests import ( # MERCHANTID, HOST, HTTPS, API_KEY, SERVICETYPEID) MERCHANTID = '3534555222' HOST = 'login.remita.net' HTTPS = True API_KEY = '756843' SERVICETYPEID = '365039884' PROVIDER_ACCT = '0773411069' PROVIDER_BANKCODE = '044' INSTITUTION_ACCT = '0270100161017' INSTITUTION_BANKCODE = '000' class CustomRemitaRequestPaymentStatusPageStudent( RemitaRequestPaymentStatusPageStudent): """ Request webservice view for the Remita gateway. """ merchantId = MERCHANTID host = HOST https = HTTPS api_key = API_KEY class CustomRemitaVerifyPaymentStatusPageStudent( RemitaVerifyPaymentStatusPageStudent): """ Request webservice view for the Remita gateway. """ merchantId = MERCHANTID host = HOST https = HTTPS api_key = API_KEY class CustomRemitaPageStudent(RemitaPageStudent): """ View which sends a POST request to the Remita payment gateway. """ merchantId = MERCHANTID host = HOST https = HTTPS api_key = API_KEY init_url = '/remita/ecomm/split/init.reg' @property def serviceTypeId(self): return SERVICETYPEID @property def lineitems(self): provider_amt = 1600.0 if 'maintenance' in self.context.p_category or \ self.context.p_category == 'clearance': provider_amt = 0.0 inst_amt = self.context.amount_auth - provider_amt if provider_amt: lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"FCEOkene", "beneficiaryAccount":INSTITUTION_ACCT, "bankCode":INSTITUTION_BANKCODE, "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"}, {"lineItemsId":"itemid2","beneficiaryName":"WAEAC", "beneficiaryAccount":PROVIDER_ACCT, "bankCode":PROVIDER_BANKCODE, "beneficiaryAmount":provider_amt,"deductFeeFrom":"0"} ) else: lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"FCEOkene", "beneficiaryAccount":INSTITUTION_ACCT, "bankCode":INSTITUTION_BANKCODE, "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"}, ) self.context.provider_amt = provider_amt return lineitems def update(self): if not module_activated(self.context.student.current_session): return self.orderId = self.context.p_id self.amount = str(self.context.amount_auth) error = self.init_update() if error: self.flash(error, type='danger') self.redirect(self.url(self.context, '@@index')) return return class CustomRemitaRequestPaymentStatusPageApplicant( RemitaRequestPaymentStatusPageApplicant): """ Request webservice view for the Remita gateway. """ merchantId = MERCHANTID host = HOST https = HTTPS api_key = API_KEY class CustomRemitaVerifyPaymentStatusPageApplicant( RemitaVerifyPaymentStatusPageApplicant): """ Request webservice view for the Remita gateway. """ merchantId = MERCHANTID host = HOST https = HTTPS api_key = API_KEY class CustomRemitaPageApplicant(RemitaPageApplicant): """ View which sends a POST request to the Remita payment gateway. """ merchantId = MERCHANTID host = HOST https = HTTPS api_key = API_KEY init_url = '/remita/ecomm/split/init.reg' @property def serviceTypeId(self): return SERVICETYPEID @property def lineitems(self): provider_amt = 500.0 inst_amt = self.context.amount_auth - provider_amt lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"FCEOkene", "beneficiaryAccount":INSTITUTION_ACCT, "bankCode":INSTITUTION_BANKCODE, "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"}, {"lineItemsId":"itemid2","beneficiaryName":"WAEAC", "beneficiaryAccount":PROVIDER_ACCT, "bankCode":PROVIDER_BANKCODE, "beneficiaryAmount":provider_amt,"deductFeeFrom":"0"} ) self.context.provider_amt = provider_amt return lineitems def update(self): if not module_activated(self.context.__parent__.__parent__.year): return self.orderId = self.context.p_id self.amount = str(self.context.amount_auth) error = self.init_update() if error: self.flash(error, type='danger') self.redirect(self.url(self.context, '@@index')) return return