diff --git a/ledger_pyreport/__init__.py b/ledger_pyreport/__init__.py
index 17eb992..60df5bd 100644
--- a/ledger_pyreport/__init__.py
+++ b/ledger_pyreport/__init__.py
@@ -139,8 +139,8 @@ def pandl():
@app.route('/transactions')
def transactions():
- date = datetime.strptime(flask.request.args['date'], '%Y-%m-%d')
- pstart = datetime.strptime(flask.request.args['pstart'], '%Y-%m-%d')
+ date_beg = datetime.strptime(flask.request.args['date_beg'], '%Y-%m-%d')
+ date_end = datetime.strptime(flask.request.args['date_end'], '%Y-%m-%d')
account = flask.request.args.get('account', None)
cash = flask.request.args.get('cash', False)
commodity = flask.request.args.get('commodity', False)
@@ -148,42 +148,42 @@ def transactions():
report_currency = Currency(*config['report_currency'])
# General ledger
- l = ledger.raw_transactions_at_date(date)
+ l = ledger.raw_transactions_at_date(date_end)
if cash:
l = accounting.ledger_to_cash(l, report_currency)
# Unrealized gains
- l = accounting.add_unrealized_gains(accounting.trial_balance(l, date, pstart), report_currency).ledger
+ l = accounting.add_unrealized_gains(accounting.trial_balance(l, date_end, date_beg), report_currency).ledger
if not account:
# General Ledger
- transactions = [t for t in l.transactions if t.date <= date and t.date >= pstart]
+ transactions = [t for t in l.transactions if t.date <= date_end and t.date >= date_beg]
total_dr = sum((p.amount for t in transactions for p in t.postings if p.amount > 0), Balance()).exchange(report_currency, True)
total_cr = sum((p.amount for t in transactions for p in t.postings if p.amount < 0), Balance()).exchange(report_currency, True)
- return flask.render_template('transactions.html', date=date, pstart=pstart, period=describe_period(date, pstart), account=None, ledger=l, transactions=transactions, total_dr=total_dr, total_cr=total_cr, report_currency=report_currency, cash=cash)
+ return flask.render_template('transactions.html', date_beg=date_beg, date_end=date_end, period=describe_period(date_end, date_beg), account=None, ledger=l, transactions=transactions, total_dr=total_dr, total_cr=total_cr, report_currency=report_currency, cash=cash)
elif commodity:
# Account Transactions with commodity detail
account = l.get_account(account)
- transactions = [t for t in l.transactions if t.date <= date and t.date >= pstart and any(p.account == account for p in t.postings)]
+ transactions = [t for t in l.transactions if t.date <= date_end and t.date >= date_beg and any(p.account == account for p in t.postings)]
- opening_balance = accounting.trial_balance(l, pstart - timedelta(days=1), pstart).get_balance(account).clean()
- closing_balance = accounting.trial_balance(l, date, pstart).get_balance(account).clean()
+ opening_balance = accounting.trial_balance(l, date_beg - timedelta(days=1), date_beg).get_balance(account).clean()
+ closing_balance = accounting.trial_balance(l, date_end, date_beg).get_balance(account).clean()
def matching_posting(transaction, amount):
return next((p for p in transaction.postings if p.account == account and p.amount.currency == amount.currency), None)
- return flask.render_template('transactions_commodity.html', date=date, pstart=pstart, period=describe_period(date, pstart), account=account, ledger=l, transactions=transactions, opening_balance=opening_balance, closing_balance=closing_balance, report_currency=report_currency, cash=cash, timedelta=timedelta, matching_posting=matching_posting)
+ return flask.render_template('transactions_commodity.html', date_beg=date_beg, date_end=date_end, period=describe_period(date_end, date_beg), account=account, ledger=l, transactions=transactions, opening_balance=opening_balance, closing_balance=closing_balance, report_currency=report_currency, cash=cash, timedelta=timedelta, matching_posting=matching_posting)
else:
# Account Transactions
account = l.get_account(account)
- transactions = [t for t in l.transactions if t.date <= date and t.date >= pstart and any(p.account == account for p in t.postings)]
+ transactions = [t for t in l.transactions if t.date <= date_end and t.date >= date_beg and any(p.account == account for p in t.postings)]
- opening_balance = accounting.trial_balance(l, pstart - timedelta(days=1), pstart).get_balance(account).exchange(report_currency, True)
- closing_balance = accounting.trial_balance(l, date, pstart).get_balance(account).exchange(report_currency, True)
+ opening_balance = accounting.trial_balance(l, date_beg - timedelta(days=1), date_beg).get_balance(account).exchange(report_currency, True)
+ closing_balance = accounting.trial_balance(l, date_end, date_beg).get_balance(account).exchange(report_currency, True)
- return flask.render_template('transactions.html', date=date, pstart=pstart, period=describe_period(date, pstart), account=account, ledger=l, transactions=transactions, opening_balance=opening_balance, closing_balance=closing_balance, report_currency=report_currency, cash=cash, timedelta=timedelta)
+ return flask.render_template('transactions.html', date_beg=date_beg, date_end=date_end, period=describe_period(date_end, date_beg), account=account, ledger=l, transactions=transactions, opening_balance=opening_balance, closing_balance=closing_balance, report_currency=report_currency, cash=cash, timedelta=timedelta)
@app.route('/transaction')
def transaction():
diff --git a/ledger_pyreport/jinja2/balance.html b/ledger_pyreport/jinja2/balance.html
index 7be02fd..17a9ec4 100644
--- a/ledger_pyreport/jinja2/balance.html
+++ b/ledger_pyreport/jinja2/balance.html
@@ -23,9 +23,9 @@
{% if balance_sheets|length == 1 %}
{% if account.name == config['current_year_earnings'] %}
-
+
{% else %}
-
+
{% endif %}
{{ account.bits[-1] }}
@@ -38,9 +38,9 @@
|
{% if not amount.near_zero %}
{% if account.name == config['current_year_earnings'] %}
- {{ amount|a('/pandl?' + {'date_end': balance_sheet.date.strftime('%Y-%m-%d'), 'date_beg': balance_sheets[0].pstart.strftime('%Y-%m-%d'), 'compare': '0', 'cash': 'on' if cash else ''}|urlencode) }}
+ {{ amount|a('/pandl?' + {'date_end': balance_sheet.date.strftime('%Y-%m-%d'), 'date_beg': balance_sheets[0].pstart.strftime('%Y-%m-%d'), 'compare': '0', 'cash': 'on' if cash else '', 'scope': 'both'}|urlencode) }}
{% else %}
- {{ amount|a('/transactions?' + {'date': balance_sheet.date.strftime('%Y-%m-%d'), 'pstart': balance_sheet.pstart.strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else ''}|urlencode) }}
+ {{ amount|a('/transactions?' + {'date_end': balance_sheet.date.strftime('%Y-%m-%d'), 'date_beg': balance_sheet.pstart.strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else ''}|urlencode) }}
{% endif %}
{% endif %}
diff --git a/ledger_pyreport/jinja2/index.html b/ledger_pyreport/jinja2/index.html
index 285cf35..74c8941 100644
--- a/ledger_pyreport/jinja2/index.html
+++ b/ledger_pyreport/jinja2/index.html
@@ -54,8 +54,8 @@
diff --git a/ledger_pyreport/jinja2/pandl.html b/ledger_pyreport/jinja2/pandl.html
index a85cba7..fa329d7 100644
--- a/ledger_pyreport/jinja2/pandl.html
+++ b/ledger_pyreport/jinja2/pandl.html
@@ -22,7 +22,7 @@
|
{% if pandls|length == 1 %}
- {{ account.bits[-1] }}
+ {{ account.bits[-1] }}
{% else %}
{{ account.bits[-1] }}
{% endif %}
diff --git a/ledger_pyreport/jinja2/transactions.html b/ledger_pyreport/jinja2/transactions.html
index b5276a4..fbef23a 100644
--- a/ledger_pyreport/jinja2/transactions.html
+++ b/ledger_pyreport/jinja2/transactions.html
@@ -18,11 +18,11 @@
{% extends 'base_report.html' %}
-{% block title %}{% if account %}Account Transactions{% else %}General Ledger{% endif %} as at {{ date.strftime('%d %B %Y') }}{% endblock %}
+{% block title %}{% if account %}Account Transactions{% else %}General Ledger{% endif %} for the {{ period }}{% endblock %}
{% block links %}
{{ super() }}
- {% if account %}Show commodity detail{% endif %}
+ {% if account %}Show commodity detail{% endif %}
{% endblock %}
{% block report %}
@@ -46,9 +46,9 @@
{% set ns = namespace(balance=None) %}
{% if account %}
- {% set prevlink = '/transactions?' + {'date': (pstart - timedelta(days=1)).strftime('%Y-%m-%d'), 'pstart': pstart.replace(year=pstart.year-1).strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else ''}|urlencode %}
+ {% set prevlink = '/transactions?' + {'date_end': (date_beg - timedelta(days=1)).strftime('%Y-%m-%d'), 'date_beg': date_beg.replace(year=date_beg.year-1).strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else ''}|urlencode %}
|
- {{ pstart.strftime('%Y-%m-%d') }} |
+ {{ date_beg.strftime('%Y-%m-%d') }} |
Opening Balance |
|
|
@@ -73,7 +73,7 @@
{% if loop.first %}{% if transaction.id %}{% endif %}{{ transaction.date.strftime('%Y-%m-%d') }}{% if transaction.id %}{% endif %}{% endif %} |
{% if loop.first %}{% if transaction.id %}{% endif %}{{ transaction.description }}{% if transaction.id %}{% endif %}{% endif %} |
- {{ (posting.account.name|e).__str__().replace(':', ':')|safe }} |
+ {{ (posting.account.name|e).__str__().replace(':', ':')|safe }} |
{% if account %}
{# Reverse Dr/Cr so it's from the "perspective" of this account #}
{% set ns.balance = ns.balance - amount %}
@@ -98,7 +98,7 @@
{% if account %}
- {{ date.strftime('%Y-%m-%d') }} |
+ {{ date_end.strftime('%Y-%m-%d') }} |
Closing Balance |
|
|
@@ -113,7 +113,7 @@
{% else %}
- {{ date.strftime('%Y-%m-%d') }} |
+ {{ date_end.strftime('%Y-%m-%d') }} |
Total |
|
{{ total_dr|b }} |
diff --git a/ledger_pyreport/jinja2/transactions_commodity.html b/ledger_pyreport/jinja2/transactions_commodity.html
index 4bbd754..d079f44 100644
--- a/ledger_pyreport/jinja2/transactions_commodity.html
+++ b/ledger_pyreport/jinja2/transactions_commodity.html
@@ -18,7 +18,7 @@
{% extends 'base_report.html' %}
-{% block title %}Account Transactions as at {{ date.strftime('%d %B %Y') }}{% endblock %}
+{% block title %}Account Transactions for the {{ period }}{% endblock %}
{% block report %}
Account Transactions
@@ -39,10 +39,10 @@
{% set ns = namespace(balance=None) %}
- {% set prevlink = '/transactions?' + {'date': (pstart - timedelta(days=1)).strftime('%Y-%m-%d'), 'pstart': pstart.replace(year=pstart.year-1).strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else '', 'commodity': 'on'}|urlencode %}
+ {% set prevlink = '/transactions?' + {'date_end': (date_beg - timedelta(days=1)).strftime('%Y-%m-%d'), 'date_beg': date_beg.replace(year=date_beg.year-1).strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else '', 'commodity': 'on'}|urlencode %}
{% for amount in opening_balance.amounts %}
- {% if loop.first %}{{ pstart.strftime('%Y-%m-%d') }}{% endif %} |
+ {% if loop.first %}{{ date_beg.strftime('%Y-%m-%d') }}{% endif %} |
{% if loop.first %}Opening Balance{% endif %} |
|
|
@@ -52,7 +52,7 @@
{% else %}
- {{ pstart.strftime('%Y-%m-%d') }} |
+ {{ date_beg.strftime('%Y-%m-%d') }} |
Opening Balance |
|
|
@@ -90,7 +90,7 @@
{% for amount in closing_balance.amounts %}
- {% if loop.first %}{{ date.strftime('%Y-%m-%d') }}{% endif %} |
+ {% if loop.first %}{{ date_end.strftime('%Y-%m-%d') }}{% endif %} |
{% if loop.first %}Closing Balance{% endif %} |
|
|
diff --git a/ledger_pyreport/jinja2/trial.html b/ledger_pyreport/jinja2/trial.html
index 4237453..73db59d 100644
--- a/ledger_pyreport/jinja2/trial.html
+++ b/ledger_pyreport/jinja2/trial.html
@@ -33,7 +33,7 @@
{% for account in accounts %}
{# Display in "cost basis" as we have already accounted for unrealised gains #}
{% set balance = trial_balance.get_balance(account).exchange(report_currency, True) %}
- {% set trn_url = "/transactions?" + {'date': trial_balance.date.strftime('%Y-%m-%d'), 'pstart': trial_balance.pstart.strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else ''}|urlencode %}
+ {% set trn_url = "/transactions?" + {'date_end': trial_balance.date.strftime('%Y-%m-%d'), 'date_beg': trial_balance.pstart.strftime('%Y-%m-%d'), 'account': account.name, 'cash': 'on' if cash else ''}|urlencode %}
{% if not balance.near_zero %}
{{ account.name }} |
diff --git a/ledger_pyreport/jinja2/trial_multiple.html b/ledger_pyreport/jinja2/trial_multiple.html
index a55341c..07957c5 100644
--- a/ledger_pyreport/jinja2/trial_multiple.html
+++ b/ledger_pyreport/jinja2/trial_multiple.html
@@ -34,7 +34,7 @@
{{ account.name }} |
{% for trial_balance in trial_balances %}
{% set balance = trial_balance.get_balance(account).exchange(report_currency, True) %}
- {% if not balance.near_zero %}{{ balance|abs|b }} {% if balance >= 0 %}Dr{% else %}Cr{% endif %}{% endif %} |
+ {% if not balance.near_zero %}{{ balance|abs|b }} {% if balance >= 0 %}Dr{% else %}Cr{% endif %}{% endif %} |
{% endfor %}
{% endfor %}