Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
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)
Beispiel #8
0
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
Beispiel #9
0
    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)
Beispiel #10
0
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)
Beispiel #11
0
    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)
Beispiel #12
0
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