mirror of
https://github.com/RolandWH/SIPPCompare.git
synced 2025-04-20 00:11:48 +01:00
Compare commits
No commits in common. "e0f49a1c14eae5cce4c7e98b7e1f89fe42739cf8" and "df7baa2df23edd1b94f231ea84627a80d9fd899b" have entirely different histories.
e0f49a1c14
...
df7baa2df2
@ -35,7 +35,7 @@
|
|||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>401</width>
|
<width>401</width>
|
||||||
<height>176</height>
|
<height>171</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QFormLayout" name="formLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
@ -53,11 +53,6 @@
|
|||||||
</property>
|
</property>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="value_lab">
|
<widget class="QLabel" name="value_lab">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Pension value</string>
|
<string>Pension value</string>
|
||||||
</property>
|
</property>
|
||||||
@ -65,11 +60,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QDoubleSpinBox" name="value_input">
|
<widget class="QDoubleSpinBox" name="value_input">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="frame">
|
<property name="frame">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
@ -92,11 +82,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="1" column="0" colspan="2">
|
<item row="1" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="mix_lab">
|
<widget class="QLabel" name="mix_lab">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Investment mix (funds 50% / shares 50%)</string>
|
<string>Investment mix (funds 50% / shares 50%)</string>
|
||||||
</property>
|
</property>
|
||||||
@ -123,11 +108,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="share_trades_lab">
|
<widget class="QLabel" name="share_trades_lab">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Annual share trades</string>
|
<string>Annual share trades</string>
|
||||||
</property>
|
</property>
|
||||||
@ -135,11 +115,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="fund_trades_lab">
|
<widget class="QLabel" name="fund_trades_lab">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Annual fund trades</string>
|
<string>Annual fund trades</string>
|
||||||
</property>
|
</property>
|
||||||
@ -147,11 +122,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QComboBox" name="fund_trades_combo">
|
<widget class="QComboBox" name="fund_trades_combo">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="editable">
|
<property name="editable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
@ -162,11 +132,6 @@
|
|||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Calculate</string>
|
<string>Calculate</string>
|
||||||
</property>
|
</property>
|
||||||
@ -174,11 +139,6 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QComboBox" name="share_trades_combo">
|
<widget class="QComboBox" name="share_trades_combo">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="editable">
|
<property name="editable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
@ -191,11 +151,6 @@
|
|||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenuBar" name="menuBar">
|
<widget class="QMenuBar" name="menuBar">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
@ -206,17 +161,7 @@
|
|||||||
<height>33</height>
|
<height>33</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<widget class="QMenu" name="menuPlatforms">
|
<widget class="QMenu" name="menuPlatforms">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>File</string>
|
<string>File</string>
|
||||||
</property>
|
</property>
|
||||||
@ -228,11 +173,6 @@
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Edit Platforms</string>
|
<string>Edit Platforms</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
</action>
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
|
@ -34,11 +34,6 @@
|
|||||||
<height>250</height>
|
<height>250</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>11</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" name="res_ok_but">
|
<widget class="QPushButton" name="res_ok_but">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
@ -49,11 +44,6 @@
|
|||||||
<height>24</height>
|
<height>24</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>OK</string>
|
<string>OK</string>
|
||||||
</property>
|
</property>
|
||||||
@ -67,11 +57,6 @@
|
|||||||
<height>24</height>
|
<height>24</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Save</string>
|
<string>Save</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -368,7 +368,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>11</x>
|
<x>11</x>
|
||||||
<y>309</y>
|
<y>314</y>
|
||||||
<width>611</width>
|
<width>611</width>
|
||||||
<height>31</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
@ -445,10 +445,7 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" name="add_row_but">
|
<widget class="QPushButton" name="new_row_but">
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>532</x>
|
<x>532</x>
|
||||||
@ -467,9 +464,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QPushButton" name="del_row_but">
|
<widget class="QPushButton" name="del_row_but">
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>440</x>
|
<x>440</x>
|
||||||
@ -487,24 +481,6 @@
|
|||||||
<string>Remove row</string>
|
<string>Remove row</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="val_above_lab">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>6</x>
|
|
||||||
<y>479</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>on the value above £ there is no charge</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
@ -536,7 +512,7 @@
|
|||||||
<tabstop>first_tier_box</tabstop>
|
<tabstop>first_tier_box</tabstop>
|
||||||
<tabstop>first_tier_fee_box</tabstop>
|
<tabstop>first_tier_fee_box</tabstop>
|
||||||
<tabstop>del_row_but</tabstop>
|
<tabstop>del_row_but</tabstop>
|
||||||
<tabstop>add_row_but</tabstop>
|
<tabstop>new_row_but</tabstop>
|
||||||
<tabstop>save_but</tabstop>
|
<tabstop>save_but</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
@ -76,13 +76,9 @@ class PlatformEdit(QWidget):
|
|||||||
for check_box in self.optional_check_boxes:
|
for check_box in self.optional_check_boxes:
|
||||||
check_box.checkStateChanged.connect(self.check_valid)
|
check_box.checkStateChanged.connect(self.check_valid)
|
||||||
|
|
||||||
self.first_tier_box.valueChanged.connect(self.check_valid)
|
|
||||||
self.first_tier_fee_box.valueChanged.connect(self.check_valid)
|
|
||||||
self.first_tier_box.valueChanged.connect(self.update_tier_labels)
|
|
||||||
|
|
||||||
# NOTE: Signal defined in UI file to close window when save button clicked
|
# NOTE: Signal defined in UI file to close window when save button clicked
|
||||||
self.save_but.clicked.connect(self.init_variables)
|
self.save_but.clicked.connect(self.init_variables)
|
||||||
self.add_row_but.clicked.connect(self.add_row)
|
self.new_row_but.clicked.connect(self.add_row)
|
||||||
self.del_row_but.clicked.connect(self.remove_row)
|
self.del_row_but.clicked.connect(self.remove_row)
|
||||||
|
|
||||||
# Set validators
|
# Set validators
|
||||||
@ -109,10 +105,6 @@ class PlatformEdit(QWidget):
|
|||||||
# If debugging, save time by hardcoding
|
# If debugging, save time by hardcoding
|
||||||
if self.autofill:
|
if self.autofill:
|
||||||
self.plat_name = "AJBell"
|
self.plat_name = "AJBell"
|
||||||
self.fund_plat_fee = [
|
|
||||||
[0, 250000, 1000000, 2000000],
|
|
||||||
[0, 0.25, 0.1, 0.05]
|
|
||||||
]
|
|
||||||
self.fund_deal_fee = 1.50
|
self.fund_deal_fee = 1.50
|
||||||
self.share_plat_fee = 0.0025
|
self.share_plat_fee = 0.0025
|
||||||
self.share_plat_max_fee = 3.50
|
self.share_plat_max_fee = 3.50
|
||||||
@ -142,7 +134,6 @@ class PlatformEdit(QWidget):
|
|||||||
# It's also called when any field emits a textChanged() or valueChanged() signal
|
# It's also called when any field emits a textChanged() or valueChanged() signal
|
||||||
def check_valid(self):
|
def check_valid(self):
|
||||||
valid = True
|
valid = True
|
||||||
tiers_valid = True
|
|
||||||
|
|
||||||
# Check all required fields have a non-zero value
|
# Check all required fields have a non-zero value
|
||||||
for field in self.required_fields:
|
for field in self.required_fields:
|
||||||
@ -172,47 +163,15 @@ class PlatformEdit(QWidget):
|
|||||||
input_box_item.setEnabled(False)
|
input_box_item.setEnabled(False)
|
||||||
self.check_boxes_ticked[i] = False
|
self.check_boxes_ticked[i] = False
|
||||||
|
|
||||||
if self.first_tier_fee_box.value() == 0:
|
if valid:
|
||||||
tiers_valid = False
|
|
||||||
|
|
||||||
if self.fund_fee_rows > 1:
|
|
||||||
if self.widgets_list_list[0][1].value() <= self.first_tier_box.value():
|
|
||||||
tiers_valid = False
|
|
||||||
if self.widgets_list_list[0][3].value() == 0:
|
|
||||||
tiers_valid = False
|
|
||||||
|
|
||||||
for i in range(len(self.widgets_list_list) - 1, 0, -1):
|
|
||||||
if self.widgets_list_list[i][1].value() <= self.widgets_list_list[i-1][1].value():
|
|
||||||
tiers_valid = False
|
|
||||||
if self.widgets_list_list[i][3].value() == 0:
|
|
||||||
tiers_valid = False
|
|
||||||
|
|
||||||
if tiers_valid and self.fund_fee_rows < 6:
|
|
||||||
self.add_row_but.setEnabled(True)
|
|
||||||
else:
|
|
||||||
self.add_row_but.setEnabled(False)
|
|
||||||
|
|
||||||
if valid and tiers_valid:
|
|
||||||
self.save_but.setEnabled(True)
|
self.save_but.setEnabled(True)
|
||||||
else:
|
else:
|
||||||
self.save_but.setEnabled(False)
|
self.save_but.setEnabled(False)
|
||||||
|
|
||||||
def update_tier_labels(self):
|
|
||||||
if self.fund_fee_rows > 1:
|
|
||||||
prev_value = self.first_tier_box.value()
|
|
||||||
self.widgets_list_list[0][0].setText(f"between £{int(prev_value)} and")
|
|
||||||
|
|
||||||
for i in range(len(self.widgets_list_list) - 1, 0, -1):
|
|
||||||
prev_value = self.widgets_list_list[i-1][1].value()
|
|
||||||
self.widgets_list_list[i][0].setText(f"between £{int(prev_value)} and")
|
|
||||||
|
|
||||||
if self.fund_fee_rows > 1:
|
|
||||||
max_band = self.widgets_list_list[self.fund_fee_rows - 2][1].value()
|
|
||||||
else:
|
|
||||||
max_band = self.first_tier_box.value()
|
|
||||||
self.val_above_lab.setText(f"on the value above £{int(max_band)} there is no charge")
|
|
||||||
|
|
||||||
def add_row(self):
|
def add_row(self):
|
||||||
|
if self.fund_fee_rows > 5:
|
||||||
|
return -1
|
||||||
|
|
||||||
widgets = []
|
widgets = []
|
||||||
font = QFont()
|
font = QFont()
|
||||||
font.setPointSize(11)
|
font.setPointSize(11)
|
||||||
@ -225,8 +184,6 @@ class PlatformEdit(QWidget):
|
|||||||
widgets[1].setMaximum(9999999)
|
widgets[1].setMaximum(9999999)
|
||||||
widgets[1].setButtonSymbols(FastEditQDoubleSpinBox.ButtonSymbols.NoButtons)
|
widgets[1].setButtonSymbols(FastEditQDoubleSpinBox.ButtonSymbols.NoButtons)
|
||||||
widgets[1].setFont(font)
|
widgets[1].setFont(font)
|
||||||
widgets[1].valueChanged.connect(self.check_valid)
|
|
||||||
widgets[1].valueChanged.connect(self.update_tier_labels)
|
|
||||||
|
|
||||||
widgets.append(QLabel(self.gridLayoutWidget_2))
|
widgets.append(QLabel(self.gridLayoutWidget_2))
|
||||||
widgets[2].setText(f"the fee is")
|
widgets[2].setText(f"the fee is")
|
||||||
@ -237,10 +194,9 @@ class PlatformEdit(QWidget):
|
|||||||
widgets[3].setMaximum(100)
|
widgets[3].setMaximum(100)
|
||||||
widgets[3].setButtonSymbols(FastEditQDoubleSpinBox.ButtonSymbols.NoButtons)
|
widgets[3].setButtonSymbols(FastEditQDoubleSpinBox.ButtonSymbols.NoButtons)
|
||||||
widgets[3].setFont(font)
|
widgets[3].setFont(font)
|
||||||
widgets[3].valueChanged.connect(self.check_valid)
|
|
||||||
|
|
||||||
# TODO: why 28.5?
|
# TODO: why 28.5?
|
||||||
self.gridLayoutWidget_2.setGeometry(11, 309, 611, int(round(28.5 * (self.fund_fee_rows + 1), 0)))
|
self.gridLayoutWidget_2.setGeometry(11, 314, 611, int(round(28.5 * (self.fund_fee_rows + 1), 0)))
|
||||||
for i in range(len(widgets)):
|
for i in range(len(widgets)):
|
||||||
self.gridLayout_2.addWidget(widgets[i], self.fund_fee_rows, i, 1, 1)
|
self.gridLayout_2.addWidget(widgets[i], self.fund_fee_rows, i, 1, 1)
|
||||||
|
|
||||||
@ -257,32 +213,18 @@ class PlatformEdit(QWidget):
|
|||||||
cur_label_item = self.gridLayout_2.itemAtPosition(cur_label_pos[0], cur_label_pos[1]).widget()
|
cur_label_item = self.gridLayout_2.itemAtPosition(cur_label_pos[0], cur_label_pos[1]).widget()
|
||||||
cur_label_item.setText(f"between £{int(prev_box_item.value())} and")
|
cur_label_item.setText(f"between £{int(prev_box_item.value())} and")
|
||||||
|
|
||||||
if self.fund_fee_rows > 1:
|
|
||||||
self.del_row_but.setEnabled(True)
|
|
||||||
|
|
||||||
if self.fund_fee_rows > 5:
|
|
||||||
self.add_row_but.setEnabled(False)
|
|
||||||
|
|
||||||
self.check_valid()
|
|
||||||
|
|
||||||
# TODO: Tab order
|
# TODO: Tab order
|
||||||
|
|
||||||
def remove_row(self):
|
def remove_row(self):
|
||||||
|
if not self.fund_fee_rows > 1:
|
||||||
|
return -1
|
||||||
|
|
||||||
for widget in self.widgets_list_list[self.fund_fee_rows - 2]:
|
for widget in self.widgets_list_list[self.fund_fee_rows - 2]:
|
||||||
self.gridLayout_2.removeWidget(widget)
|
self.gridLayout_2.removeWidget(widget)
|
||||||
widget.hide()
|
widget.hide()
|
||||||
self.widgets_list_list.pop()
|
self.widgets_list_list.pop()
|
||||||
self.fund_fee_rows -= 1
|
self.fund_fee_rows -= 1
|
||||||
self.gridLayoutWidget_2.setGeometry(11, 309, 611, int(round(28.5 * self.fund_fee_rows, 0)))
|
self.gridLayoutWidget_2.setGeometry(11, 314, 611, int(round(28.5 * self.fund_fee_rows, 0)))
|
||||||
|
|
||||||
if self.fund_fee_rows < 2:
|
|
||||||
self.del_row_but.setEnabled(False)
|
|
||||||
|
|
||||||
if self.fund_fee_rows < 6:
|
|
||||||
self.add_row_but.setEnabled(True)
|
|
||||||
|
|
||||||
self.check_valid()
|
|
||||||
self.update_tier_labels()
|
|
||||||
|
|
||||||
# Getter functions (is this necessary? maybe directly reading class vars would be best...)
|
# Getter functions (is this necessary? maybe directly reading class vars would be best...)
|
||||||
def get_optional_boxes(self):
|
def get_optional_boxes(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user