-
Notifications
You must be signed in to change notification settings - Fork 3
/
faz_lancamentos.py
60 lines (47 loc) · 1.66 KB
/
faz_lancamentos.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf-8
#!/usr/bin/env python
"""
O Heroku Scheduler roda este script diariamente
"""
import os
import sys
import django
from django.utils import timezone
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sistema_tesouraria.settings")
django.setup()
from django.contrib.auth.models import User
from geral.models import Lancamento
def faz_lancamentos2():
print('faz_lancamentos2')
users = User.objects.all()
descricao = 'Lançamento mensalidade mês %s-%s' % (timezone.now().month, timezone.now().year)
for user in users:
has_mensalidade = user.associado.has_mensalidade()
plano_vigente = has_mensalidade[0] if has_mensalidade: else False
if user.associado.is_in_anuidade():
# Anuidade: Jah foi lancado
continue
elif user.associado.is_in_starving_hacker():
# Starving: Lanca zero
valor=0.0
elif plano_vigente:
# Mensal: Lanca valor do plano
valor = plano_vigente.valor
else:
# Sem Plano: Lanca valor padrao
valor = 105
# Faz lançamento uma vez por mês
if not Lancamento.objects.filter(user=user,
autor='s', credito_debito='d', descricao=descricao).exists():
obj = Lancamento.objects.create(
moderation_status = 'A',
user=user,
autor='s',
credito_debito='d',
timestamp_comprovante=timezone.now(),
approved_timestamp=timezone.now(),
valor=valor,
descricao=descricao)
print(obj)
if __name__ == '__main__':
faz_lancamentos2()