-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogic.py
108 lines (92 loc) · 3.33 KB
/
logic.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import database.db as db
from models.Account import Account
from models.Earning import Earning
from models.Spending import Spending
from datetime import datetime
from sqlalchemy import extract
#####################################################################
def get_about_this(VERSION):
response = (
f"Simple Expenses Bot (pyTelegramBot) v{VERSION}"
"\n\n"
"Desarrollado por Jorge Galvis Cárdenas <jorgegalcad@gmail.com>"
)
return response
#####################################################################
def get_help_message ():
response = (
"Estos son los comandos y órdenes disponibles:\n"
"\n"
"*/start* - Inicia la interacción con el bot (obligatorio)\n"
"*/help* - Muestra este mensaje de ayuda\n"
"*/about* - Muestra detalles de esta aplicación\n"
"*gane|gané|g {cantidad}* - Registra un saldo positivo\n"
"*gaste|gasté|gg {cantidad}* - Registra un saldo negativo\n"
"*listar ganancias|lg en {índice_mes} de {año}* - Lista las ganancias de un mes/año\n"
"*listar gastos|lgg en {mes} de {año}* - Lista los gastos de un mes/año\n"
"*obtener saldo|s* - Muestra el saldo actual (disponible)\n"
"*remover|r ganancia|g|gasto|gg {índice}* - Remueve una ganancia o un gasto según su índice\n"
"*listar cuentas|lc* - Lista las cuentas registradas (sólo admin)\n"
)
return response
#####################################################################
def get_welcome_message(bot_data):
response = (
f"Hola, soy *{bot_data.first_name}* "
f"también conocido como *{bot_data.username}*.\n\n"
"¡Estoy aquí para ayudarte a registrar tus gastos!"
)
return response
#####################################################################
def register_account(user_id):
account = db.session.query(Account).get(user_id)
db.session.commit()
if account == None:
account = Account(user_id, 0)
db.session.add(account)
db.session.commit()
return True
return False
#####################################################################
def get_balance (user_id):
account = db.session.query(Account).get(user_id)
db.session.commit()
if not account:
return None
return account.balance
####################################################################
def earn_money (user_id, amount):
if amount <= 0:
return False
control = update_account (user_id, amount)
if not control:
return False
earn = Earning(
amount,
datetime.now(),
user_id)
db.session.add(earn)
db.session.commit()
return True
####################################################################
def update_account (user_id, amount):
account = db.session.query(Account).get(user_id)
db.session.commit()
if not account:
return False
account.balance = account.balance + amount
db.session.commit()
return True
##################################################################
def spend_money (user_id, amount):
balance = get_balance(user_id)
print(balance)
if balance != None and amount <= 0 and amount <= balance:
return False
control = update_account (user_id, amount*-1)
if not control:
return False
spend = Spending(amount,datetime.now(),user_id)
db.session.add(spend)
db.session.commit()
return True