diff --git a/apps/monitor/calc.py b/apps/monitor/calc.py
index 42dade8..4bb04f7 100644
--- a/apps/monitor/calc.py
+++ b/apps/monitor/calc.py
@@ -90,8 +90,9 @@ class Calc:
sql = """SELECT SUM(crypto_fee) as crypto_fee, SUM(fiat_fee) as fiat_fee FROM `transaction` WHERE crypto_currency=%s and owner_id=%s"""
cursor.execute(sql, [crypto, userid])
fees = cursor.fetchone()
- if fees[0]:
+ if fees[1]:
total_investment -= Decimal(fees[1])
+ if fees[0]:
amount_kept -= Decimal(fees[0])
rateEUR = ExchangeRate.objects.filter(crypto_currency=crypto, fiat_currency='EUR').order_by('-datetime_valid').first()
diff --git a/apps/transactions/templates/show.html b/apps/transactions/templates/show.html
index 281e55d..f62a142 100644
--- a/apps/transactions/templates/show.html
+++ b/apps/transactions/templates/show.html
@@ -26,15 +26,17 @@
{% endif %}
- | {{ transaction.date_valid }} |
- {{ transaction.crypto_amount|floatformat:3 }}
- {% if transaction.crypto_fee and transaction.crypto_fee > 0 %}Fee: {{ transaction.crypto_fee|floatformat:3 }}{% endif %}
- {{ transaction.crypto_currency }}
- |
- {{ transaction.fiat_amount|formatcurrency }}
- {% if transaction.fiat_fee and transaction.fiat_fee > 0 %}Fee: {{ transaction.fiat_fee|floatformat:2 }}{% endif %}
- {{ transaction.fiat_currency }}
- |
+ {{ transaction.date_valid }} |
+
+ {{ transaction.crypto_total|floatformat:3 }}
+ {{ transaction.crypto_currency }}
+
+ |
+
+ {{ transaction.fiat_total|formatcurrency }}
+ {{ transaction.fiat_currency }}
+
+ |
{% if transaction.transaction_type == 'S' %}
{{ transaction.exchange_rate|formatcurrency }} {{ transaction.crypto_currency }}/{{ transaction.fiat_currency }}
{% endif %}
diff --git a/apps/transactions/views.py b/apps/transactions/views.py
index 22f417b..42ce6a3 100644
--- a/apps/transactions/views.py
+++ b/apps/transactions/views.py
@@ -1,5 +1,6 @@
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
+from django.db.models import Value
from apps.transactions.forms import TransactionForm
from apps.transactions.forms import ImportForm
from apps.transactions.models import Transaction
@@ -43,9 +44,20 @@ def importbtcde(request):
@login_required
def show(request):
if 'crypto' in request.GET:
- transactions = Transaction.objects.filter(owner=request.user, crypto_currency=request.GET['crypto']).order_by('-date_valid')
+ transactions = Transaction.objects.filter(owner=request.user, crypto_currency=request.GET['crypto']).order_by('-date_valid').annotate(crypto_total=Value(0.0), fiat_total=Value(0.0))
else:
- transactions = Transaction.objects.filter(owner=request.user).order_by('-date_valid')
+ transactions = Transaction.objects.filter(owner=request.user).order_by('-date_valid').annotate(crypto_total=Value(0.0), fiat_total=Value(0.0))
+ for tr in transactions:
+ tr.crypto_total = 0.0
+ if tr.crypto_amount:
+ tr.crypto_total += float(tr.crypto_amount)
+ if tr.crypto_fee:
+ tr.crypto_total += float(tr.crypto_fee)
+ tr.fiat_total = 0.0
+ if tr.fiat_amount:
+ tr.fiat_total += float(tr.fiat_amount)
+ if tr.fiat_fee:
+ tr.fiat_total += float(tr.fiat_fee)
return render(request,"show.html",{'transactions':transactions})
@login_required
diff --git a/demo/resetdemo.sql b/demo/resetdemo.sql
index 9c3926e..28a5a39 100644
--- a/demo/resetdemo.sql
+++ b/demo/resetdemo.sql
@@ -2,13 +2,13 @@
update auth_user set password = 'pbkdf2_sha256$216000$FXCqxdaIG4Dd$QCQEUACd3srB68dlqjekrbHYwThyY3EOQxctr6u0hYQ=', username='demo', email='demo@solidcharity.com' where id='3';
delete from `transaction` where owner_id=3;
-insert into `transaction`(crypto_currency, amount_before_fee, amount_after_fee, exchange_rate, fiat_currency, amount, date_valid, owner_id)
+insert into `transaction`(crypto_currency, transaction_type, crypto_amount, crypto_fee, exchange_rate, fiat_currency, fiat_amount, date_valid, owner_id)
values
-('BTC',0.10,0.0990, 754.25,'EUR', 75.42,'2016-12-16 00:00:00.000000',3),
-('BTC',0.20,0.199, 555.32,'EUR',150.85,'2016-09-09 00:00:00.000000',3),
-('BTC',0.03,0.0299,9988.17,'EUR',299.64,'2020-08-07 00:00:00.000000',3),
-('BTC',-0.15,-0.149,14210.97,'EUR',-2131.64,'2018-01-05 00:10:00.000000',3),
-('BCH',0.298,0.298,200.00,'EUR',0.0,'2017-01-08 00:00:00.000000',3),
-('ETH',0.1,0.099,592.15,'EUR',59.21,'2017-12-29 00:12:00.000000',3),
-('ETH',1.0,0.99,100.88,'EUR',100.88,'2019-01-26 00:17:00.000000',3),
-('ETH',-0.8,-0.799,638.9,'EUR',-511.12,'2021-01-01 00:34:00.000000',3);
+('BTC','B',0.0990,0.001,754.25,'EUR', 75.42,'2016-12-16 00:00:00.000000',3),
+('BTC','B',0.199,0.001,555.32,'EUR',150.85,'2016-09-09 00:00:00.000000',3),
+('BTC','B',0.0299,0.0001,9988.17,'EUR',299.64,'2020-08-07 00:00:00.000000',3),
+('BTC','S',0.149,0.001,14210.97,'EUR',2131.64,'2018-01-05 00:10:00.000000',3),
+('BCH','B',0.298,0,200.00,'EUR',0.0,'2017-01-08 00:00:00.000000',3),
+('ETH','B',0.099,0.001,592.15,'EUR',59.21,'2017-12-29 00:12:00.000000',3),
+('ETH','B',0.99,0.01,100.88,'EUR',100.88,'2019-01-26 00:17:00.000000',3),
+('ETH','S',-0.799,0.001,638.9,'EUR',511.12,'2021-01-01 00:34:00.000000',3);
|