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)
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)
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)
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)