|
| 1 | +import random |
1 | 2 | import datetime
|
2 | 3 | from django.contrib.auth.mixins import LoginRequiredMixin
|
3 | 4 | from django.db.models import Count, Sum, Avg
|
|
13 | 14 | class SalesAjaxView(View):
|
14 | 15 | def get(self, request, *args, **kwargs):
|
15 | 16 | data = {}
|
16 |
| - print(request.user) |
17 | 17 | if request.user.is_staff:
|
| 18 | + qs = Order.objects.all().by_weeks_range(weeks_ago=5, number_of_weeks=5) |
18 | 19 | if request.GET.get('type') == 'week':
|
19 |
| - data['labels'] = ["Mon", "Tues", "Weds", "Thurs", "Fri","Sat", "Sun"] |
20 |
| - data['data'] = [123, 131, 232, 12, 323,313, 3193] |
| 20 | + days = 7 |
| 21 | + start_date = timezone.now().today() - datetime.timedelta(days=days-1) |
| 22 | + datetime_list = [] |
| 23 | + labels = [] |
| 24 | + salesItems = [] |
| 25 | + for x in range(0, days): |
| 26 | + new_time = start_date + datetime.timedelta(days=x) |
| 27 | + datetime_list.append( |
| 28 | + new_time |
| 29 | + ) |
| 30 | + labels.append( |
| 31 | + new_time.strftime("%a") # mon |
| 32 | + ) |
| 33 | + new_qs = qs.filter(updated__day=new_time.day, updated__month=new_time.month) |
| 34 | + day_total = new_qs.totals_data()['total__sum'] or 0 |
| 35 | + salesItems.append( |
| 36 | + day_total |
| 37 | + ) |
| 38 | + #print(datetime_list) |
| 39 | + |
| 40 | + data['labels'] = labels |
| 41 | + data['data'] = salesItems |
21 | 42 | if request.GET.get('type') == '4weeks':
|
22 |
| - data['labels'] = ["Last Week", "Two Weeks Ago", "Three Weeks Ago", "Four Weeks Ago"] |
23 |
| - data['data'] = [123, 131, 343, 13231] |
| 43 | + data['labels'] = ["Four Weeks Ago", "Three Weeks Ago", "Two Weeks Ago", "Last Week", "This Week"] |
| 44 | + current = 5 |
| 45 | + data['data'] = [] |
| 46 | + for i in range(0, 5): |
| 47 | + new_qs = qs.by_weeks_range(weeks_ago=current, number_of_weeks=1) |
| 48 | + sales_total = new_qs.totals_data()['total__sum'] or 0 |
| 49 | + data['data'].append(sales_total) |
| 50 | + current -= 1 |
24 | 51 | return JsonResponse(data)
|
25 | 52 |
|
26 | 53 |
|
|
0 commit comments