Skip to content

Commit

Permalink
Add pages showing sales and payments independently of sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
sde1000 committed Jan 18, 2024
1 parent 34936f5 commit 6ea9b5c
Show file tree
Hide file tree
Showing 5 changed files with 201 additions and 0 deletions.
70 changes: 70 additions & 0 deletions quicktill/tillweb/templates/tillweb/payments.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{% extends "tillweb/tillweb.html" %}

{% block title %}{{till}} — payments{% endblock %}

{% block tillcontent %}

<table class="table table-sm table-striped" id="paymentsTable">
<thead class="thead-light">
<tr>
<th scope="col">ID</th>
<th scope="col">Transaction</th>
<th scope="col">Method</th>
<th scope="col">Description</th>
<th scope="col">Amount</th>
<th scope="col">Time</th>
<th scope="col">Source</th>
<th scope="col">Pending?</th>
<th scope="col">User</th>
</tr>
</thead>
<tbody></tbody>
</table>

<script type="text/javascript">
$(document).ready(function() {
const payments_table = $("#paymentsTable").DataTable({
ajax: {
url: '{% url "tillweb-datatable-payments" pubname=pubname %}',
dataSrc: 'data',
},
columns: [
{ data: 'id',
render: render_link('url', DataTable.render.text()),
},
{ data: 'transid',
render: render_link('trans_url', DataTable.render.text()),
},
{ data: 'paytype_description',
render: render_link('paytype_url', DataTable.render.text()),
},
{ data: 'text',
render: DataTable.render.text(),
},
{ data: 'amount',
render: render_money(),
},
{ data: 'time',
render: render_link('url', DataTable.render.datetime()),
searchable: false,
},
{ data: 'source',
render: DataTable.render.text(),
},
{ data: 'pending',
render: render_yesno(),
searchable: false,
},
{ data: 'user',
render: render_link('user_url', DataTable.render.text()),
},
],
order: [ [0, 'desc'] ],
searching: true,
paging: true,
serverSide: true,
});
});
</script>

{% endblock %}
2 changes: 2 additions & 0 deletions quicktill/tillweb/templates/tillweb/tillweb.html
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@
<div class="dropdown-menu">
<a class="dropdown-item" href="{% url "tillweb-sessions" pubname=pubname %}">Sessions</a>
<a class="dropdown-item" href="{% url "tillweb-transactions" pubname=pubname %}">Transactions</a>
<a class="dropdown-item" href="{% url "tillweb-translines" pubname=pubname %}">Sales</a>
<a class="dropdown-item" href="{% url "tillweb-payments" pubname=pubname %}">Payments</a>
</div>
</li>
<li class="nav-item"><a class="nav-link" href="{% url "tillweb-departments" pubname=pubname %}">Departments</a></li>
Expand Down
108 changes: 108 additions & 0 deletions quicktill/tillweb/templates/tillweb/translines.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
{% extends "tillweb/tillweb.html" %}

{% block title %}{{till}} — sales{% endblock %}

{% block tillcontent %}

<div class="form-group row">
<label for="translineDeptSelect" class="col-sm-2 col-form-label">
Department
</label>
<div class="col-sm-10">
<select class="form-control" id="translineDeptSelect">
<option value="">All</option>
{% for d in departments %}
<option value="{{d.id}}">{{d.description}}</option>
{% endfor %}
</select>
</div>
</div>
<table class="table table-sm table-striped" id="translinesTable">
<thead class="thead-light">
<tr>
<th scope="col">ID</th>
<th scope="col">Transaction</th>
<th scope="col">Description</th>
<th scope="col">Department</th>
<th scope="col">Items</th>
<th scope="col">Price</th>
<th scope="col">Discount</th>
<th scope="col">Discount type</th>
<th scope="col">Total</th>
<th scope="col">Time</th>
<th scope="col">Source</th>
<th scope="col">User</th>
</tr>
</thead>
<tbody></tbody>
</table>

<script type="text/javascript">
$(document).ready(function() {
let translines_dept_filter = $("#translineDeptSelect").val();

const translines_table = $("#translinesTable").DataTable({
ajax: {
url: '{% url "tillweb-datatable-translines" pubname=pubname %}',
dataSrc: 'data',
data: function (d) {
if (translines_dept_filter != '') {
d.filter_department = translines_dept_filter;
}
},
},
columns: [
{ data: 'id',
render: render_link('url', DataTable.render.text()),
},
{ data: 'transid',
render: render_link('trans_url', DataTable.render.text()),
},
{ data: 'text',
render: DataTable.render.text(),
},
{ data: 'department',
render: render_link('department_url', DataTable.render.text()),
},
{ data: 'items',
render: DataTable.render.text(),
},
{ data: 'amount',
render: render_money(),
},
{ data: 'discount',
render: render_money(),
},
{ data: 'discount_name',
render: DataTable.render.text(),
},
{ data: 'total',
render: render_money(),
},
{ data: 'time',
render: DataTable.render.datetime(),
searchable: false,
},
{ data: 'source',
render: DataTable.render.text(),
},
{ data: 'user',
render: render_link('user_url', DataTable.render.text()),
},
],
order: [ [0, 'desc'] ],
searching: true,
paging: true,
serverSide: true,
});
$("#translineDeptSelect").change(function() {
const prev = translines_dept_filter;
translines_dept_filter = this.value;
if (translines_dept_filter != prev) {
translines_table.ajax.reload(null, true);
}
});
});
</script>

{% endblock %}
2 changes: 2 additions & 0 deletions quicktill/tillweb/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
path('transaction/<int:transid>/', views.transaction,
name="tillweb-transaction"),

path('transline/', views.translines, name="tillweb-translines"),
path('transline/<int:translineid>/', views.transline,
name="tillweb-transline"),

path('payment/', views.payments, name="tillweb-payments"),
path('payment/<int:paymentid>/', views.payment,
name="tillweb-payment"),

Expand Down
19 changes: 19 additions & 0 deletions quicktill/tillweb/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,17 @@ def transaction(request, info, transid):
})


@tillweb_view
def translines(request, info):
departments = td.s.query(Department).order_by(Department.id).all()

return ('translines.html', {
'departments': departments,
'nav': [("Sales",
info.reverse('tillweb-translines'))],
})


@tillweb_view
def transline(request, info, translineid):
tl = td.s.query(Transline)\
Expand All @@ -755,6 +766,14 @@ def transline(request, info, translineid):
return ('transline.html', {'tl': tl, 'tillobject': tl})


@tillweb_view
def payments(request, info):
return ('payments.html', {
'nav': [("Payments",
info.reverse('tillweb-payments'))],
})


@tillweb_view
def payment(request, info, paymentid):
payment = td.s.query(Payment)\
Expand Down

0 comments on commit 6ea9b5c

Please sign in to comment.