## $Id: browser.py 14778 2017-08-07 14:43:19Z 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, RemitaPageStudent) from kofacustom.nigeria.remita.applicantsbrowser import ( RemitaRequestPaymentStatusPageApplicant, RemitaPageApplicant) class CustomRemitaRequestPaymentStatusPageStudent( RemitaRequestPaymentStatusPageStudent): """ Request webservice view for the Remita gateway. """ # Here we use Remita test portal data merchantId = '2547916' host = 'www.remitademo.net' https = False api_key = '1946' class CustomRemitaPageStudent(RemitaPageStudent): """ View which sends a POST request to the Remita payment gateway. """ # Here we use Remita test portal data merchantId = '2547916' serviceTypeId = '4430731' api_key = '1946' #orderId = '3456346346' host = 'www.remitademo.net' init_url = '/remita/ecomm/split/init.reg' #amount='1000' https = False action = 'http://www.remitademo.net/remita/ecomm/finalize.reg' @property def lineitems(self): ba1 = self.context.amount_auth / 2 ba2 = self.context.amount_auth / 2 lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"Klaus Mueller", "beneficiaryAccount":"6020067886","bankCode":"011", "beneficiaryAmount":str(ba1),"deductFeeFrom":"1"}, {"lineItemsId":"itemid2","beneficiaryName":"Werner Rumm", "beneficiaryAccount":"0360883515","bankCode":"050", "beneficiaryAmount":str(ba2),"deductFeeFrom":"0"} ) return lineitems def dynamic_provider_amt(self, student): if student.entry_session >= 2016: return 2500.0 return 1500.0 @property def live_lineitems(self): provider_amt = 0.0 if self.context.p_category == 'schoolfee' and \ not self.context.p_item == 'Balance': provider_amt = self.dynamic_provider_amt(self.context.student) elif self.context.p_category == 'clearance': provider_amt = self.dynamic_provider_amt(self.context.student) inst_amt = self.context.amount_auth - provider_amt if provider_amt: lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"Uniben", "beneficiaryAccount":"0040217361011","bankCode":"000", "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"}, {"lineItemsId":"itemid2","beneficiaryName":"WAeAC", "beneficiaryAccount":"1014261520","bankCode":"057", "beneficiaryAmount":provider_amt,"deductFeeFrom":"0"} ) else: lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"Uniben", "beneficiaryAccount":"0040217361011","bankCode":"000", "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"}, ) 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. """ # Here we use Remita test portal data merchantId = '2547916' host = 'www.remitademo.net' https = False api_key = '1946' class CustomRemitaPageApplicant(RemitaPageApplicant): """ View which sends a POST request to the Remita payment gateway. """ # Here we use Remita test portal data merchantId = '2547916' serviceTypeId = '4430731' api_key = '1946' #orderId = '3456346346' host = 'www.remitademo.net' init_url = '/remita/ecomm/split/init.reg' #amount='1000' https = False action = 'http://www.remitademo.net/remita/ecomm/finalize.reg' @property def lineitems(self): lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"Klaus Mueller", "beneficiaryAccount":"6020067886","bankCode":"011", "beneficiaryAmount":self.context.amount_auth/2,"deductFeeFrom":"1"}, {"lineItemsId":"itemid2","beneficiaryName":"Werner Rumm", "beneficiaryAccount":"0360883515","bankCode":"050", "beneficiaryAmount":self.context.amount_auth/2,"deductFeeFrom":"0"} ) return lineitems @property def live_lineitems(self): provider_amt = 400.0 if self.context.__parent__.applicant_id.startswith('cbt'): provider_amt = 200.0 inst_amt = self.context.amount_auth - provider_amt lineitems = ( {"lineItemsId":"itemid1","beneficiaryName":"Uniben", "beneficiaryAccount":"0040217361011","bankCode":"000", "beneficiaryAmount":inst_amt,"deductFeeFrom":"1"}, {"lineItemsId":"itemid2","beneficiaryName":"WAeAC", "beneficiaryAccount":"1014261520","bankCode":"057", "beneficiaryAmount":provider_amt,"deductFeeFrom":"0"} ) 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