-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
78 lines (64 loc) · 2.79 KB
/
main.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
# main.py
from portfolio import PortfolioManager
from transaction import Transaction
from report import ReportGenerator
import database
def print_menu():
print("\nStock Portfolio Tracker Menu:")
print("1. View Portfolios")
print("2. Add Portfolio")
print("3. Add Stock to Portfolio")
print("4. Buy Stock")
print("5. Sell Stock")
print("6. Generate Portfolio Report")
print("7. Exit")
def main():
# Initialize database
database.init_database()
# Initialize portfolio manager and load portfolios from database
portfolio_manager = PortfolioManager()
portfolio_manager.load_portfolios()
report_generator = ReportGenerator(portfolio_manager)
while True:
print_menu()
choice = input("Enter your choice: ")
if choice == '1':
portfolio_manager.print_portfolios()
elif choice == '2':
portfolio_name = input("Enter portfolio name: ")
portfolio_manager.add_portfolio(portfolio_name)
database.save_portfolio(portfolio_manager.get_portfolio(portfolio_name))
elif choice == '3':
portfolio_name = input("Enter portfolio name: ")
stock_symbol = input("Enter stock symbol: ")
quantity = int(input("Enter quantity: "))
portfolio_manager.add_stock_to_portfolio(portfolio_name, stock_symbol, quantity)
database.save_portfolio(portfolio_manager.get_portfolio(portfolio_name))
elif choice == '4':
portfolio_name = input("Enter portfolio name: ")
stock_symbol = input("Enter stock symbol: ")
quantity = int(input("Enter quantity: "))
price = float(input("Enter price per share: "))
transaction = Transaction(stock_symbol, 'buy', quantity, price)
portfolio_manager.process_transaction(portfolio_name, transaction)
database.save_portfolio(portfolio_manager.get_portfolio(portfolio_name))
#F2
elif choice == '5':
portfolio_name = input("Enter portfolio name: ")
stock_symbol = input("Enter stock symbol: ")
quantity = int(input("Enter quantity: "))
price = float(input("Enter price per share: "))
transaction = Transaction(stock_symbol, 'sell', quantity, price)
portfolio_manager.process_transaction(portfolio_name, transaction)
database.save_portfolio(portfolio_manager.get_portfolio(portfolio_name))
elif choice == '6':
portfolio_name = input("Enter portfolio name: ")
report = report_generator.generate_portfolio_report(portfolio_name)
print(report)
elif choice == '7':
print("Exiting...")
break
else:
print("Invalid choice. Please try again.")
if __name__ == "__main__":
main()