Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.25 KB | None | 0 0
  1.     @list_route(methods=["post"],url_path="check")
  2.     def check(self,request):
  3.         serializer = self.get_serializer(data=request.data)
  4.         serializer.is_valid(raise_exception=True)
  5.         student = Information.objects.filter(student_id=serializer.data["student_id"],is_active=True).first()
  6.         if not student:
  7.             return Response("ไม่พบข้อมูลบัณฑิต", status=status.HTTP_404_NOT_FOUND)
  8.  
  9.         from datetime import datetime
  10.         if serializer.data["check"] == 1:
  11.             practice = Practice.objects.filter(
  12.                 day=serializer.data['day'],
  13.                 period=serializer.data['period'],
  14.                 place=serializer.data['place']
  15.             ).first()
  16.             if not practice:
  17.                 return Response({'สถานที่ ช่วงเวลา หรือ วันซ้อม ไม่สอดคล้อง'}, status=status.HTTP_400_BAD_REQUEST)
  18.  
  19.             if not (student.order >= practice.order_first and student.order <= practice.order_last):
  20.                 target = Practice.objects.filter(order_first__lte=student.order, order_last__gte=student.order).first()
  21.                 message = "ท่านเข้าซ้อมผิด กรุณาเข้าซ้อม ณ " + target.place + " ใน" + target.day + " " + target.period
  22.                 return Response({message}, status=status.HTTP_400_BAD_REQUEST)
  23.  
  24.             if not student.first_check:
  25.                 student.first_check = True
  26.                 student.first_stamp = datetime.now()
  27.                 student.save()
  28.  
  29.         elif serializer.data["check"] == 2:
  30.             if not student.second_check:
  31.                 if student.first_check:
  32.                     student.second_check = True
  33.                     student.second_stamp = datetime.now()
  34.                     student.save()
  35.                 else:
  36.                     return Response({'ขาดซ้อมครั้งที่ 1 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
  37.  
  38.         elif serializer.data["check"] == 3:
  39.             if not student.third_check:
  40.                 if (not student.first_check) or (not student.second_check):
  41.                     if (not student.first_check) and (not student.second_check):
  42.                         return Response({'ขาดซ้อมครั้งที่ 1 และ 2 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
  43.                     elif (not student.first_check) and (student.second_check):
  44.                         return Response({'ขาดซ้อมครั้งที่ 1 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
  45.                     else:
  46.                         return Response({'ขาดซ้อมครั้งที่ 2 กรุณาติดต่อเจ้าหน้าที่'}, status=status.HTTP_400_BAD_REQUEST)
  47.                 else:
  48.                     student.third_check = True
  49.                     student.third_stamp = datetime.now()
  50.                     student.save()
  51.  
  52.         response = StudentSerializer(student).data
  53.         return Response(response)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement