django-ledger 0.8.0__py3-none-any.whl → 0.8.2__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 +45 -46
- django_ledger/forms/data_import.py +182 -64
- django_ledger/io/io_core.py +507 -374
- django_ledger/migrations/0026_stagedtransactionmodel_customer_model_and_more.py +56 -0
- django_ledger/models/__init__.py +2 -1
- django_ledger/models/bill.py +337 -300
- django_ledger/models/customer.py +47 -34
- django_ledger/models/data_import.py +770 -289
- django_ledger/models/entity.py +882 -637
- django_ledger/models/mixins.py +421 -282
- django_ledger/models/receipt.py +1083 -0
- django_ledger/models/transactions.py +105 -41
- django_ledger/models/unit.py +42 -30
- django_ledger/models/utils.py +12 -2
- django_ledger/models/vendor.py +85 -66
- django_ledger/settings.py +1 -0
- django_ledger/static/django_ledger/bundle/djetler.bundle.js +1 -1
- django_ledger/static/django_ledger/bundle/djetler.bundle.js.LICENSE.txt +1 -13
- django_ledger/templates/django_ledger/bills/bill_update.html +1 -1
- django_ledger/templates/django_ledger/components/period_navigator.html +5 -3
- django_ledger/templates/django_ledger/customer/customer_detail.html +87 -0
- django_ledger/templates/django_ledger/customer/customer_list.html +0 -1
- django_ledger/templates/django_ledger/customer/tags/customer_table.html +3 -1
- django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +24 -3
- django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html +26 -10
- django_ledger/templates/django_ledger/entity/entity_dashboard.html +2 -2
- django_ledger/templates/django_ledger/invoice/invoice_update.html +1 -1
- django_ledger/templates/django_ledger/layouts/base.html +3 -1
- django_ledger/templates/django_ledger/layouts/content_layout_1.html +1 -1
- django_ledger/templates/django_ledger/receipt/customer_receipt_report.html +115 -0
- django_ledger/templates/django_ledger/receipt/receipt_delete.html +30 -0
- django_ledger/templates/django_ledger/receipt/receipt_detail.html +89 -0
- django_ledger/templates/django_ledger/receipt/receipt_list.html +134 -0
- django_ledger/templates/django_ledger/receipt/vendor_receipt_report.html +115 -0
- django_ledger/templates/django_ledger/vendor/tags/vendor_table.html +3 -2
- django_ledger/templates/django_ledger/vendor/vendor_detail.html +86 -0
- django_ledger/templatetags/django_ledger.py +338 -191
- django_ledger/urls/__init__.py +1 -0
- django_ledger/urls/customer.py +3 -0
- django_ledger/urls/data_import.py +3 -0
- django_ledger/urls/receipt.py +102 -0
- django_ledger/urls/vendor.py +1 -0
- django_ledger/views/__init__.py +1 -0
- django_ledger/views/customer.py +56 -14
- django_ledger/views/data_import.py +119 -66
- django_ledger/views/mixins.py +112 -86
- django_ledger/views/receipt.py +294 -0
- django_ledger/views/vendor.py +53 -14
- {django_ledger-0.8.0.dist-info → django_ledger-0.8.2.dist-info}/METADATA +1 -1
- {django_ledger-0.8.0.dist-info → django_ledger-0.8.2.dist-info}/RECORD +55 -45
- django_ledger/static/django_ledger/bundle/styles.bundle.js +0 -1
- {django_ledger-0.8.0.dist-info → django_ledger-0.8.2.dist-info}/WHEEL +0 -0
- {django_ledger-0.8.0.dist-info → django_ledger-0.8.2.dist-info}/licenses/AUTHORS.md +0 -0
- {django_ledger-0.8.0.dist-info → django_ledger-0.8.2.dist-info}/licenses/LICENSE +0 -0
- {django_ledger-0.8.0.dist-info → django_ledger-0.8.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{% extends 'django_ledger/layouts/content_layout_1.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
{% load django_ledger %}
|
|
4
|
+
|
|
5
|
+
{% block view_content %}
|
|
6
|
+
<div class="box">
|
|
7
|
+
<div class="level">
|
|
8
|
+
<div class="level-left">
|
|
9
|
+
<div class="level-item">
|
|
10
|
+
{% if month %}
|
|
11
|
+
<h1 class="is-size-1 has-text-weight-thin">{{ month|date:'F Y' }} {% trans 'Receipts' %}</h1>
|
|
12
|
+
{% elif year %}
|
|
13
|
+
<h1 class="is-size-1 has-text-weight-thin">{{ year|date:'Y' }} {% trans 'Receipts' %}</h1>
|
|
14
|
+
{% else %}
|
|
15
|
+
<h1 class="is-size-1 has-text-weight-thin">{% trans 'Latest Receipts' %}</h1>
|
|
16
|
+
{% endif %}
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="level-right">
|
|
20
|
+
{% if page_obj %}
|
|
21
|
+
{% if page_obj.has_previous %}
|
|
22
|
+
<div class="level-item">
|
|
23
|
+
<a href="?page={{ page_obj.previous_page_number }}"
|
|
24
|
+
class="button is-small is-dark is-outlined">
|
|
25
|
+
<span class="icon is-small">{% icon 'ant-design:left-circle-outlined' 24 %}</span>
|
|
26
|
+
</a>
|
|
27
|
+
</div>
|
|
28
|
+
{% endif %}
|
|
29
|
+
<div class="level-item">
|
|
30
|
+
<p class="is-italic">page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}</p>
|
|
31
|
+
</div>
|
|
32
|
+
{% if page_obj.has_next %}
|
|
33
|
+
<div class="level-item">
|
|
34
|
+
<a href="?page={{ page_obj.next_page_number }}"
|
|
35
|
+
class="button is-small is-dark is-outlined">
|
|
36
|
+
<span class="icon is-small">{% icon 'ant-design:right-circle-outlined' 24 %}</span>
|
|
37
|
+
</a>
|
|
38
|
+
</div>
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% endif %}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<div class="content">
|
|
45
|
+
<p class="is-size-6 has-text-weight-semibold">{% trans 'Filter by type:' %}
|
|
46
|
+
<a href="{% url 'django_ledger:receipt-list' entity_slug=view.kwargs.entity_slug %}">{% trans 'All' %}</a>
|
|
47
|
+
|
|
|
48
|
+
<a href="{% url 'django_ledger:receipt-list-type' entity_slug=view.kwargs.entity_slug receipt_type='sales' %}">{% trans 'Sales' %}</a>
|
|
49
|
+
|
|
|
50
|
+
<a href="{% url 'django_ledger:receipt-list-type' entity_slug=view.kwargs.entity_slug receipt_type='customer_refund' %}">{% trans 'Customer Refund' %}</a>
|
|
51
|
+
|
|
|
52
|
+
<a href="{% url 'django_ledger:receipt-list-type' entity_slug=view.kwargs.entity_slug receipt_type='expense' %}">{% trans 'Expense' %}</a>
|
|
53
|
+
|
|
|
54
|
+
<a href="{% url 'django_ledger:receipt-list-type' entity_slug=view.kwargs.entity_slug receipt_type='expense_refund' %}">{% trans 'Expense Refund' %}</a>
|
|
55
|
+
|
|
|
56
|
+
<a href="{% url 'django_ledger:receipt-list-type' entity_slug=view.kwargs.entity_slug receipt_type='transfer' %}">{% trans 'Transfer' %}</a>
|
|
57
|
+
</p>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<table class="table is-fullwidth is-striped">
|
|
61
|
+
<thead>
|
|
62
|
+
<tr>
|
|
63
|
+
<th>{% trans 'Date' %}</th>
|
|
64
|
+
<th>{% trans 'Number' %}</th>
|
|
65
|
+
<th>{% trans 'Type' %}</th>
|
|
66
|
+
<th>{% trans 'Counterparty' %}</th>
|
|
67
|
+
<th>{% trans 'Amount' %}</th>
|
|
68
|
+
<th>{% trans 'Actions' %}</th>
|
|
69
|
+
</tr>
|
|
70
|
+
</thead>
|
|
71
|
+
<tbody>
|
|
72
|
+
{% for r in receipt_list %}
|
|
73
|
+
<tr>
|
|
74
|
+
<td>{{ r.receipt_date }}</td>
|
|
75
|
+
<td><a href="{{ r.get_absolute_url }}">{{ r.receipt_number }}</a></td>
|
|
76
|
+
<td>{{ r.get_receipt_type_display }}</td>
|
|
77
|
+
<td>
|
|
78
|
+
{% if r.customer_model %}
|
|
79
|
+
<a href="{{ r.get_customer_list_url }}">{{ r.customer_model.customer_name }}</a>
|
|
80
|
+
<span class="is-size-7 has-text-grey"> · <a
|
|
81
|
+
href="{{ r.get_customer_report_url }}">{% trans 'Report' %}</a></span>
|
|
82
|
+
{% elif r.vendor_model %}
|
|
83
|
+
<a href="{{ r.get_vendor_list_url }}">{{ r.vendor_model.vendor_name }}</a>
|
|
84
|
+
<span class="is-size-7 has-text-grey"> · <a
|
|
85
|
+
href="{{ r.get_vendor_report_url }}">{% trans 'Report' %}</a></span>
|
|
86
|
+
{% else %}
|
|
87
|
+
—
|
|
88
|
+
{% endif %}
|
|
89
|
+
</td>
|
|
90
|
+
<td>{% currency_symbol %}{{ r.amount | currency_format }}</td>
|
|
91
|
+
<td>
|
|
92
|
+
<a class="button is-small is-danger is-outlined" href="{{ r.get_delete_url }}">
|
|
93
|
+
{% trans 'Undo/Delete' %}
|
|
94
|
+
</a>
|
|
95
|
+
</td>
|
|
96
|
+
</tr>
|
|
97
|
+
{% empty %}
|
|
98
|
+
<tr>
|
|
99
|
+
<td colspan="5" class="has-text-centered">{% trans 'No receipts found.' %}</td>
|
|
100
|
+
</tr>
|
|
101
|
+
{% endfor %}
|
|
102
|
+
</tbody>
|
|
103
|
+
</table>
|
|
104
|
+
|
|
105
|
+
{% if year %}
|
|
106
|
+
<h5 class="is-size-5">{% trans 'Go to quarter:' %}</h5>
|
|
107
|
+
<p>
|
|
108
|
+
{% for q in '1234' %}
|
|
109
|
+
<a href="{% url 'django_ledger:receipt-list-quarter' entity_slug=view.kwargs.entity_slug year=year quarter=q %}">Q{{ q }}
|
|
110
|
+
{% if not forloop.last %}>{% endif %}</a>
|
|
111
|
+
{% endfor %}
|
|
112
|
+
</p>
|
|
113
|
+
<h5 class="is-size-5">{% trans 'Go to month:' %}</h5>
|
|
114
|
+
<p>
|
|
115
|
+
<a href="{% url 'django_ledger:receipt-list' entity_slug=view.kwargs.entity_slug %}">{% trans 'All' %}
|
|
116
|
+
|</a>
|
|
117
|
+
{% for date in date_list %}
|
|
118
|
+
<a href="{% url 'django_ledger:receipt-list-month' entity_slug=view.kwargs.entity_slug year=date.year month=date.month %}">
|
|
119
|
+
{{ date | date:'F' }}{% if not forloop.last %} > {% endif %}</a>
|
|
120
|
+
{% endfor %}
|
|
121
|
+
</p>
|
|
122
|
+
{% else %}
|
|
123
|
+
<h5 class="is-size-5">{% trans 'Go to year:' %}</h5>
|
|
124
|
+
<p>
|
|
125
|
+
<a href="{% url 'django_ledger:receipt-list' entity_slug=view.kwargs.entity_slug %}">{% trans 'All' %}
|
|
126
|
+
|</a>
|
|
127
|
+
{% for date in date_list %}
|
|
128
|
+
<a href="{% url 'django_ledger:receipt-list-year' entity_slug=view.kwargs.entity_slug year=date.year %}">
|
|
129
|
+
{{ date.year }}{% if not forloop.last %} > {% endif %}</a>
|
|
130
|
+
{% endfor %}
|
|
131
|
+
</p>
|
|
132
|
+
{% endif %}
|
|
133
|
+
</div>
|
|
134
|
+
{% endblock %}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{% extends 'django_ledger/layouts/content_layout_1.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
{% load django_ledger %}
|
|
4
|
+
|
|
5
|
+
{% block view_content %}
|
|
6
|
+
<div class="box">
|
|
7
|
+
<div class="level">
|
|
8
|
+
<div class="level-left">
|
|
9
|
+
<div class="level-item">
|
|
10
|
+
{% if month %}
|
|
11
|
+
<h1 class="is-size-1 has-text-weight-thin">{{ month|date:'F Y' }} {% trans 'Vendor Receipts' %} — {{ vendor_model.vendor_name }}</h1>
|
|
12
|
+
{% elif year %}
|
|
13
|
+
<h1 class="is-size-1 has-text-weight-thin">{{ year|date:'Y' }} {% trans 'Vendor Receipts' %} — {{ vendor_model.vendor_name }}</h1>
|
|
14
|
+
{% else %}
|
|
15
|
+
<h1 class="is-size-1 has-text-weight-thin">{% trans 'Vendor Receipts' %} — {{ vendor_model.vendor_name }}</h1>
|
|
16
|
+
{% endif %}
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="level-right">
|
|
20
|
+
{% if page_obj %}
|
|
21
|
+
{% if page_obj.has_previous %}
|
|
22
|
+
<div class="level-item">
|
|
23
|
+
<a href="?page={{ page_obj.previous_page_number }}"
|
|
24
|
+
class="button is-small is-dark is-outlined">
|
|
25
|
+
<span class="icon is-small">{% icon 'ant-design:left-circle-outlined' 24 %}</span>
|
|
26
|
+
</a>
|
|
27
|
+
</div>
|
|
28
|
+
{% endif %}
|
|
29
|
+
<div class="level-item">
|
|
30
|
+
<p class="is-italic">page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}</p>
|
|
31
|
+
</div>
|
|
32
|
+
{% if page_obj.has_next %}
|
|
33
|
+
<div class="level-item">
|
|
34
|
+
<a href="?page={{ page_obj.next_page_number }}"
|
|
35
|
+
class="button is-small is-dark is-outlined">
|
|
36
|
+
<span class="icon is-small">{% icon 'ant-design:right-circle-outlined' 24 %}</span>
|
|
37
|
+
</a>
|
|
38
|
+
</div>
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% endif %}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<table class="table is-fullwidth is-striped">
|
|
45
|
+
<thead>
|
|
46
|
+
<tr>
|
|
47
|
+
<th>{% trans 'Date' %}</th>
|
|
48
|
+
<th>{% trans 'Receipt #' %}</th>
|
|
49
|
+
<th>{% trans 'Type' %}</th>
|
|
50
|
+
<th>{% trans 'Imported' %}</th>
|
|
51
|
+
<th>{% trans 'Actions' %}</th>
|
|
52
|
+
</tr>
|
|
53
|
+
</thead>
|
|
54
|
+
<tbody>
|
|
55
|
+
{% for r in receipt_list %}
|
|
56
|
+
<tr>
|
|
57
|
+
<td>{{ r.receipt_date }}</td>
|
|
58
|
+
<td><a href="{{ r.get_absolute_url }}">{{ r.receipt_number }}</a></td>
|
|
59
|
+
<td>{{ r.get_receipt_type_display }}</td>
|
|
60
|
+
<td>
|
|
61
|
+
{% if r.staged_transaction_model %}
|
|
62
|
+
<a href="{{ r.get_staged_tx_url }}">
|
|
63
|
+
{% trans 'Staged TX' %}
|
|
64
|
+
</a>
|
|
65
|
+
<span class="is-size-7 has-text-grey"> · </span>
|
|
66
|
+
<a href="{{ r.get_import_job_url }}">
|
|
67
|
+
{% trans 'Bank Feed Job' %}
|
|
68
|
+
</a>
|
|
69
|
+
{% else %}
|
|
70
|
+
—
|
|
71
|
+
{% endif %}
|
|
72
|
+
</td>
|
|
73
|
+
<td>
|
|
74
|
+
<a class="button is-small is-danger is-outlined" href="{{ r.get_delete_url }}">
|
|
75
|
+
{% trans 'Undo/Delete' %}
|
|
76
|
+
</a>
|
|
77
|
+
</td>
|
|
78
|
+
</tr>
|
|
79
|
+
{% empty %}
|
|
80
|
+
<tr>
|
|
81
|
+
<td colspan="5" class="has-text-centered">{% trans 'No receipts found.' %}</td>
|
|
82
|
+
</tr>
|
|
83
|
+
{% endfor %}
|
|
84
|
+
</tbody>
|
|
85
|
+
</table>
|
|
86
|
+
|
|
87
|
+
{% if year %}
|
|
88
|
+
<h5 class="is-size-5">{% trans 'Go to quarter:' %}</h5>
|
|
89
|
+
<p>
|
|
90
|
+
{% for q in '1234' %}
|
|
91
|
+
<a href="{% url 'django_ledger:receipt-report-vendor-quarter' entity_slug=view.kwargs.entity_slug vendor_pk=vendor_model.uuid year=year quarter=q %}">Q{{ q }}{% if not forloop.last %} > {% endif %}</a>
|
|
92
|
+
{% endfor %}
|
|
93
|
+
</p>
|
|
94
|
+
<h5 class="is-size-5">{% trans 'Go to month:' %}</h5>
|
|
95
|
+
<p>
|
|
96
|
+
<a href="{% url 'django_ledger:receipt-report-vendor' entity_slug=view.kwargs.entity_slug vendor_pk=vendor_model.uuid %}">{% trans 'All' %} |</a>
|
|
97
|
+
{% for date in date_list %}
|
|
98
|
+
<a href="{% url 'django_ledger:receipt-report-vendor-month' entity_slug=view.kwargs.entity_slug vendor_pk=vendor_model.uuid year=date.year month=date.month %}">
|
|
99
|
+
{{ date | date:'F' }}{% if not forloop.last %} > {% endif %}
|
|
100
|
+
</a>
|
|
101
|
+
{% endfor %}
|
|
102
|
+
</p>
|
|
103
|
+
{% else %}
|
|
104
|
+
<h5 class="is-size-5">{% trans 'Go to year:' %}</h5>
|
|
105
|
+
<p>
|
|
106
|
+
<a href="{% url 'django_ledger:receipt-report-vendor' entity_slug=view.kwargs.entity_slug vendor_pk=vendor_model.uuid %}">{% trans 'All' %} |</a>
|
|
107
|
+
{% for date in date_list %}
|
|
108
|
+
<a href="{% url 'django_ledger:receipt-report-vendor-year' entity_slug=view.kwargs.entity_slug vendor_pk=vendor_model.uuid year=date.year %}">
|
|
109
|
+
{{ date.year }}{% if not forloop.last %} > {% endif %}
|
|
110
|
+
</a>
|
|
111
|
+
{% endfor %}
|
|
112
|
+
</p>
|
|
113
|
+
{% endif %}
|
|
114
|
+
</div>
|
|
115
|
+
{% endblock %}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
{% for vendor in vendors %}
|
|
20
20
|
<tr class="has-text-centered">
|
|
21
21
|
<td>{{ vendor.vendor_number }}</td>
|
|
22
|
-
<td>{{ vendor.vendor_name }}</td>
|
|
22
|
+
<td><a href="{% url 'django_ledger:vendor-detail' entity_slug=view.kwargs.entity_slug vendor_pk=vendor.uuid %}">{{ vendor.vendor_name }}</a></td>
|
|
23
23
|
<td>
|
|
24
24
|
{% if vendor.address_1 %}
|
|
25
25
|
{{ vendor.address_1 }}
|
|
@@ -65,7 +65,8 @@
|
|
|
65
65
|
id="dropdown-menu-{{ vendor.uuid }}"
|
|
66
66
|
role="menu">
|
|
67
67
|
<div class="dropdown-content">
|
|
68
|
-
|
|
68
|
+
<a href="{% url 'django_ledger:vendor-detail' entity_slug=view.kwargs.entity_slug vendor_pk=vendor.uuid %}"
|
|
69
|
+
class="dropdown-item has-text-weight-bold has-text-success">{% trans 'View' %}</a>
|
|
69
70
|
<a href="{% url 'django_ledger:vendor-update' entity_slug=view.kwargs.entity_slug vendor_pk=vendor.uuid %}"
|
|
70
71
|
class="dropdown-item has-text-weight-bold has-text-info">{% trans 'Update' %}</a>
|
|
71
72
|
</div>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{% extends 'django_ledger/layouts/content_layout_1.html' %}
|
|
2
|
+
{% load i18n %}
|
|
3
|
+
{% load django_ledger %}
|
|
4
|
+
|
|
5
|
+
{% block view_content %}
|
|
6
|
+
|
|
7
|
+
<div class="box">
|
|
8
|
+
<div class="columns">
|
|
9
|
+
<div class="column is-one-third">
|
|
10
|
+
{% include 'django_ledger/vendor/includes/card_vendor.html' with vendor=vendor %}
|
|
11
|
+
</div>
|
|
12
|
+
<div class="column">
|
|
13
|
+
<div class="content">
|
|
14
|
+
<h3 class="title is-4">
|
|
15
|
+
<span class="icon is-small">{% icon 'mdi:receipt-text' 24 %}</span>
|
|
16
|
+
{% trans 'Receipts' %}
|
|
17
|
+
</h3>
|
|
18
|
+
{% if receipts %}
|
|
19
|
+
<div class="table-container">
|
|
20
|
+
<table class="table is-fullwidth is-narrow is-striped is-bordered">
|
|
21
|
+
<thead>
|
|
22
|
+
<tr>
|
|
23
|
+
<th class="has-text-centered">{% trans 'Receipt Number' %}</th>
|
|
24
|
+
<th class="has-text-centered">{% trans 'Date' %}</th>
|
|
25
|
+
<th class="has-text-centered">{% trans 'Type' %}</th>
|
|
26
|
+
<th class="has-text-centered">{% trans 'Actions' %}</th>
|
|
27
|
+
</tr>
|
|
28
|
+
</thead>
|
|
29
|
+
<tbody>
|
|
30
|
+
{% for receipt in receipts %}
|
|
31
|
+
<tr class="has-text-centered">
|
|
32
|
+
<td>
|
|
33
|
+
<a href="{{ receipt.get_absolute_url }}">{{ receipt.receipt_number }}</a>
|
|
34
|
+
</td>
|
|
35
|
+
<td>{{ receipt.receipt_date }}</td>
|
|
36
|
+
<td>{{ receipt.receipt_type|title }}</td>
|
|
37
|
+
<td>
|
|
38
|
+
{% if receipt.get_import_job_url %}
|
|
39
|
+
<a class="button is-small is-primary"
|
|
40
|
+
href="{{ receipt.get_import_job_url }}">{% trans 'Bank Feed Job' %}</a>
|
|
41
|
+
{% endif %}
|
|
42
|
+
</td>
|
|
43
|
+
</tr>
|
|
44
|
+
{% endfor %}
|
|
45
|
+
</tbody>
|
|
46
|
+
</table>
|
|
47
|
+
</div>
|
|
48
|
+
{% else %}
|
|
49
|
+
<p class="has-text-grey">{% trans 'No receipts found for this vendor.' %}</p>
|
|
50
|
+
{% endif %}
|
|
51
|
+
|
|
52
|
+
<hr>
|
|
53
|
+
|
|
54
|
+
<h3 class="title is-4">
|
|
55
|
+
<span class="icon is-small">{% icon 'mdi:file-document-edit' 24 %}</span>
|
|
56
|
+
{% trans 'Bills' %}
|
|
57
|
+
</h3>
|
|
58
|
+
{% if bills %}
|
|
59
|
+
<div class="table-container">
|
|
60
|
+
<table class="table is-fullwidth is-narrow is-striped is-bordered">
|
|
61
|
+
<thead>
|
|
62
|
+
<tr>
|
|
63
|
+
<th class="has-text-centered">{% trans 'Bill Number' %}</th>
|
|
64
|
+
<th class="has-text-centered">{% trans 'Status' %}</th>
|
|
65
|
+
</tr>
|
|
66
|
+
</thead>
|
|
67
|
+
<tbody>
|
|
68
|
+
{% for bill in bills %}
|
|
69
|
+
<tr class="has-text-centered">
|
|
70
|
+
<td><a href="{{ bill.get_absolute_url }}">{{ bill.bill_number }}</a></td>
|
|
71
|
+
<td>{{ bill.get_bill_status_display }}</td>
|
|
72
|
+
</tr>
|
|
73
|
+
{% endfor %}
|
|
74
|
+
</tbody>
|
|
75
|
+
</table>
|
|
76
|
+
</div>
|
|
77
|
+
{% else %}
|
|
78
|
+
<p class="has-text-grey">{% trans 'No bills found for this vendor.' %}</p>
|
|
79
|
+
{% endif %}
|
|
80
|
+
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
{% endblock %}
|