Skip to content

Commit

Permalink
Remove separate pages for sales per department per session
Browse files Browse the repository at this point in the history
These pages could only be accessed using a link from a department name
in the "Takings by department" tab on session detail pages.

These links now simply switch to the "Sales" tab with the appropriate
department selected.
  • Loading branch information
sde1000 committed Jan 18, 2024
1 parent e362ef8 commit 34936f5
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 83 deletions.
30 changes: 15 additions & 15 deletions quicktill/tillweb/datatable.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ def sessions(request, info):
qs = [columns['day'].ilike(search_value + '%')]
if sessionid:
qs.append(columns['id'] == sessionid)
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda s: {
Expand Down Expand Up @@ -187,7 +187,7 @@ def transactions(request, info):
if enable_amount_search and decsearch is not None:
qs.append(columns['total'] == decsearch)
qs.append(columns['discount_total'] == decsearch)
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda t: {
Expand Down Expand Up @@ -253,6 +253,11 @@ def translines(request, info):
# Apply filters from search value. The 'filtered' item count is
# after this filtering step.
fq = q
try:
filter_department = int(request.GET.get('filter_department'))
fq = fq.filter(Department.id == filter_department)
except (ValueError, TypeError):
pass
if search_value:
try:
intsearch = int(search_value)
Expand All @@ -275,7 +280,7 @@ def translines(request, info):
if decsearch is not None:
qs.append(columns['amount'] == decsearch)
qs.append(columns['discount'] == decsearch)
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda tl: {
Expand All @@ -296,7 +301,9 @@ def translines(request, info):
'total': tl.total,
'user': tl.user.fullname if tl.user else '',
'user_url': tl.user.get_absolute_url() if tl.user else None,
'DT_RowClass': "table-warning" if tl.transcode == 'V' else None,
'DT_RowClass': "table-warning" if tl.transcode == 'V'
else "table-danger" if tl.voided_by_id is not None
else None,
})


Expand Down Expand Up @@ -364,7 +371,7 @@ def payments(request, info):
qs.append(columns['transid'] == intsearch)
if decsearch is not None:
qs.append(columns['amount'] == decsearch)
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda p: {
Expand Down Expand Up @@ -429,7 +436,7 @@ def sessiontotals(request, info):
qs.append(columns['fees'] == decsearch)
qs.append(columns['payment_amount'] == decsearch)
if qs:
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda t: {
Expand Down Expand Up @@ -480,7 +487,7 @@ def deliveries(request, info):
]
if intsearch:
qs.append(columns['id'] == intsearch)
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda d: {
Expand Down Expand Up @@ -542,7 +549,7 @@ def annotations(request, info):
if intsearch:
qs.append(columns['id'] == intsearch)
qs.append(columns['stockid'] == intsearch)
fq = q.filter(or_(*qs))
fq = fq.filter(or_(*qs))

return _datatables_json(
request, q, fq, columns, lambda a: {
Expand Down Expand Up @@ -694,13 +701,6 @@ def depttotals(request, info):
{"id": d.id,
"url": d.get_absolute_url(),
"description": d.description,
# Bodge a link to the old department translines page until we
# can link to the new table. Only works if a single session
# is being requested.
"deptlines_url": info.reverse(
"tillweb-session-department",
kwargs={'sessionid': sessions[0],
'dept': d.id}),
"paid": paid or zero,
"pending": pending or zero,
"total": (paid or zero) + (pending or zero),
Expand Down
2 changes: 1 addition & 1 deletion quicktill/tillweb/templates/tillweb/session-discounts.ajax
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
{% if x.d_info %}
<tr>
<td>{{x.id}}</td>
<td><a href="{% url "tillweb-session-department" pubname=pubname sessionid=session.id dept=x.id %}">{{x.description}}</a></td>
<td><a href="#" onclick="showTranslinesDept({{x.id}});">{{x.description}}</a></td>
{% for d in x.d_info %}
<td class="money">{% if d %}{{money}}{{d}}{% endif %}</td>
{% endfor %}
Expand Down
37 changes: 34 additions & 3 deletions quicktill/tillweb/templates/tillweb/session.html
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,19 @@
</table>
</div>
<div class="tab-pane fade" id="translines" aria-labelledby="translinesTab">
<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>
Expand Down Expand Up @@ -260,6 +273,13 @@
let translines_table = null;
let payments_table = null;

function showTranslinesDept(deptid) {
$("#translineDeptSelect").val(deptid);
$("#translineDeptSelect").trigger('change');
$("#translinesTab").trigger('click');
return false;
};

function init_depttotals_table() {
depttotals_table = $("#depttakings").DataTable({
ajax: {
Expand All @@ -275,10 +295,9 @@
{ data: 'id',
render: DataTable.render.text(),
},
/* XXX still need to add link to table of translines for this
department in this session. We bodge it for now. */
{ data: 'description',
render: render_link('deptlines_url', DataTable.render.text()),
render: render_function_link(
'id', 'showTranslinesDept', DataTable.render.text()),
},
{ data: 'discount',
render: render_money(),
Expand Down Expand Up @@ -424,12 +443,17 @@
};

function init_translines_table() {
let translines_dept_filter = $("#translineDeptSelect").val();

translines_table = $("#translinesTable").DataTable({
ajax: {
url: '{% url "tillweb-datatable-translines" pubname=pubname %}',
dataSrc: 'data',
data: function (d) {
d.sessionid = {{session.id}};
if (translines_dept_filter != '') {
d.filter_department = translines_dept_filter;
}
},
},
columns: [
Expand Down Expand Up @@ -476,6 +500,13 @@
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);
}
});
};

function init_payments_table() {
Expand Down
18 changes: 0 additions & 18 deletions quicktill/tillweb/templates/tillweb/sessiondept.html

This file was deleted.

13 changes: 13 additions & 0 deletions quicktill/tillweb/templates/tillweb/tillweb.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,19 @@
};
};

function render_function_link(linkdata, funcname, render_data) {
const render_inner = (typeof render_data === 'function') ?
render_data : render_data.display;
return function (data, type, row) {
if (row[linkdata] === null) {
return render_inner(data, type, row);
}
return '<a href="#" onclick="' + funcname
+ '(' + row[linkdata] + ');">'
+ render_inner(data, type, row) + '</a>';
};
};

function render_day() {
const days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday'];
Expand Down
5 changes: 2 additions & 3 deletions quicktill/tillweb/templates/tillweb/transactions.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,8 @@
<script type="text/javascript">
$(document).ready(function() {
const urlParams = new URLSearchParams(window.location.search);
const state = urlParams.get('state') || 'all';
$("#stateSelect").val(state);
let transaction_state = state;
$("#stateSelect").val(urlParams.get('state') || 'all');
let transaction_state = $("#stateSelect").val();
const transactions_table = $("#transactionsTable").DataTable({
ajax: {
url: '{% url "tillweb-datatable-transactions" pubname=pubname %}',
Expand Down
2 changes: 0 additions & 2 deletions quicktill/tillweb/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
name="tillweb-session-discounts"),
path('stock-sold.html', views.session_stock_sold,
name="tillweb-session-stock-sold"),
path('dept<int:dept>/', views.sessiondept,
name="tillweb-session-department"),
])),

path('transaction/', views.transactions, name="tillweb-transactions"),
Expand Down
44 changes: 3 additions & 41 deletions quicktill/tillweb/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -624,12 +624,15 @@ def session(request, info, sessionid):
.filter(SessionTotal.sessionid == sessionid)\
.all()

departments = td.s.query(Department).order_by(Department.id).all()

return ('session.html',
{'tillobject': s,
'session': s,
'totals': totals,
'nextlink': nextlink,
'prevlink': prevlink,
'departments': departments,
})


Expand Down Expand Up @@ -696,47 +699,6 @@ def session_stock_sold(request, info, sessionid):
return ('session-stock-sold.ajax', {'session': s})


@tillweb_view
def sessiondept(request, info, sessionid, dept):
s = td.s.query(Session).get(sessionid)
if not s:
raise Http404

dept = td.s.query(Department).get(dept)
if not dept:
raise Http404

nextlink = info.reverse("tillweb-session-department", kwargs={
'sessionid': s.next.id,
'dept': dept.id}) if s.next else None
prevlink = info.reverse("tillweb-session-department", kwargs={
'sessionid': s.previous.id,
'dept': dept.id}) if s.previous else None

translines = td.s.query(Transline)\
.join(Transaction)\
.options(joinedload('transaction'),
joinedload('user'),
joinedload('stockref').joinedload('stockitem')
.joinedload('stocktype').joinedload('unit'))\
.filter(Transaction.sessionid == s.id)\
.filter(Transline.dept_id == dept.id)\
.order_by(Transline.id)\
.all()

return ('sessiondept.html', {
'nav': s.tillweb_nav() + [
(dept.description,
info.reverse("tillweb-session-department", kwargs={
'sessionid': s.id,
'dept': dept.id}))],
'session': s, 'department': dept,
'translines': translines,
'nextlink': nextlink,
'prevlink': prevlink,
})


@tillweb_view
def transactions(request, info):
return ('transactions.html', {
Expand Down

0 comments on commit 34936f5

Please sign in to comment.