django-ledger 0.7.2__py3-none-any.whl → 0.7.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of django-ledger might be problematic. Click here for more details.
- django_ledger/__init__.py +1 -1
- django_ledger/forms/account.py +4 -1
- django_ledger/io/io_core.py +3 -1
- django_ledger/models/data_import.py +1 -0
- django_ledger/models/mixins.py +5 -5
- django_ledger/static/django_ledger/bundle/djetler.bundle.js +1 -1
- django_ledger/static/django_ledger/bundle/styles.bundle.js +1 -1
- django_ledger/templates/django_ledger/account/tags/account_txs_table.html +1 -1
- django_ledger/templates/django_ledger/bills/bill_update.html +1 -1
- django_ledger/templates/django_ledger/components/icon.html +1 -1
- django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +8 -1
- django_ledger/templates/django_ledger/financial_statements/balance_sheet.html +1 -0
- django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +4 -4
- django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html +118 -0
- django_ledger/templates/django_ledger/includes/nav.html +9 -5
- django_ledger/templates/django_ledger/invoice/includes/card_invoice.html +69 -69
- django_ledger/templatetags/django_ledger.py +11 -3
- django_ledger/views/account.py +1 -1
- django_ledger/views/mixins.py +6 -18
- {django_ledger-0.7.2.dist-info → django_ledger-0.7.3.dist-info}/METADATA +1 -1
- {django_ledger-0.7.2.dist-info → django_ledger-0.7.3.dist-info}/RECORD +25 -75
- assets/node_modules/node-gyp/gyp/gyp_main.py +0 -45
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -367
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1270
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1547
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -153
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -271
- assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -574
- assets/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -666
- assets/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -654
- assets/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -78
- assets/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -165
- assets/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -109
- assets/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -808
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1173
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1321
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -120
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -103
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -464
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -89
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -58
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2518
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3978
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2936
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -55
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1394
- assets/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -25
- assets/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3137
- assets/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -98
- assets/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -771
- assets/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1271
- assets/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
- assets/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
- assets/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -374
- assets/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1939
- assets/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -302
- assets/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3197
- assets/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -65
- assets/node_modules/node-gyp/gyp/setup.py +0 -42
- assets/node_modules/node-gyp/gyp/test_gyp.py +0 -260
- assets/node_modules/node-gyp/gyp/tools/graphviz.py +0 -102
- assets/node_modules/node-gyp/gyp/tools/pretty_gyp.py +0 -156
- assets/node_modules/node-gyp/gyp/tools/pretty_sln.py +0 -181
- assets/node_modules/node-gyp/gyp/tools/pretty_vcproj.py +0 -339
- assets/node_modules/node-gyp/test/fixtures/test-charmap.py +0 -31
- assets/node_modules/node-gyp/update-gyp.py +0 -46
- {django_ledger-0.7.2.dist-info → django_ledger-0.7.3.dist-info}/AUTHORS.md +0 -0
- {django_ledger-0.7.2.dist-info → django_ledger-0.7.3.dist-info}/LICENSE +0 -0
- {django_ledger-0.7.2.dist-info → django_ledger-0.7.3.dist-info}/WHEEL +0 -0
- {django_ledger-0.7.2.dist-info → django_ledger-0.7.3.dist-info}/top_level.txt +0 -0
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<td>
|
|
24
24
|
<div class="dropdown is-right is-hoverable" id="tx-action-{{ tx.uuid }}">
|
|
25
25
|
<div class="dropdown-trigger">
|
|
26
|
-
<button class="button is-small is-rounded
|
|
26
|
+
<button class="button is-small is-rounded"
|
|
27
27
|
aria-haspopup="true"
|
|
28
28
|
aria-controls="dropdown-menu">
|
|
29
29
|
<span>{% trans 'Actions' %}</span>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<div class="container">
|
|
8
8
|
<div class="columns is-multiline">
|
|
9
9
|
<div class="column is-12">
|
|
10
|
-
{% include 'django_ledger/
|
|
10
|
+
{% include 'django_ledger/vendor/includes/card_vendor.html' with vendor=bill_model.vendor %}
|
|
11
11
|
</div>
|
|
12
12
|
<div class="column is-12">
|
|
13
13
|
{% include 'django_ledger/bills/includes/card_bill.html' with bill=bill_model style='bill-detail' entity_slug=view.kwargs.entity_slug %}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<
|
|
1
|
+
<iconify-icon class="djl-icon djl-icon-{{ size }}" icon="{{ icon }}"></iconify-icon>
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
<th>Dated Posted</th>
|
|
8
8
|
<th>Description</th>
|
|
9
9
|
<th>Amount</th>
|
|
10
|
+
<th>Activity</th>
|
|
11
|
+
<th>Entity Unit</th>
|
|
10
12
|
<th>Map To</th>
|
|
11
13
|
<th>TX</th>
|
|
12
14
|
<th>Actions</th>
|
|
@@ -19,10 +21,15 @@
|
|
|
19
21
|
<td>{{ imported_tx.name }}</td>
|
|
20
22
|
<td class="{% if imported_tx.get_amount < 0.00 %}has-text-danger{% endif %} has-text-centered">
|
|
21
23
|
${{ imported_tx.get_amount }}</td>
|
|
24
|
+
<td>{% if imported_tx.activity %}
|
|
25
|
+
{{ imported_tx.get_activity_display }}
|
|
26
|
+
{% endif %}</td>
|
|
27
|
+
<td>{% if imported_tx.entity_unit %}{{ imported_tx.entity_unit }}{% endif %}</td>
|
|
22
28
|
<td>{{ imported_tx.account_model }}</td>
|
|
23
29
|
<td>{{ imported_tx.transaction_model }}</td>
|
|
24
30
|
<td class="has-text-centered">
|
|
25
|
-
<a href="{% url 'django_ledger:je-detail' entity_slug=entity_slug ledger_pk=imported_tx.transaction_model.journal_entry.ledger_id je_pk=imported_tx.transaction_model.journal_entry_id %}"
|
|
31
|
+
<a href="{% url 'django_ledger:je-detail' entity_slug=entity_slug ledger_pk=imported_tx.transaction_model.journal_entry.ledger_id je_pk=imported_tx.transaction_model.journal_entry_id %}"
|
|
32
|
+
class="button is-small is-primary">{% trans 'View JE' %}</a>
|
|
26
33
|
</td>
|
|
27
34
|
</tr>
|
|
28
35
|
{% endfor %}
|
django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html
CHANGED
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
<td class="has-text-centered">{{ acc.balance_type.0 | upper }}</td>
|
|
50
50
|
<td class="has-text-right">{% currency_symbol %}{{ acc.balance | currency_format }}</td>
|
|
51
51
|
<td>
|
|
52
|
-
<div class="dropdown is-
|
|
52
|
+
<div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
|
|
53
53
|
<div class="dropdown-trigger">
|
|
54
|
-
<button class="button is-small is-rounded
|
|
54
|
+
<button class="button is-small is-rounded"
|
|
55
55
|
aria-haspopup="true"
|
|
56
56
|
aria-controls="dropdown-menu">
|
|
57
57
|
<span>{% trans 'Actions' %}</span>
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
</div>
|
|
61
61
|
<div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
|
|
62
62
|
<div class="dropdown-content">
|
|
63
|
-
<a href="{
|
|
63
|
+
<a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
64
64
|
class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
|
|
65
|
-
<a href="{
|
|
65
|
+
<a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
66
66
|
class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
|
|
67
67
|
</div>
|
|
68
68
|
</div>
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
{% endif %}
|
|
13
13
|
<th>{% trans 'Balance Type' %}</th>
|
|
14
14
|
<th>{% trans 'Balance' %}</th>
|
|
15
|
+
<th>{% trans 'Actions' %}</th>
|
|
15
16
|
</tr>
|
|
16
17
|
|
|
17
18
|
{# OPERATING INCOME #}
|
|
@@ -23,7 +24,9 @@
|
|
|
23
24
|
{% endif %}
|
|
24
25
|
<td></td>
|
|
25
26
|
<td></td>
|
|
27
|
+
<td></td>
|
|
26
28
|
</tr>
|
|
29
|
+
|
|
27
30
|
{% for acc in tx_digest.income_statement.operating.revenues %}
|
|
28
31
|
<tr>
|
|
29
32
|
<td class="has-text-right">{{ acc.code }}</td>
|
|
@@ -39,8 +42,29 @@
|
|
|
39
42
|
{% endif %}
|
|
40
43
|
</td>
|
|
41
44
|
<td>{% currency_symbol %}{{ acc.balance | currency_format }}</td>
|
|
45
|
+
<td>
|
|
46
|
+
<div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
|
|
47
|
+
<div class="dropdown-trigger">
|
|
48
|
+
<button class="button is-small is-rounded"
|
|
49
|
+
aria-haspopup="true"
|
|
50
|
+
aria-controls="dropdown-menu">
|
|
51
|
+
<span>{% trans 'Actions' %}</span>
|
|
52
|
+
<span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
|
|
53
|
+
</button>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
|
|
56
|
+
<div class="dropdown-content">
|
|
57
|
+
<a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
58
|
+
class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
|
|
59
|
+
<a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
60
|
+
class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</td>
|
|
42
65
|
</tr>
|
|
43
66
|
{% endfor %}
|
|
67
|
+
|
|
44
68
|
<tr>
|
|
45
69
|
<td></td>
|
|
46
70
|
{% if tx_digest.by_unit %}
|
|
@@ -50,6 +74,7 @@
|
|
|
50
74
|
<td><h2 class="is-size-5 has-text-right">{% trans 'Net Operating Revenues' %}</h2></td>
|
|
51
75
|
<td class="is-size-5 has-text-weight-bold">
|
|
52
76
|
{% currency_symbol %}{{ tx_digest.income_statement.operating.net_operating_revenue | currency_format }}</td>
|
|
77
|
+
<td></td>
|
|
53
78
|
</tr>
|
|
54
79
|
|
|
55
80
|
{# COGS #}
|
|
@@ -61,6 +86,7 @@
|
|
|
61
86
|
{% endif %}
|
|
62
87
|
<td></td>
|
|
63
88
|
<td></td>
|
|
89
|
+
<td></td>
|
|
64
90
|
</tr>
|
|
65
91
|
{% for acc in tx_digest.income_statement.operating.cogs %}
|
|
66
92
|
<tr>
|
|
@@ -77,8 +103,29 @@
|
|
|
77
103
|
{% endif %}
|
|
78
104
|
</td>
|
|
79
105
|
<td>{% currency_symbol %}{{ acc.balance | reverse_sign | currency_format }}</td>
|
|
106
|
+
<td>
|
|
107
|
+
<div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
|
|
108
|
+
<div class="dropdown-trigger">
|
|
109
|
+
<button class="button is-small is-rounded"
|
|
110
|
+
aria-haspopup="true"
|
|
111
|
+
aria-controls="dropdown-menu">
|
|
112
|
+
<span>{% trans 'Actions' %}</span>
|
|
113
|
+
<span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
|
|
114
|
+
</button>
|
|
115
|
+
</div>
|
|
116
|
+
<div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
|
|
117
|
+
<div class="dropdown-content">
|
|
118
|
+
<a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
119
|
+
class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
|
|
120
|
+
<a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
121
|
+
class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</td>
|
|
80
126
|
</tr>
|
|
81
127
|
{% endfor %}
|
|
128
|
+
|
|
82
129
|
<tr>
|
|
83
130
|
<td></td>
|
|
84
131
|
{% if tx_digest.by_unit %}
|
|
@@ -88,6 +135,7 @@
|
|
|
88
135
|
<td><h2 class="is-size-5 has-text-right">{% trans 'Net COGS' %}</h2></td>
|
|
89
136
|
<td class="is-size-5 has-text-weight-bold">
|
|
90
137
|
{% currency_symbol %}{{ tx_digest.income_statement.operating.net_cogs | currency_format }}</td>
|
|
138
|
+
<td></td>
|
|
91
139
|
</tr>
|
|
92
140
|
|
|
93
141
|
{# GROSS PROFIT #}
|
|
@@ -100,6 +148,7 @@
|
|
|
100
148
|
<td><h2 class="is-size-4 has-text-right">{% trans 'Gross Profit' %}</h2></td>
|
|
101
149
|
<td class="is-size-4 has-text-weight-bold">
|
|
102
150
|
{% currency_symbol %}{{ tx_digest.income_statement.operating.gross_profit | currency_format }}</td>
|
|
151
|
+
<td></td>
|
|
103
152
|
</tr>
|
|
104
153
|
|
|
105
154
|
{# OPERATING EXPENSES #}
|
|
@@ -111,6 +160,7 @@
|
|
|
111
160
|
{% endif %}
|
|
112
161
|
<td></td>
|
|
113
162
|
<td></td>
|
|
163
|
+
<td></td>
|
|
114
164
|
</tr>
|
|
115
165
|
{% for acc in tx_digest.income_statement.operating.expenses %}
|
|
116
166
|
<tr>
|
|
@@ -127,6 +177,26 @@
|
|
|
127
177
|
{% endif %}
|
|
128
178
|
</td>
|
|
129
179
|
<td>{% currency_symbol %}{{ acc.balance | reverse_sign | currency_format }}</td>
|
|
180
|
+
<td>
|
|
181
|
+
<div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
|
|
182
|
+
<div class="dropdown-trigger">
|
|
183
|
+
<button class="button is-small is-rounded"
|
|
184
|
+
aria-haspopup="true"
|
|
185
|
+
aria-controls="dropdown-menu">
|
|
186
|
+
<span>{% trans 'Actions' %}</span>
|
|
187
|
+
<span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
|
|
188
|
+
</button>
|
|
189
|
+
</div>
|
|
190
|
+
<div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
|
|
191
|
+
<div class="dropdown-content">
|
|
192
|
+
<a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
193
|
+
class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
|
|
194
|
+
<a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
195
|
+
class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
</td>
|
|
130
200
|
</tr>
|
|
131
201
|
{% endfor %}
|
|
132
202
|
<tr>
|
|
@@ -138,6 +208,7 @@
|
|
|
138
208
|
<td><h2 class="is-size-5 has-text-right">{% trans 'Net Operating Expenses' %}</h2></td>
|
|
139
209
|
<td class="is-size-5 has-text-weight-bold">
|
|
140
210
|
{% currency_symbol %}{{ tx_digest.income_statement.operating.net_operating_expenses | reverse_sign | currency_format }}</td>
|
|
211
|
+
<td></td>
|
|
141
212
|
</tr>
|
|
142
213
|
|
|
143
214
|
|
|
@@ -151,6 +222,7 @@
|
|
|
151
222
|
<td><h2 class="is-size-4 has-text-right">{% trans 'Net Operating Income (Loss)' %}</h2></td>
|
|
152
223
|
<td class="is-size-3">
|
|
153
224
|
{% currency_symbol %}{{ tx_digest.income_statement.operating.net_operating_income| currency_format }}</td>
|
|
225
|
+
<td></td>
|
|
154
226
|
</tr>
|
|
155
227
|
|
|
156
228
|
{# OTHER REVENUES #}
|
|
@@ -162,6 +234,7 @@
|
|
|
162
234
|
{% endif %}
|
|
163
235
|
<td></td>
|
|
164
236
|
<td></td>
|
|
237
|
+
<td></td>
|
|
165
238
|
</tr>
|
|
166
239
|
{% for acc in tx_digest.income_statement.other.revenues %}
|
|
167
240
|
<tr>
|
|
@@ -178,6 +251,26 @@
|
|
|
178
251
|
{% endif %}
|
|
179
252
|
</td>
|
|
180
253
|
<td class="is-size-5">{% currency_symbol %}{{ acc.balance | currency_format }}</td>
|
|
254
|
+
<td>
|
|
255
|
+
<div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
|
|
256
|
+
<div class="dropdown-trigger">
|
|
257
|
+
<button class="button is-small is-rounded"
|
|
258
|
+
aria-haspopup="true"
|
|
259
|
+
aria-controls="dropdown-menu">
|
|
260
|
+
<span>{% trans 'Actions' %}</span>
|
|
261
|
+
<span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
|
|
262
|
+
</button>
|
|
263
|
+
</div>
|
|
264
|
+
<div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
|
|
265
|
+
<div class="dropdown-content">
|
|
266
|
+
<a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
267
|
+
class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
|
|
268
|
+
<a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
269
|
+
class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
</td>
|
|
181
274
|
</tr>
|
|
182
275
|
{% endfor %}
|
|
183
276
|
<tr>
|
|
@@ -189,6 +282,7 @@
|
|
|
189
282
|
<td><h2 class="is-size-5 has-text-right">{% trans 'Net Other Revenues' %}</h2></td>
|
|
190
283
|
<td class="is-size-5 has-text-weight-bold">
|
|
191
284
|
{% currency_symbol %}{{ tx_digest.income_statement.other.net_other_revenues | currency_format }}</td>
|
|
285
|
+
<td></td>
|
|
192
286
|
</tr>
|
|
193
287
|
|
|
194
288
|
|
|
@@ -201,6 +295,7 @@
|
|
|
201
295
|
{% endif %}
|
|
202
296
|
<td></td>
|
|
203
297
|
<td></td>
|
|
298
|
+
<td></td>
|
|
204
299
|
</tr>
|
|
205
300
|
{% for acc in tx_digest.income_statement.other.expenses %}
|
|
206
301
|
<tr>
|
|
@@ -217,6 +312,26 @@
|
|
|
217
312
|
{% endif %}
|
|
218
313
|
</td>
|
|
219
314
|
<td class="is-size-5">{% currency_symbol %}{{ acc.balance | reverse_sign | currency_format }}</td>
|
|
315
|
+
<td>
|
|
316
|
+
<div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
|
|
317
|
+
<div class="dropdown-trigger">
|
|
318
|
+
<button class="button is-small is-rounded"
|
|
319
|
+
aria-haspopup="true"
|
|
320
|
+
aria-controls="dropdown-menu">
|
|
321
|
+
<span>{% trans 'Actions' %}</span>
|
|
322
|
+
<span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
|
|
323
|
+
</button>
|
|
324
|
+
</div>
|
|
325
|
+
<div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
|
|
326
|
+
<div class="dropdown-content">
|
|
327
|
+
<a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
328
|
+
class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
|
|
329
|
+
<a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
|
|
330
|
+
class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
</td>
|
|
220
335
|
</tr>
|
|
221
336
|
{% endfor %}
|
|
222
337
|
<tr>
|
|
@@ -228,6 +343,7 @@
|
|
|
228
343
|
<td><h2 class="is-size-5 has-text-right">{% trans 'Net Other Expenses' %}</h2></td>
|
|
229
344
|
<td class="is-size-5 has-text-weight-bold">
|
|
230
345
|
{% currency_symbol %}{{ tx_digest.income_statement.other.net_other_expenses | currency_format }}</td>
|
|
346
|
+
<td></td>
|
|
231
347
|
</tr>
|
|
232
348
|
|
|
233
349
|
{# NET OTHER INCOME/LOSS #}
|
|
@@ -240,6 +356,7 @@
|
|
|
240
356
|
<td><h2 class="is-size-4 has-text-right">{% trans 'Net Other Income (Loss)' %}</h2></td>
|
|
241
357
|
<td class="is-size-3">
|
|
242
358
|
{% currency_symbol %}{{ tx_digest.income_statement.other.net_other_income | currency_format }}</td>
|
|
359
|
+
<td></td>
|
|
243
360
|
</tr>
|
|
244
361
|
|
|
245
362
|
|
|
@@ -255,6 +372,7 @@
|
|
|
255
372
|
<td><h2 class="is-size-3 has-text-right">{% trans 'Net Income' %}</h2></td>
|
|
256
373
|
<td class="is-size-3 has-text-weight-bold">
|
|
257
374
|
{% currency_symbol %}{{ tx_digest.income_statement.net_income| currency_format }}</td>
|
|
375
|
+
<td></td>
|
|
258
376
|
</tr>
|
|
259
377
|
|
|
260
378
|
</table>
|
|
@@ -28,11 +28,15 @@
|
|
|
28
28
|
<div class="navbar-item">CE TO: {{ tx_digest_context.IO_RESULT.ce_to_date | date }}</div>
|
|
29
29
|
{% endif %}
|
|
30
30
|
<div class="navbar-item">
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
<form action="{% url 'django_ledger:logout' %}" method="POST">
|
|
32
|
+
{% csrf_token %}
|
|
33
|
+
<button
|
|
34
|
+
id="djl-el=logout-button-nav"
|
|
35
|
+
class="button is-small is-danger is-outlined"
|
|
36
|
+
type="submit">
|
|
37
|
+
{% trans 'Logout' %}
|
|
38
|
+
</button>
|
|
39
|
+
</form>
|
|
36
40
|
</div>
|
|
37
41
|
<div class="navbar-item">{% feedback_button %}</div>
|
|
38
42
|
<div class="navbar-item">v{% current_version %}</div>
|
|
@@ -53,85 +53,85 @@
|
|
|
53
53
|
{% trans 'Invoice Info' %}</h2>
|
|
54
54
|
</div>
|
|
55
55
|
<div class="card-content has-text-centered">
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
{% if invoice.is_draft %}
|
|
57
|
+
<h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-warning">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
|
|
58
|
+
<p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
|
|
59
|
+
<span class="has-text-weight-bold">
|
|
60
60
|
{% currency_symbol %}{{ invoice.amount_due | currency_format }}
|
|
61
61
|
</span>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
62
|
+
</p>
|
|
63
|
+
<p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
|
|
64
|
+
<span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
|
|
65
|
+
</p>
|
|
66
|
+
<p class="is-size-3">{% trans 'Is Accrued' %}:
|
|
67
|
+
{% if invoice.accrue %}
|
|
68
|
+
<span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
|
|
69
|
+
{% else %}
|
|
70
|
+
<span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
|
|
71
|
+
{% endif %}
|
|
72
|
+
</p>
|
|
73
|
+
{% elif invoice.is_review %}
|
|
74
|
+
<h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-warning">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
|
|
75
|
+
<p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
|
|
76
|
+
<span class="has-text-weight-bold">
|
|
77
77
|
{% currency_symbol %}{{ invoice.amount_due | currency_format }}
|
|
78
78
|
</span>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
{% endif %}
|
|
89
|
-
</p>
|
|
90
|
-
{% if invoice.xref %}
|
|
91
|
-
<p class="is-size-5 is-italic">{% trans 'External Ref' %}: {{ invoice.xref }}</p>
|
|
79
|
+
</p>
|
|
80
|
+
<p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
|
|
81
|
+
<span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
|
|
82
|
+
</p>
|
|
83
|
+
<p class="is-size-3">{% trans 'Is Accrued' %}:
|
|
84
|
+
{% if invoice.accrue %}
|
|
85
|
+
<span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
|
|
86
|
+
{% else %}
|
|
87
|
+
<span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
|
|
92
88
|
{% endif %}
|
|
89
|
+
</p>
|
|
90
|
+
{% if invoice.xref %}
|
|
91
|
+
<p class="is-size-5 is-italic">{% trans 'External Ref' %}: {{ invoice.xref }}</p>
|
|
92
|
+
{% endif %}
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
{% elif invoice.is_approved %}
|
|
95
|
+
<h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-info">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
|
|
96
|
+
<p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
|
|
97
|
+
<span class="has-text-weight-bold">
|
|
98
98
|
{% currency_symbol %}{{ invoice.amount_due | currency_format }}
|
|
99
99
|
</span>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
100
|
+
</p>
|
|
101
|
+
<p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
|
|
102
|
+
<span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
|
|
103
|
+
</p>
|
|
104
|
+
<p class="is-size-3">{% trans 'Is Accrued' %}:
|
|
105
|
+
{% if invoice.accrue %}
|
|
106
|
+
<span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
|
|
107
|
+
{% else %}
|
|
108
|
+
<span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
|
|
109
|
+
{% endif %}
|
|
110
|
+
</p>
|
|
111
|
+
<p class="is-size-3 has-text-weight-bold">{% trans 'Amount Paid' %}:
|
|
112
|
+
{% currency_symbol %}{{ invoice.amount_paid | currency_format }}</p>
|
|
113
|
+
<p class="is-size-5">{% trans 'Progressed' %}: {{ invoice.get_progress | percentage }}</p><br>
|
|
114
|
+
<progress class="progress is-medium is-success"
|
|
115
|
+
value="{{ invoice.get_progress_percent }}"
|
|
116
|
+
max="100">
|
|
117
|
+
{{ invoice.get_progress | percentage }}
|
|
118
|
+
</progress>
|
|
119
|
+
{% elif invoice.is_paid %}
|
|
120
|
+
<h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-success">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
|
|
121
|
+
<p class="is-size-3 has-text-dark">{% trans 'Amount Paid' %}:
|
|
122
|
+
<span class="has-text-weight-bold">
|
|
123
123
|
{% currency_symbol %}{{ invoice.amount_paid | currency_format }}
|
|
124
124
|
</span>
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
125
|
+
</p>
|
|
126
|
+
<p class="is-size-3 has-text-dark">{% trans 'Paid Date' %}:
|
|
127
|
+
<span class="has-text-weight-bold">{{ invoice.date_paid | date }}</span>
|
|
128
|
+
{% else %}
|
|
129
|
+
<p class="is-size-3 has-text-dark">Invoice Amount:
|
|
130
|
+
<span class="has-text-weight-bold">{% currency_symbol %}{{ invoice.amount_due | currency_format }}</span>
|
|
131
|
+
</p>
|
|
132
|
+
<p class="is-size-3 has-text-danger-dark">{{ invoice.get_invoice_status_display | upper }}</p>
|
|
133
|
+
{% endif %}
|
|
134
|
+
</div>
|
|
135
135
|
<footer class="card-footer">
|
|
136
136
|
<a href="{% url 'django_ledger:invoice-update' entity_slug=entity_slug invoice_pk=invoice.uuid %}"
|
|
137
137
|
class="card-footer-item has-text-primary has-text-centered">{% trans 'Update' %}</a>
|
|
@@ -106,7 +106,9 @@ def balance_sheet_statement(context, io_model, to_date=None):
|
|
|
106
106
|
balance_sheet_statement=True)
|
|
107
107
|
|
|
108
108
|
return {
|
|
109
|
-
'
|
|
109
|
+
'entity_slug': entity_slug,
|
|
110
|
+
'user_model': user_model,
|
|
111
|
+
'tx_digest': io_digest.get_io_data(),
|
|
110
112
|
}
|
|
111
113
|
|
|
112
114
|
|
|
@@ -131,6 +133,8 @@ def cash_flow_statement(context, io_model):
|
|
|
131
133
|
process_groups=True)
|
|
132
134
|
|
|
133
135
|
return {
|
|
136
|
+
'entity_slug': entity_slug,
|
|
137
|
+
'user_model': user_model,
|
|
134
138
|
'tx_digest': io_digest.get_io_data()
|
|
135
139
|
}
|
|
136
140
|
|
|
@@ -162,6 +166,8 @@ def income_statement_table(context, io_model, from_date=None, to_date=None):
|
|
|
162
166
|
)
|
|
163
167
|
|
|
164
168
|
return {
|
|
169
|
+
'entity_slug': entity_slug,
|
|
170
|
+
'user_model': user_model,
|
|
165
171
|
'tx_digest': io_digest.get_io_data()
|
|
166
172
|
}
|
|
167
173
|
|
|
@@ -389,10 +395,12 @@ def default_entity(context):
|
|
|
389
395
|
def session_entity_name(context, request=None):
|
|
390
396
|
session_key = get_default_entity_session_key()
|
|
391
397
|
if not request:
|
|
392
|
-
request = context
|
|
393
|
-
session = request.session
|
|
398
|
+
request = context.get('request')
|
|
394
399
|
try:
|
|
400
|
+
session = request.session
|
|
395
401
|
entity_name = session.get(session_key)['entity_name']
|
|
402
|
+
except AttributeError:
|
|
403
|
+
entity_name = 'Django Ledger'
|
|
396
404
|
except KeyError:
|
|
397
405
|
entity_name = 'Django Ledger'
|
|
398
406
|
except TypeError:
|
django_ledger/views/account.py
CHANGED
|
@@ -186,7 +186,7 @@ class AccountModelYearDetailView(BaseAccountModelBaseView,
|
|
|
186
186
|
account_model: AccountModel = context['object']
|
|
187
187
|
context['header_title'] = f'Account {account_model.code} - {account_model.name}'
|
|
188
188
|
context['page_title'] = f'Account {account_model.code} - {account_model.name}'
|
|
189
|
-
txs_qs = account_model.transactionmodel_set.all().posted().order_by(
|
|
189
|
+
txs_qs = account_model.transactionmodel_set.all().not_closing_entry().posted().order_by(
|
|
190
190
|
'journal_entry__timestamp'
|
|
191
191
|
).select_related(
|
|
192
192
|
'journal_entry',
|
django_ledger/views/mixins.py
CHANGED
|
@@ -147,12 +147,8 @@ class QuarterlyReportMixIn(YearMixin, ContextFromToDateMixin, EntityModelFiscalP
|
|
|
147
147
|
quarter_end = self.get_quarter_end_date(year=year, quarter=quarter)
|
|
148
148
|
context['quarter_start'] = quarter_start
|
|
149
149
|
context['quarter_end'] = quarter_end
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
context[self.get_from_date_context_name()] = quarter_start
|
|
153
|
-
if self.get_to_date_context_name() not in context:
|
|
154
|
-
context[self.get_to_date_context_name()] = quarter_end
|
|
155
|
-
|
|
150
|
+
context[self.get_from_date_context_name()] = quarter_start
|
|
151
|
+
context[self.get_to_date_context_name()] = quarter_end
|
|
156
152
|
context['has_quarter'] = True
|
|
157
153
|
return context
|
|
158
154
|
|
|
@@ -217,12 +213,8 @@ class MonthlyReportMixIn(YearlyReportMixIn, ContextFromToDateMixin, MonthMixin):
|
|
|
217
213
|
month_end = self.get_month_end_date(year=year, month=month)
|
|
218
214
|
context['month_start'] = month_start
|
|
219
215
|
context['month_end'] = month_end
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
context[self.get_from_date_context_name()] = month_start
|
|
223
|
-
if self.get_to_date_context_name() not in context:
|
|
224
|
-
context[self.get_to_date_context_name()] = month_end
|
|
225
|
-
|
|
216
|
+
context[self.get_from_date_context_name()] = month_start
|
|
217
|
+
context[self.get_to_date_context_name()] = month_end
|
|
226
218
|
context['has_month'] = True
|
|
227
219
|
return context
|
|
228
220
|
|
|
@@ -236,12 +228,8 @@ class DateReportMixIn(MonthlyReportMixIn, ContextFromToDateMixin, DayMixin):
|
|
|
236
228
|
context['next_day'] = view_date + timedelta(days=1)
|
|
237
229
|
context['previous_day'] = view_date - timedelta(days=1)
|
|
238
230
|
context['view_date'] = view_date
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
context[self.get_from_date_context_name()] = view_date
|
|
242
|
-
if self.get_to_date_context_name() not in context:
|
|
243
|
-
context[self.get_to_date_context_name()] = view_date
|
|
244
|
-
|
|
231
|
+
context[self.get_from_date_context_name()] = view_date
|
|
232
|
+
context[self.get_to_date_context_name()] = view_date
|
|
245
233
|
return context
|
|
246
234
|
|
|
247
235
|
def get_date(self) -> date:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-ledger
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
4
4
|
Summary: Double entry accounting system built on the Django Web Framework.
|
|
5
5
|
Author-email: Miguel Sanda <msanda@arrobalytics.com>
|
|
6
6
|
Maintainer-email: Miguel Sanda <msanda@arrobalytics.com>
|