transaction table added
This commit is contained in:
1 parent
6ad2e596d9
commit
b786374697
4 files changed
+31
-8
No files matched your search
Binary file not shown.
+8
-1
@@ -1,3 +1,5 @@
|
||||
import datetime
|
||||
|
||||
from peewee import *
|
||||
from .base import conn
|
||||
|
||||
@@ -18,11 +20,16 @@ class User(BaseModel):
|
||||
table_name = 'User'
|
||||
|
||||
|
||||
# модель транзакции
|
||||
class Transaction(BaseModel):
|
||||
id = AutoField(column_name='TransactionId')
|
||||
type = CharField(column_name='TransactionType', max_length=10, null=False, default='incom')
|
||||
sum = FloatField(column_name='TransactionSum', null=False, default=0)
|
||||
user = ForeignKeyField(User, unique=True)
|
||||
user = ForeignKeyField(User, unique=False)
|
||||
date = DateField(column_name='Date', default=datetime.datetime.today())
|
||||
|
||||
class Meta:
|
||||
table_name = 'Transaction'
|
||||
|
||||
|
||||
conn.create_tables([User, Transaction])
|
||||
@@ -11,7 +11,9 @@ ru = {
|
||||
/add или + - добавить доход
|
||||
/rm или - - добавить расход
|
||||
''',
|
||||
'error404_message': 'Я не могу это сделать.'
|
||||
'error404_message': 'Я не могу это сделать.',
|
||||
'erradd': 'Используйте /add [сумма] или + [сумма]',
|
||||
'errrm': 'Используйте /rm [сумма] или - [сумма]'
|
||||
}
|
||||
|
||||
en = {
|
||||
@@ -25,5 +27,7 @@ Hi i am finance bot and i can do this:
|
||||
/add или + - add incom
|
||||
/rm или - - add consuption
|
||||
''',
|
||||
'error404_message': 'I can\'t do this.'
|
||||
'error404_message': 'I can\'t do this.',
|
||||
'erradd': 'Use /add [sum] or + [sum]',
|
||||
'errrm': 'Use /rm [sum] or - [sum]'
|
||||
}
|
||||
@@ -2,13 +2,15 @@ from termcolor import cprint
|
||||
from bot import bot
|
||||
import locale
|
||||
from changelocale import change_locale
|
||||
from database.models import User
|
||||
from database.models import User, Transaction
|
||||
|
||||
|
||||
# функция ограничения количества знаков после запятой
|
||||
def to_fixed(num_obj, digits=0):
|
||||
return f"{num_obj:.{digits}f}"
|
||||
|
||||
|
||||
# основной обработчик для бота
|
||||
def main_bot(messages):
|
||||
for message in messages:
|
||||
if message.text.split(' ')[0] == '/start' or message.text.split(' ')[0] == '/help':
|
||||
@@ -28,27 +30,37 @@ def main_bot(messages):
|
||||
if len(message.text.split(' ')) < 2:
|
||||
mes = None
|
||||
if locale.LOCALE == 'ru':
|
||||
mes = 'Используйте /add [сумма] или + [сумма]'
|
||||
mes = locale.ru['erradd']
|
||||
elif locale.LOCALE == 'en':
|
||||
mes = 'Use /add [sum] or + [sum]'
|
||||
mes = locale.en['erradd']
|
||||
bot.send_message(message.chat.id, mes)
|
||||
else:
|
||||
user = User.get(username=message.chat.id)
|
||||
user.balance += float(message.text.split(' ')[1])
|
||||
user.save()
|
||||
Transaction.create(
|
||||
sum=int(message.text.split(' ')[1]),
|
||||
type='incom',
|
||||
user=User.get(username=message.chat.id)
|
||||
)
|
||||
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
||||
elif message.text.split(' ')[0] == '/rm' or message.text.split(' ')[0] == '-':
|
||||
if len(message.text.split(' ')) < 2:
|
||||
mes = None
|
||||
if locale.LOCALE == 'ru':
|
||||
mes = 'Используйте /rm [сумма] или - [сумма]'
|
||||
mes = locale.ru['errrm']
|
||||
elif locale.LOCALE == 'en':
|
||||
mes = 'Use /rm [sum] or - [sum]'
|
||||
mes = locale.en['errrm']
|
||||
bot.send_message(message.chat.id, mes)
|
||||
else:
|
||||
user = User.get(username=message.chat.id)
|
||||
user.balance -= float(message.text.split(' ')[1])
|
||||
user.save()
|
||||
Transaction.create(
|
||||
sum=int(message.text.split(' ')[1]),
|
||||
type='consuption',
|
||||
user=User.get(username=message.chat.id)
|
||||
)
|
||||
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
||||
else:
|
||||
mes = None
|
||||
|
||||
Reference in new issue
Block a user