def post_save(self, obj, created=True): for user in User.objects.all(): try: Wallet.objects.create(owner=user) except IntegrityError: pass try: OfflineWallet.objects.create(owner=user) except IntegrityError: pass try: Token.objects.create(user=user) except IntegrityError: pass try: Schedule.objects.create(user=user) except IntegrityError: pass #send notification: consider using ngrok to call an offline API or try twilio later on Sync.objects.create(method='register', model_id=obj.id) task_request(obj, 'www.arooko.ngrok.com', 'register') # ack sync table if successful #remeber to send the password to the phone no. of the user. Once the email is set, the user can make choices. data = { 'message': 'Dear customer, thanks for signing up. Your password is: {}. Have the best re-charging experience ever!' .format(self.reset_password), 'phone': obj.username } task_sms(data)
def post_save(self, obj, created=True): for user in User.objects.all(): try: Wallet.objects.create(owner=user) except IntegrityError: pass try: OfflineWallet.objects.create(owner=user) except IntegrityError: pass try: Token.objects.create(user=user) except IntegrityError: pass try: Schedule.objects.create(user=user) except IntegrityError: pass #send notification: consider using ngrok to call an offline API or try twilio later on Sync.objects.create(method='register', model_id=obj.id) task_request(obj, 'www.arooko.ngrok.com', 'register') # ack sync table if successful #remeber to send the password to the phone no. of the user. Once the email is set, the user can make choices. data = { 'message': 'Dear customer, thanks for signing up. Your password is: {}. Have the best re-charging experience ever!'.format(self.reset_password), 'phone': obj.username } task_sms(data)
def post_save(self, obj, created=True): for user in User.objects.all(): try: Wallet.objects.create(owner=user) except IntegrityError: pass try: OfflineWallet.objects.create(owner=user) except IntegrityError: pass try: Token.objects.create(user=user) except IntegrityError: pass try: Schedule.objects.create(user=user) except IntegrityError: pass #send notification: consider using ngrok to call an offline API Sync.objects.create(method='register', model_id=obj.id) task_request(obj, 'www.arooko.ngrok.com', 'register') data = { 'message': 'Dear customer, thanks for signing up. Have the best re-charging experience ever!', 'phone': obj.username } task_sms(data)
def post_save(self, obj, created=False): if self.uplink_user: OfflineWalletLog.objects.create(wallet=obj, user_from=self.uplink_user, amount=obj.amount, report='uplink-to-downlink') elif self.master_user: OfflineWalletLog.objects.create(wallet=obj, user_from=self.master_user, amount=obj.amount, report='master-to-slave') else: OfflineWalletLog.objects.create(wallet=obj, amount=obj.amount, report='self') Sync.objects.create(method='update_wallet', model_id=obj.id) task_request(obj, 'www.arooko.ngrok.com', 'update_wallet') #send this message in the sync after sync msg = 'Dear Customer, {} credited your account with {}. Thanks for your patronage!'.format( self.kwargs['owner'].get_full_name, obj.amount) data = {'message': msg, 'phone': self.kwargs['owner'].username} task_sms(data)
def post_save(self, obj, created=False): if self.uplink_user: WalletLog.objects.create(wallet=obj, user_from=self.uplink_user, amount=obj.amount, report='uplink-to-downlink') elif self.master_user: WalletLog.objects.create(wallet=obj, user_from=self.master_user, amount=obj.amount, report='master-to-slave') else: WalletLog.objects.create(wallet=obj, amount=obj.amount, report='self') msg = 'Dear Customer, {} credited your account with {}. Thanks for your patronage!'.format(self.kwargs['owner'].get_full_name, obj.amount) data = {'message': msg, 'phone': self.kwargs['owner'].phone} task_sms(data)
def re_fund(data): user = User.objects.get(username=data['phone']) wallet_to_update = Wallet.objects.filter(owner=user.id) if data['platform'] is 'online' else OfflineWallet.objects.filter(owner=user.id) user_wallet = wallet_to_update.get(owner=user.id) new_wallet_amount = float(user_wallet.amount) + float(data['amount']) wallet_to_update.update(amount=new_wallet_amount) log = WalletLog(wallet=user_wallet, amount=new_wallet_amount, report='refund') if data['platform'] is 'online' else OfflineWalletLog(wallet=user_wallet, amount=new_wallet_amount, report='refund') log.save() msg = 'Transaction period: {}, Balance: {}, Action: {}. Sorry for any inconvenience'.format(datetime.now().ctime(), new_wallet_amount, 'Refund') data.update({'message': msg}) task_sms(data)
def calculate(data): """ calculator calculates the remainder for a user. It goes a step further if the person is a slave to a master by deducting from the master's wallet. """ if 'stop' in data: return data #user = User.objects.get(username=data['phone']) wallet_to_update = Wallet.objects.filter(owner=data['user']['id']) if data['platform'] is 'online' else OfflineWallet.objects.filter(owner=data['user']['id']) print wallet_to_update user_wallet = wallet_to_update.get(owner=data['user']['id']) print user_wallet.amount if (float(user_wallet.amount) >= 100.0) and (float(user_wallet.amount) >= float(data['amount'])): new_wallet_amount = float(user_wallet.amount) - float(data['amount']) elif (float(user_wallet.amount) >= 100.0) and (float(user_wallet.amount) < float(data['amount'])): data.update({'amount': user_wallet.amount}) new_wallet_amount = float(user_wallet.amount) - float(data['amount']) elif data['status'] == 'slave': wallet_to_update = Wallet.objects.filter(owner=data['master']['id']) if data['platform'] == 'online' else OfflineWallet.objects.get(owner=data['master']['id']) master_wallet = wallet_to_update.get(owner=data['master']['id']) if (float(master_wallet.amount) >= 100.0) and (float(master_wallet.amount) >= float(data['amount'])): new_wallet_amount = float(master_wallet.amount) - float(data['amount']) elif (float( master_wallet.amount) >= 100.0) and (float(master_wallet.amount) < float(data['amount'])): data.update({'amount': master_wallet.amount}) new_wallet_amount = float(master_wallet.amount) - float(data['amount']) else: data.update({'stop': 'not enough balance in the account'}) return data else: data.update({'stop': 'not enough balance in the account'}) return data wallet_to_update.update(amount=new_wallet_amount) data.update({'balance': new_wallet_amount}) log = WalletLog(wallet=user_wallet, amount=new_wallet_amount, report='withdrawal') if data['platform'] is 'online' else OfflineWalletLog(wallet=user_wallet, amount=new_wallet_amount, report='withdrawal') log.save() msg = 'Transaction period: {}, Balance: {}, Action: {}. Thanks for the patronage!'.format(datetime.now().ctime(), new_wallet_amount, 'Withdrawal') data.update({'message': msg}) task_sms(data) return data
def post_save(self, obj, created=False): if self.uplink_user: OfflineWalletLog.objects.create(wallet=obj, user_from=self.uplink_user, amount=obj.amount, report='uplink-to-downlink') elif self.master_user: OfflineWalletLog.objects.create(wallet=obj, user_from=self.master_user, amount=obj.amount, report='master-to-slave') else: OfflineWalletLog.objects.create(wallet=obj, amount=obj.amount, report='self') Sync.objects.create(method='update_wallet', model_id=obj.id) task_request(obj, 'www.arooko.ngrok.com', 'update_wallet') #send this message in the sync after sync msg = 'Dear Customer, {} credited your account with {}. Thanks for your patronage!'.format(self.kwargs['owner'].get_full_name, obj.amount) data = {'message':msg, 'phone':self.kwargs['owner'].username} task_sms(data)
def re_fund(data): user = User.objects.get(username=data['phone']) wallet_to_update = Wallet.objects.filter( owner=user.id ) if data['platform'] is 'online' else OfflineWallet.objects.filter( owner=user.id) user_wallet = wallet_to_update.get(owner=user.id) new_wallet_amount = float(user_wallet.amount) + float(data['amount']) wallet_to_update.update(amount=new_wallet_amount) log = WalletLog( wallet=user_wallet, amount=new_wallet_amount, report='refund') if data['platform'] is 'online' else OfflineWalletLog( wallet=user_wallet, amount=new_wallet_amount, report='refund') log.save() msg = 'Transaction period: {}, Balance: {}, Action: {}. Sorry for any inconvenience'.format( datetime.now().ctime(), new_wallet_amount, 'Refund') data.update({'message': msg}) task_sms(data)
def post_save(self, obj, created=False): if self.uplink_user: WalletLog.objects.create(wallet=obj, user_from=self.uplink_user, amount=obj.amount, report='uplink-to-downlink') elif self.master_user: WalletLog.objects.create(wallet=obj, user_from=self.master_user, amount=obj.amount, report='master-to-slave') else: WalletLog.objects.create(wallet=obj, amount=obj.amount, report='self') msg = 'Dear Customer, {} credited your account with {}. Thanks for your patronage!'.format( self.kwargs['owner'].get_full_name, obj.amount) data = {'message': msg, 'phone': self.kwargs['owner'].phone} task_sms(data)
def calculate(data): """ calculator calculates the remainder for a user. It goes a step further if the person is a slave to a master by deducting from the master's wallet. """ if 'stop' in data: return data #user = User.objects.get(username=data['phone']) wallet_to_update = Wallet.objects.filter( owner=data['user']['id'] ) if data['platform'] is 'online' else OfflineWallet.objects.filter( owner=data['user']['id']) print wallet_to_update user_wallet = wallet_to_update.get(owner=data['user']['id']) print user_wallet.amount if (float(user_wallet.amount) >= 100.0) and (float(user_wallet.amount) >= float(data['amount'])): new_wallet_amount = float(user_wallet.amount) - float(data['amount']) elif (float(user_wallet.amount) >= 100.0) and (float(user_wallet.amount) < float(data['amount'])): data.update({'amount': user_wallet.amount}) new_wallet_amount = float(user_wallet.amount) - float(data['amount']) elif data['status'] == 'slave': wallet_to_update = Wallet.objects.filter( owner=data['master']['id'] ) if data['platform'] == 'online' else OfflineWallet.objects.get( owner=data['master']['id']) master_wallet = wallet_to_update.get(owner=data['master']['id']) if (float(master_wallet.amount) >= 100.0) and (float( master_wallet.amount) >= float(data['amount'])): new_wallet_amount = float(master_wallet.amount) - float( data['amount']) elif (float(master_wallet.amount) >= 100.0) and (float( master_wallet.amount) < float(data['amount'])): data.update({'amount': master_wallet.amount}) new_wallet_amount = float(master_wallet.amount) - float( data['amount']) else: data.update({'stop': 'not enough balance in the account'}) return data else: data.update({'stop': 'not enough balance in the account'}) return data wallet_to_update.update(amount=new_wallet_amount) data.update({'balance': new_wallet_amount}) log = WalletLog( wallet=user_wallet, amount=new_wallet_amount, report='withdrawal' ) if data['platform'] is 'online' else OfflineWalletLog( wallet=user_wallet, amount=new_wallet_amount, report='withdrawal') log.save() msg = 'Transaction period: {}, Balance: {}, Action: {}. Thanks for the patronage!'.format( datetime.now().ctime(), new_wallet_amount, 'Withdrawal') data.update({'message': msg}) task_sms(data) return data