add dialog to show accounting data
This commit is contained in:
@@ -6,7 +6,7 @@ from django.shortcuts import render, redirect
|
||||
from django.views import generic
|
||||
from django.views.generic.detail import DetailView
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.db.models import Min
|
||||
from django.db.models import Min, Sum
|
||||
from django.http import HttpResponse
|
||||
|
||||
|
||||
@@ -53,6 +53,51 @@ def accountmodalconfirmview(request, pk):
|
||||
return redirect('carom_index')
|
||||
|
||||
|
||||
@login_required
|
||||
def accounting(request):
|
||||
if request.method == 'GET':
|
||||
template = 'billard/accounting.html'
|
||||
loc = None
|
||||
min_loc = Location.objects.filter(users__id=request.user.id).aggregate(Min('id'))['id__min']
|
||||
if 'loc' in request.GET:
|
||||
loc = request.GET['loc']
|
||||
if not Location.objects.filter(users__id=request.user.id).filter(id=loc).exists():
|
||||
resp = redirect('accounting')
|
||||
if min_loc is not None:
|
||||
resp['Location'] += '?loc={}'.format(str(min_loc))
|
||||
request.session['loc'] = str(min_loc)
|
||||
return resp
|
||||
else:
|
||||
return render(request, accounting)
|
||||
if loc is None:
|
||||
loc = min_loc
|
||||
locations = Location.objects.filter(users__id=request.user.id).order_by('code')
|
||||
acc = Accounting.objects.filter(billed=False).exclude(time_to__isnull=True).\
|
||||
filter(desk__client__location_id=loc).order_by('-time_from')
|
||||
acc_sum = acc.aggregate(Sum('prize'))
|
||||
acc_ids = list()
|
||||
for a in acc:
|
||||
acc_ids.append(a.id)
|
||||
|
||||
context = {
|
||||
'location_id': int(loc),
|
||||
'locations': locations,
|
||||
'accounting': acc,
|
||||
'acc_ids': acc_ids,
|
||||
}
|
||||
if acc_sum['prize__sum'] is None:
|
||||
context['acc_sum'] = 0
|
||||
else:
|
||||
context['acc_sum'] = acc_sum['prize__sum']
|
||||
return render(request, template_name=template, context=context)
|
||||
if request.method == 'POST':
|
||||
loc = request.POST['location-selector']
|
||||
request.session['loc'] = str(loc)
|
||||
resp = redirect('accounting')
|
||||
resp['Location'] += '?loc={}'.format(str(loc))
|
||||
return resp
|
||||
|
||||
|
||||
@login_required
|
||||
def index(request):
|
||||
if request.method == 'GET':
|
||||
|
||||
Reference in New Issue
Block a user