views.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from django.shortcuts import render
  2. from django.http import HttpResponse
  3. from django.template import RequestContext, Context, loader
  4. from asuzr.models import Product
  5. from asuzr.models import Attendance
  6. from asuzr.models import Order
  7. from asuzr.models import OrderPlan
  8. from datetime import datetime, date
  9. from django.db.models import Count, Sum
  10. # Create your views here.
  11. def prod_list(request):
  12. product_list = Product.objects.all()
  13. t = loader.get_template('asuzr/prod_list.html')
  14. c = Context({
  15. 'product_list': product_list,
  16. })
  17. return HttpResponse(t.render(c))
  18. def prod_detail(request, prod_id):
  19. return HttpResponse("This is %s" % prod_id)
  20. def get_filtered_list(p_list, year, month):
  21. filtered_list=[]
  22. for a in p_list:
  23. a_date = a.date
  24. if a_date.strftime('%m/%Y').lstrip('0') == '/'.join((month,year)).lstrip('0'):
  25. filtered_list.append(a)
  26. return filtered_list
  27. def get_orders_by_date(dt):
  28. order_list = Order.objects.filter(date=dt).order_by('id')
  29. return order_list
  30. def main(request, day, month, year):
  31. attend_list = Attendance.objects.all().order_by('date')
  32. filtered_attend_list=get_filtered_list(attend_list, year, month)
  33. p_date = datetime.strptime(day+'/'+month+'/'+year, '%d/%m/%Y')
  34. order_list = Order.objects.filter(date=p_date).order_by('id')
  35. plan = OrderPlan.objects.all()
  36. filtered_plan = get_filtered_list(plan, year, month)
  37. sum_calls = sum(l.calls for l in filtered_attend_list)
  38. sum_visits = sum(l.visits for l in filtered_attend_list)
  39. sum_orders = sum(l.order_count for l in filtered_attend_list)
  40. sum_price = sum(l.orders_price for l in filtered_attend_list)
  41. sum_order_price = sum(l.price for l in order_list)
  42. plan_balance = filtered_plan[0].plan-sum_price
  43. d_date = p_date.strftime("%d/%m/%Y")
  44. t = loader.get_template('asuzr/attend_order.html')
  45. c = RequestContext(request,{
  46. 'attend_list': filtered_attend_list,
  47. 'order_list': order_list,
  48. 'sum_calls': sum_calls,
  49. 'sum_visits': sum_visits,
  50. 'sum_orders': sum_orders,
  51. 'sum_price': sum_price,
  52. 'sum_order_price': sum_order_price,
  53. 'plan': filtered_plan[0],
  54. 'balance': plan_balance,
  55. 'd_date': d_date,
  56. })
  57. return HttpResponse(t.render(c))
  58. def orders (request, archive):
  59. if archive=='0':
  60. is_done_value=False
  61. else:
  62. is_done_value=True
  63. order_list = Order.objects.filter(is_done=is_done_value).order_by('-id')
  64. t=loader.get_template('asuzr/orders.html')
  65. c=RequestContext(request, {
  66. 'order_list': order_list,
  67. 'archive': is_done_value,
  68. })
  69. return HttpResponse(t.render(c))
  70. def desreport(request):
  71. start_date = request.GET.get('sdate', date.today().strftime('%d.%m.%y'))
  72. sdate = datetime.strptime(start_date, '%d.%m.%y')
  73. end_date = request.GET.get('edate', date.today().strftime('%d.%m.%y'))
  74. edate = datetime.strptime(end_date, '%d.%m.%y')
  75. des_list = Order.objects.filter(cancelled=False, date__range=(sdate,edate)).values('designer__first_name').annotate(Sum('price'),Count('designer'))
  76. t=loader.get_template('asuzr/desreport.html')
  77. c=Context({
  78. 'des_list' : des_list,
  79. 'start_date' : start_date,
  80. 'end_date' : end_date,
  81. })
  82. return HttpResponse(t.render(c))