def calc_debs(user_id, status): group_id = user.get_current_group(user_id) if status: members = group.get_members_by_group_id(group_id) debt_amount = round(bill.get_data(user_id, 'amount') / len(members), 2) else: members = bill.get_selected(user_id) debt_amount = round( bill.get_data(user_id, 'amount') / (len(members) + 1), 2) for _id in members: if not _id == user_id: data = db.select_debts(_id, user_id) if data: if data[0] >= debt_amount: db.update_debt(-debt_amount, _id - user_id) else: db.update_debt(-data[0], _id - user_id) db.insert_debt(user_id - _id, user_id, debt_amount - data[0], _id) else: db.insert_debt(user_id - _id, user_id, debt_amount, _id) db.insert_debt_to_history_debt( bill.get_data(user_id, 'payment_id'), _id, debt_amount) alert.send_debt_msg(user_id, _id, bill.get_data(user_id, 'description'), debt_amount) bill.insert_payment(user_id)
def update_user_online(user_id, group_id, online): if group_id: user.set_group(user_id, group_id) db.update_user_online(online, group_id, user_id) else: group_id = user.get_current_group(user_id) db.update_user_online(online, group_id, user_id) user.set_group(user_id, None)
def get_group_info(user_id): group_id = user.get_current_group(user_id) data = groups_dict[group_id] msg = 'Группа:' + group_id + '\n' \ 'Пароль:' + data['password'] + '\n' \ 'Участники: \n' for member in data['members']: msg = msg + user.get_user_fullname(member) + '\n' return msg
def get_bills_msg(user_id): group_id = user.get_current_group(user_id) bills = db.select_bills(group_id) msg = "" for b in bills: msg = msg + 'Оплатил:' + user.get_user_fullname(b[0]) + '\n' \ 'Описание:' + b[1] + '\n' \ 'Сумма:' + str(b[2]) + '\n' \ 'Дата:' + str(b[3]) + '\n\n' return msg
def get_users_keyboard(user_id): markup = telebot.types.InlineKeyboardMarkup() group_id = user.get_current_group(user_id) users_id = group.get_members_by_group_id(group_id) for _id in users_id: if not _id == user_id: btn = telebot.types.InlineKeyboardButton( text=user.get_user_fullname(_id), callback_data='u_' + str(_id)) markup.row(btn) return markup
def create_bill(user_id): temp[user_id] = { 'payment_id': str(uuid.uuid4()), 'group_id': user.get_current_group(user_id) }
def get_bills_for_edit(user_id): group_id = user.get_current_group(user_id) data = db.select_payments_by_user_id_and_group_id(user_id, group_id) return data