Skip to content
Snippets Groups Projects
Commit ab9dcae3 authored by Vincent Texier's avatar Vincent Texier
Browse files

Display balance and total payment and total deposit in transactions tab

parent 4c6a5c10
No related branches found
No related tags found
No related merge requests found
......@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>481</width>
<height>456</height>
</rect>
</property>
<property name="windowTitle">
......@@ -43,6 +43,31 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_balance">
<property name="text">
<string>Balance:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_payment">
<property name="text">
<string>Payment:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_deposit">
<property name="text">
<string>Deposit:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTableView" name="table_history">
<property name="contextMenuPolicy">
......
......@@ -259,8 +259,7 @@ class Account(QObject):
'''
sent = []
for w in self.wallets:
for transfer in w.transfers(community):
sent.append(transfer)
sent.extend(w.transfers(community))
return sent
def amount(self, community):
......
......@@ -173,6 +173,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget):
QModelIndex(),
QModelIndex(),
[])
self.tab_history.refresh_balance()
if self.tab_wallets:
self.tab_wallets.refresh()
......
from PyQt5.QtWidgets import QWidget, QAbstractItemView, QHeaderView, QDialog, \
QMenu, QAction, QApplication, QMessageBox
from PyQt5.QtCore import Qt, QDateTime, QModelIndex
from PyQt5.QtCore import Qt, QDateTime, QModelIndex, QLocale
from PyQt5.QtGui import QCursor
from ..gen_resources.transactions_tab_uic import Ui_transactionsTabWidget
from ..models.txhistory import HistoryTableModel, TxFilterProxyModel
......@@ -62,6 +62,40 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
self.table_history.setSortingEnabled(True)
self.table_history.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
self.refresh_balance()
def refresh_balance(self):
proxy = self.table_history.model()
balance = proxy.deposits - proxy.payments
if isinstance(proxy.deposits, int):
localized_deposits = QLocale().toString(
self.app.current_account.units_to_ref(proxy.deposits, self.community))
localized_payments = QLocale().toString(
self.app.current_account.units_to_ref(proxy.payments, self.community))
localized_balance = QLocale().toString(
self.app.current_account.units_to_diff_ref(balance, self.community))
else:
localized_deposits = QLocale().toString(
self.app.current_account.units_to_ref(proxy.deposits, self.community), 'f', 2)
localized_payments = QLocale().toString(
self.app.current_account.units_to_ref(proxy.payments, self.community), 'f', 2)
localized_balance = QLocale().toString(
self.app.current_account.units_to_diff_ref(balance, self.community), 'f', 2)
self.label_deposit.setText("Deposits: {:} {:}".format(
localized_deposits,
self.app.current_account.ref_name(self.community.short_currency)
))
self.label_payment.setText("Payments: {:} {:}".format(
localized_payments,
self.app.current_account.ref_name(self.community.short_currency)
))
self.label_balance.setText("Balance: {:} {:}".format(
localized_balance,
self.app.current_account.ref_name(self.community.short_currency)
))
def history_context_menu(self, point):
index = self.table_history.indexAt(point)
model = self.table_history.model()
......
......@@ -31,6 +31,6 @@ if __name__ == '__main__':
app = Application(sys.argv)
QLocale.setDefault(QLocale("en_GB"))
window = MainWindow(app)
window.show()
window.showMaximized()
sys.exit(cutecoin.exec_())
pass
......@@ -20,6 +20,9 @@ class TxFilterProxyModel(QSortFilterProxyModel):
self.account = None
self.ts_from = ts_from
self.ts_to = ts_to
# total by column
self.payments = 0
self.deposits = 0
def set_period(self, ts_from, ts_to):
"""
......@@ -31,11 +34,27 @@ class TxFilterProxyModel(QSortFilterProxyModel):
def filterAcceptsRow(self, sourceRow, sourceParent):
def in_period(date_ts):
return (date_ts in range(self.ts_from, self.ts_to))
return date_ts in range(self.ts_from, self.ts_to)
date_col = self.sourceModel().column_types.index('date')
source_index = self.sourceModel().index(sourceRow, date_col)
date = self.sourceModel().data(source_index, Qt.DisplayRole)
if in_period(date):
# calculate sum total payments
payment = self.sourceModel().data(
self.sourceModel().index(sourceRow, self.sourceModel().column_types.index('payment')),
Qt.DisplayRole
)
if payment:
self.payments += int(payment)
# calculate sum total deposits
deposit = self.sourceModel().data(
self.sourceModel().index(sourceRow, self.sourceModel().column_types.index('deposit')),
Qt.DisplayRole
)
if deposit:
self.deposits += int(deposit)
return in_period(date)
def columnCount(self, parent):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment