예제 #1
0
def accrual_balances():
    users = UserProfile.objects.all()
    for user in users:

        for ps in user.get_ps_instances():
            plan = Plan.objects.get_plan_by_amount(ps.balance)

            if plan:
                delta = timezone.now() - deltas[plan.period]
                accrual_transactions = user.transactions.filter(ps=ps.get_name,
                                                                transaction_type=TRANSACTION_ACCRUAL,
                                                                is_ended=True, created__gte=delta)
                if not accrual_transactions:
                    utr = UserTransaction()
                    utr.do_transaction_accrual(user, ps.get_name, ps.balance / Decimal(100) * plan.percent)
예제 #2
0
def accrual_deposits():
    deposits = Deposit.objects.filter(is_ended=False)
    for deposit in deposits:
        plan = deposit.plan
        time_elapsed = timezone.now()-deposit.last_update
        delta = deltas[plan.period]
        if time_elapsed >= delta:
            deposit.last_update = timezone.now()
            deposit.save()
            utr = UserTransaction()
            utr.do_transaction_accrual(deposit.user, deposit.ps, deposit.amount / Decimal(100) * plan.percent, deposit=deposit)

        if int((timezone.now()-deposit.created).total_seconds()/3600) >= plan.end_period:
            deposit.is_ended = True
            deposit.save()

            if plan.deposit_return:
                utr = UserTransaction()
                utr.do_deposit_return(deposit)
예제 #3
0
def accrual_balances():
    users = UserProfile.objects.all()
    for user in users:

        for ps in user.get_ps_instances():
            plan = Plan.objects.get_plan_by_amount(ps.balance)

            if plan:
                delta = timezone.now() - deltas[plan.period]
                accrual_transactions = user.transactions.filter(
                    ps=ps.get_name,
                    transaction_type=TRANSACTION_ACCRUAL,
                    is_ended=True,
                    created__gte=delta)
                if not accrual_transactions:
                    utr = UserTransaction()
                    utr.do_transaction_accrual(
                        user, ps.get_name,
                        ps.balance / Decimal(100) * plan.percent)
예제 #4
0
def accrual_deposits():
    deposits = Deposit.objects.filter(is_ended=False)
    for deposit in deposits:
        plan = deposit.plan
        time_elapsed = timezone.now() - deposit.last_update
        delta = deltas[plan.period]
        if time_elapsed >= delta:
            deposit.last_update = timezone.now()
            deposit.save()
            utr = UserTransaction()
            utr.do_transaction_accrual(deposit.user,
                                       deposit.ps,
                                       deposit.amount / Decimal(100) *
                                       plan.percent,
                                       deposit=deposit)

        if int((timezone.now() - deposit.created).total_seconds() /
               3600) >= plan.end_period:
            deposit.is_ended = True
            deposit.save()

            if plan.deposit_return:
                utr = UserTransaction()
                utr.do_deposit_return(deposit)