From de08291d20ee0546f3fe422d761536dae5621c97 Mon Sep 17 00:00:00 2001 From: spla Date: Thu, 2 Nov 2023 13:16:22 +0100 Subject: [PATCH] Added bank fee --- budget.py | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/budget.py b/budget.py index 066ea2c..29e40f7 100644 --- a/budget.py +++ b/budget.py @@ -61,7 +61,8 @@ class Bill: self.backup = float(input('Backup Bill: ') or '0.00') self.fileserver = float(input("File server Bill: ") or '0.00') self.setup = float(input(f'Setup Bill: ') or '0.00') - + self.bank_fee = float(input(f'Bank Maintenance Fee: ') or '0.00') + while True: try: @@ -82,7 +83,7 @@ class Bill: def save(self): - sql = "INSERT INTO bills(datetime, domain, server, backup, fileserver, setup) VALUES(%s,%s,%s,%s,%s,%s)" + sql = "INSERT INTO bills(datetime, domain, server, backup, fileserver, setup, bank_fee) VALUES(%s,%s,%s,%s,%s,%s,%s)" try: @@ -90,7 +91,7 @@ class Bill: cur = conn.cursor() - cur.execute(sql, (self.date, self.domain, self.server, self.backup, self.fileserver, self.setup)) + cur.execute(sql, (self.date, self.domain, self.server, self.backup, self.fileserver, self.setup, self.bank_fee)) print("\nUpdating bills...") @@ -224,17 +225,19 @@ class BillShow: month_setup = [] + month_bank_fee = [] + if self.option == 1: - sql = "select datetime, domain, server, backup, fileserver, setup from bills where date_part('year', datetime) = date_part('year', CURRENT_DATE) and date_part('month', datetime) = (%s) order by 1 asc" + sql = "select datetime, domain, server, backup, fileserver, setup, bank_fee from bills where date_part('year', datetime) = date_part('year', CURRENT_DATE) and date_part('month', datetime) = (%s) order by 1 asc" elif self.option == 2: - sql = "select datetime, domain, server, backup, fileserver, setup from bills where date_part('year', datetime) = (%s) order by 1 asc" + sql = "select datetime, domain, server, backup, fileserver, setup, bank_fee from bills where date_part('year', datetime) = (%s) order by 1 asc" elif self.option == 3: - sql = "select datetime, domain, server, backup, fileserver, setup from bills order by 1 asc" + sql = "select datetime, domain, server, backup, fileserver, setup, bank_fee from bills order by 1 asc" try: @@ -265,6 +268,14 @@ class BillShow: month_fileserver.append(row[4]) month_setup.append(row[5]) + + if row[6] != None: + + month_bank_fee.append(row[6]) + + else: + + month_bank_fee.append('0.00') cur.close() @@ -278,7 +289,7 @@ class BillShow: conn.close() - return (month_date, month_domain, month_server, month_backup, month_fileserver, month_setup) + return (month_date, month_domain, month_server, month_backup, month_fileserver, month_setup, month_bank_fee) class DonationShow: @@ -438,19 +449,19 @@ class BalanceShow: incomes_sql = "select sum(donations) from incomes where date_part('year', datetime) = date_part('year', CURRENT_DATE) and date_part('month', datetime) = (%s)" - bills_sql = "select sum(coalesce(domain) + coalesce(server) + coalesce(backup) + coalesce(fileserver) + coalesce(setup)) from bills where date_part('year', datetime) = date_part('year', CURRENT_DATE) and date_part('month', datetime) = (%s)" + bills_sql = "select sum(coalesce(domain) + coalesce(server) + coalesce(backup) + coalesce(fileserver) + coalesce(setup) + coalesce(bank_fee,0)) from bills where date_part('year', datetime) = date_part('year', CURRENT_DATE) and date_part('month', datetime) = (%s)" elif self.option == 2: incomes_sql = "select sum(donations) from incomes where date_part('year', datetime) = (%s)" - bills_sql = "select sum(coalesce(domain) + coalesce(server) + coalesce(backup) + coalesce(fileserver) + coalesce(setup)) from bills where date_part('year', datetime) = (%s)" + bills_sql = "select sum(coalesce(domain) + coalesce(server) + coalesce(backup) + coalesce(fileserver) + coalesce(setup) + coalesce(bank_fee,0)) from bills where date_part('year', datetime) = (%s)" elif self.option == 3: incomes_sql = "select sum(donations) from incomes order by 1 asc" - bills_sql = "select sum(coalesce(domain) + coalesce(server) + coalesce(backup) + coalesce(fileserver) + coalesce(setup)) from bills" + bills_sql = "select sum(coalesce(domain) + coalesce(server) + coalesce(backup) + coalesce(fileserver) + coalesce(setup) + coalesce(bank_fee,0)) from bills" try: @@ -560,7 +571,7 @@ if __name__ == '__main__': bill = Bill() - if bill.domain == bill.server == bill.backup == bill.fileserver == bill.setup == 0.0: + if bill.domain == bill.server == bill.backup == bill.fileserver == bill.setup == bill.bank_fee == 0.0: print('\nAny bill added') @@ -574,13 +585,13 @@ if __name__ == '__main__': if bill.option == 1 or bill.option == 2 or bill.option == 3: - month_date, month_domain, month_server, month_backup, month_fileserver, month_setup = bill.show(bill.criteria) + month_date, month_domain, month_server, month_backup, month_fileserver, month_setup, month_bank_fee = bill.show(bill.criteria) if bill.option != 4: print_table = PrettyTable() - print_table.field_names = ['Date', 'Domain', 'Server', 'Backup', 'File server', 'Setup'] + print_table.field_names = ['Date', 'Domain', 'Server', 'Backup', 'File server', 'Setup', 'Bank fee'] i = 0 @@ -600,13 +611,15 @@ if __name__ == '__main__': b_setup = float(month_setup[i]) - total_amount = total_amount + b_domain + b_server + b_backup + b_fileserver + b_setup + b_bank_fee = float(month_bank_fee[i]) - print_table.add_row([b_date, b_domain, b_server, b_backup, b_fileserver, b_setup]) + total_amount = total_amount + b_domain + b_server + b_backup + b_fileserver + b_setup + b_bank_fee + + print_table.add_row([b_date, b_domain, b_server, b_backup, b_fileserver, b_setup, b_bank_fee]) i += 1 - print_table.add_row(['', '', '', '', 'Total', round(total_amount, 2)]) + print_table.add_row(['', '', '', '', '', 'Total', round(total_amount, 2)]) print(print_table)