forked from zabatakram/Py_Expense_template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexpense.py
More file actions
75 lines (59 loc) · 1.99 KB
/
expense.py
File metadata and controls
75 lines (59 loc) · 1.99 KB
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
from PyInquirer import prompt
import csv
# Allow to delete chosen spender from involved people list
def delete_spender_from_involved_choice(answers):
spender = answers['spender']
expense_questions[3]['choices'].remove({'name' : spender})
return True
expense_questions = [
{
"type":"input",
"name":"amount",
"message":"New Expense - Amount: ",
},
{
"type":"input",
"name":"label",
"message":"New Expense - Label: ",
},
{
"type":"list",
"name":"spender",
"message":"New Expense - Spender: ",
"choices":[],
},
{
"type":"checkbox",
"name":"involved",
"message":"New Expense - Involved People: ",
"choices":[],
"when":delete_spender_from_involved_choice
},
]
def new_expense(*args):
with open('users.csv', 'r', newline='') as users_file:
users_reader = csv.reader(users_file)
users = []
for row in users_reader:
users.append(row[0])
if len(users) == 0:
print('No Spender To Choose From ! Please Create A User First')
return True
expense_questions[2]['choices'] = users
involved_people = []
for user in users:
involved_people.append({'name': user})
expense_questions[3]['choices'] = involved_people
infos = prompt(expense_questions)
infos['involved'].append(infos['spender'])
to_pay = int(infos['amount']) / len(infos['involved'])
for i in range(len(infos['involved'])):
if infos['involved'][i] != infos['spender']:
infos['involved'][i] = [infos['involved'][i], to_pay]
else:
infos['involved'][i] = [infos['involved'][i], 0]
with open('expense_report.csv', 'a', newline='') as expenses_file:
expenses_writer = csv.writer(expenses_file)
expenses_writer = expenses_writer.writerow([infos['label'], infos['amount'], infos['spender'], infos['involved']])
print("Expense Added !")
return True