diff --git a/gui/platform_edit.ui b/gui/platform_edit.ui
index b24bfe5..cfa5bce 100644
--- a/gui/platform_edit.ui
+++ b/gui/platform_edit.ui
@@ -19,7 +19,7 @@
10
10
461
- 191
+ 226
@@ -41,66 +41,76 @@
10
- -
+
-
Share platform fee
- -
+
-
- -
+
-
- -
+
-
Fund dealing fee
- -
+
-
- -
+
-
- -
+
-
Share platform fee cap
- -
+
-
- -
+
-
Share dealing fee
- -
+
-
Share dealing fee discount
- -
+
-
- -
+
-
Share dealing discount # of trades
+ -
+
+
+ Platform name
+
+
+
+ -
+
+
@@ -118,6 +128,7 @@
+ plat_name_box
fund_deal_fee_box
share_plat_fee_box
share_plat_max_fee_box
diff --git a/src/main_window.py b/src/main_window.py
index 62c117e..ed11b69 100644
--- a/src/main_window.py
+++ b/src/main_window.py
@@ -12,6 +12,7 @@ class SIPPCompare(QMainWindow):
# Define class variables
self.fund_plat_fee = 0.0
+ self.plat_name = ""
self.fund_deal_fee = 0.0
self.share_plat_fee = 0.0
self.share_plat_max_fee = 0.0
@@ -39,6 +40,7 @@ class SIPPCompare(QMainWindow):
self.mix_lab.setText(mix_lab_str)
def init_variables(self):
+ self.plat_name = self.platform_win.get_plat_name()
self.fund_plat_fee = self.platform_win.get_fund_plat_fee()
self.fund_deal_fee = self.platform_win.get_fund_deal_fee()
self.share_plat_fee = self.platform_win.get_share_plat_fee()
@@ -50,6 +52,7 @@ class SIPPCompare(QMainWindow):
# Calculate fees
def calculate_fees(self):
self.init_variables()
+ self.fund_plat_fees = 0
value_num = float(self.value_input.text()[1:])
slider_val = self.mix_slider.value()
funds_value = (slider_val / 100) * value_num
@@ -57,10 +60,10 @@ class SIPPCompare(QMainWindow):
self.fund_deal_fees = fund_trades_num * self.fund_deal_fee
remaining = funds_value
- for i in range(1, len(self.tiered_fees[0])):
- band = self.tiered_fees[0][i]
- prev_band = self.tiered_fees[0][i - 1]
- fee = self.tiered_fees[1][i]
+ for i in range(1, len(self.fund_plat_fee[0])):
+ band = self.fund_plat_fee[0][i]
+ prev_band = self.fund_plat_fee[0][i - 1]
+ fee = self.fund_plat_fee[1][i]
gap = (band - prev_band)
if remaining > gap:
@@ -88,7 +91,7 @@ class SIPPCompare(QMainWindow):
def show_output_win(self):
# Refresh the results when new fees are calculated
self.output_win.display_output(self.fund_plat_fees, self.fund_deal_fees,
- self.share_plat_fees, self.share_deal_fees)
+ self.share_plat_fees, self.share_deal_fees, self.plat_name)
self.output_win.show()
# Show the platform editor window (currently useless)
diff --git a/src/output_window.py b/src/output_window.py
index dc7b435..07f8f5e 100644
--- a/src/output_window.py
+++ b/src/output_window.py
@@ -14,20 +14,21 @@ class OutputWindow(QWidget):
self.res_save_but.clicked.connect(self.save_results)
self.results_str = ""
+ self.platform_name = ""
def save_results(self):
cur_time = datetime.datetime.now()
if not os.path.exists("output"):
os.makedirs("output")
- filename_str = (f"output/{cur_time.year}-{cur_time.month}-{cur_time.day}"
- f".{cur_time.hour}-{cur_time.minute}-{cur_time.second}.txt")
+ filename_str = f"output/{self.platform_name}-{cur_time.year}.{cur_time.month}.{cur_time.day}.txt"
output_file = open(filename_str, "wt")
output_file.write(self.results_str)
def display_output(self, fund_plat_fees: float, fund_deal_fees: float,
- share_plat_fees: float, share_deal_fees: float):
- self.results_str = "Fees breakdown:"
+ share_plat_fees: float, share_deal_fees: float, plat_name: str):
+ self.platform_name = plat_name
+ self.results_str = f"Fees breakdown (Platform \"{self.platform_name}\"):"
self.results_str += "\n\nPlatform fees:"
self.results_str += f"\n\tFund platform fees: £{round(fund_plat_fees, 2):.2f}"
diff --git a/src/platform_edit.py b/src/platform_edit.py
index e56962a..9e16c79 100644
--- a/src/platform_edit.py
+++ b/src/platform_edit.py
@@ -11,6 +11,7 @@ class PlatformEdit(QWidget):
[0, 250000, 1000000, 2000000],
[0, 0.25, 0.1, 0.05]
]
+ self.plat_name = ""
self.fund_deal_fee = 0.0
self.share_plat_fee = 0.0
self.share_plat_max_fee = 0.0
@@ -21,6 +22,7 @@ class PlatformEdit(QWidget):
self.save_but.clicked.connect(self.init_variables)
def init_variables(self):
+ self.plat_name = self.plat_name_box.text()
self.fund_deal_fee = float(self.fund_deal_fee_box.text())
self.share_plat_fee = float(self.share_plat_fee_box.text()) / 100
self.share_plat_max_fee = float(self.share_plat_max_fee_box.text())
@@ -28,6 +30,9 @@ class PlatformEdit(QWidget):
self.share_deal_reduce_trades = float(self.share_deal_reduce_trades_box.text())
self.share_deal_reduce_amount = float(self.share_deal_reduce_amount_box.text())
+ def get_plat_name(self):
+ return self.plat_name
+
def get_fund_plat_fee(self):
return self.fund_plat_fee