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