11 #APIs
2+ from django .db .models import F
23from rest_framework .views import APIView
34from rest_framework .response import Response
45from .serializers import *
@@ -19,19 +20,47 @@ def post(self, request):
1920 data = request .data
2021
2122 mess = data ['mess' ]
22- _type = data ['type ' ]
23- desc = data ['desc ' ]
23+ feedback_type = data ['feedback_type ' ]
24+ description = data ['description ' ]
2425 username = get_object_or_404 (User ,username = request .user .username )
2526 idd = ExtraInfo .objects .get (user = username )
2627 student = Student .objects .get (id = idd .id )
2728 obj = Feedback (
2829 student_id = student ,
2930 mess = mess ,
30- feedback_type = _type ,
31- description = desc
31+ feedback_type = feedback_type ,
32+ description = description
3233 )
3334 obj .save ()
3435 return Response ({'status' :200 })
36+
37+ def put (self , request ):
38+ data = request .data
39+
40+ print (data )
41+
42+ student_id = data ['student_id' ]
43+ mess = data ['mess' ]
44+ feedback_type = data ['feedback_type' ]
45+ description = data ['description' ]
46+ fdate = data ['fdate' ]
47+ new_remark = data ['feedback_remark' ]
48+
49+ # username = get_object_or_404(User,username=request.user.username)
50+ # idd = ExtraInfo.objects.get(user=username)
51+ # student = Student.objects.get(id=idd.id)
52+
53+ feedback_request = get_object_or_404 (Feedback ,
54+ student_id = student_id ,
55+ mess = mess ,
56+ feedback_type = feedback_type ,
57+ description = description ,
58+ fdate = fdate ,
59+ )
60+ feedback_request .feedback_remark = new_remark
61+ feedback_request .save ()
62+
63+ return Response ({'status' :200 })
3564
3665
3766class MessinfoApi (APIView ):
@@ -104,30 +133,37 @@ def get(self, request):
104133 def post (self , request ):
105134 data = request .data
106135
136+ student_id = data ['student_id' ]
107137 month = data ['month' ]
108138 year = data ['year' ]
109139 amount = data ['amount' ]
110140 rebate_count = data ['rebate_count' ]
111141 rebate_amount = data ['rebate_amount' ]
112- #nonveg_total_bill = data['nonveg_total_bill']
142+ total_bill = data ['amount' ] - ( data [ 'rebate_count' ] * data [ 'rebate_amount' ])
113143 paid = data ['paid' ]
114144
115- username = get_object_or_404 (User ,username = request . user . username )
145+ username = get_object_or_404 (User ,username = student_id )
116146 idd = ExtraInfo .objects .get (user = username )
117147 student = Student .objects .get (id = idd .id )
118148
119-
120- obj = Monthly_bill (
121- student_id = student ,
122- month = month ,
123- year = year ,
124- amount = amount ,
125- rebate_count = rebate_count ,
126- rebate_amount = rebate_amount ,
127- # nonveg_total_bill = nonveg_total_bill,
128- paid = paid
129- )
130- obj .save ()
149+ try :
150+ reg_main = Monthly_bill .objects .get (student_id = student , year = year , month = month )
151+ reg_main .amount = amount
152+ reg_main .rebate_count = rebate_count
153+ reg_main .rebate_amount = rebate_amount
154+ reg_main .total_bill = total_bill
155+ except Monthly_bill .DoesNotExist :
156+ reg_main = Monthly_bill .objects .create (
157+ student_id = student ,
158+ month = month ,
159+ year = year ,
160+ amount = amount ,
161+ rebate_amount = rebate_amount ,
162+ rebate_count = rebate_count ,
163+ total_bill = total_bill ,
164+ paid = paid
165+ )
166+ reg_main .save ()
131167 return Response ({'status' :200 })
132168
133169class PaymentsApi (APIView ):
@@ -210,7 +246,33 @@ def post(self, request):
210246 start_date = start_date
211247 )
212248 obj .save ()
213- return Response ({'status' :200 })
249+ return Response ({'status' :200 })
250+
251+ def put (self , request ):
252+ data = request .data
253+
254+ student_id = data ['student_id' ]
255+ start_date = data ['start_date' ]
256+ end_date = data ['end_date' ]
257+ purpose = data ['purpose' ]
258+ new_status = data ['status' ]
259+ app_date = data ['app_date' ]
260+ leave_type = data ['leave_type' ]
261+ rebate_remark = data ['rebate_remark' ]
262+
263+ # username = get_object_or_404(User,username=student_id)
264+ # idd = ExtraInfo.objects.get(user=username)
265+ # student = Student.objects.get(id=idd.id)
266+
267+ rebate_request = get_object_or_404 (Rebate , student_id = student_id , end_date = end_date , start_date = start_date , app_date = app_date , purpose = purpose , leave_type = leave_type )
268+
269+ # Update the status
270+ rebate_request .status = new_status
271+ rebate_request .rebate_remark = rebate_remark
272+ rebate_request .save ()
273+
274+ return Response ({'status' : 200 })
275+
214276class Vacation_foodApi (APIView ):
215277 def get (self , request ):
216278 vacation_food_obj = Vacation_food .objects .all ();
@@ -241,7 +303,45 @@ def post(self, request):
241303 start_date = start_date
242304 )
243305 obj .save ()
244- return Response ({'status' :200 })
306+ return Response ({'status' :200 })
307+
308+ def put (self , request ):
309+ print (request .data )
310+ data = request .data
311+
312+ student_id = data ['student_id' ]
313+ start_date = data ['start_date' ]
314+ end_date = data ['end_date' ]
315+ purpose = data ['purpose' ]
316+ new_status = data ['status' ]
317+ app_date = data ['app_date' ]
318+
319+
320+ # username = get_object_or_404(User,username=request.user.username)
321+ # idd = ExtraInfo.objects.get(user=username)
322+ # student = Student.objects.get(id=idd.id)
323+
324+ try :
325+ vacation_food_request = get_object_or_404 (Vacation_food ,
326+ student_id = student_id ,
327+ app_date = app_date ,
328+ purpose = purpose ,
329+ end_date = end_date ,
330+ start_date = start_date
331+ )
332+ vacation_food_request .status = new_status
333+ vacation_food_request .save ()
334+ return Response ({'status' :200 })
335+ except :
336+ vacation_food_request = Vacation_food .objects .filter (student_id = student_id ,
337+ app_date = app_date ,
338+ purpose = purpose ,
339+ end_date = end_date ,
340+ start_date = start_date
341+ ).latest ('app_date' )
342+ vacation_food_request .status = new_status
343+ vacation_food_request .save ()
344+ return Response ({'status' :200 })
245345
246346class Nonveg_menuApi (APIView ):
247347 def get (self , request ):
@@ -331,7 +431,32 @@ def post(self, request):
331431 request = request_
332432 )
333433 obj .save ()
334- return Response ({'status' :200 })
434+ return Response ({'status' :200 })
435+
436+ def put (self , request ):
437+ print (request .data )
438+ data = request .data
439+ student_id = data ['student_id' ]
440+ start_date = data ['start_date' ]
441+ end_date = data ['end_date' ]
442+ app_date = data ['app_date' ]
443+ request_ = data ['request' ]
444+ item1 = data ['item1' ]
445+ item2 = data ['item2' ]
446+ new_status = data ['status' ]
447+
448+ # Fetch the Special_request object you want to update
449+ # username = get_object_or_404(User, username=request.user.username)
450+ # idd = ExtraInfo.objects.get(user=username)
451+ # student = Student.objects.get(id=idd.id)
452+
453+ special_request = get_object_or_404 (Special_request , student_id = student_id , app_date = app_date , item1 = item1 , item2 = item2 , end_date = end_date , start_date = start_date , request = request_ )
454+
455+ # Update the status
456+ special_request .status = new_status
457+ special_request .save ()
458+
459+ return Response ({'status' : 200 })
335460
336461class Mess_meetingApi (APIView ):
337462 def get (self , request ):
@@ -484,4 +609,114 @@ def post(self,request):
484609 reg_main = Reg_main .objects .select_related ('student_id' ,'student_id__id' ,'student_id__id__user' ,'student_id__id__department' ).get (student_id = student )
485610 serialized_obj = GetFilteredSerialzer (reg_main )
486611 data = {'payment' :payment_serialized_obj .data ,'bill' :bill_serialized_obj .data ,'reg_records' :reg_record_serialized_obj .data ,'student_details' :serialized_obj .data }
487- return Response ({'payload' :data })
612+ return Response ({'payload' :data })
613+
614+ class RegistrationRequestApi (APIView ):
615+ def get (self , request ):
616+ registration_requests = Registration_Request .objects .all ()
617+ serializer = RegistrationRequestSerializer (registration_requests , many = True )
618+ return Response ({'status' : 200 , 'payload' : serializer .data })
619+
620+ def post (self , request ):
621+ serializer = RegistrationRequestSerializer (data = request .data )
622+ if serializer .is_valid ():
623+ serializer .save ()
624+ return Response ({'status' : 200 })
625+ return Response (serializer .errors , status = 400 )
626+
627+ def put (self , request ):
628+ try :
629+ data = request .data
630+ print (data )
631+ student_id = data ['student_id' ]
632+ start_date = data ['start_date' ]
633+ payment_date = data ['payment_date' ]
634+ amount = data ['amount' ]
635+ Txn_no = data ['Txn_no' ]
636+ img = data ['img' ]
637+ new_status = data ['status' ]
638+ new_remark = data ['registration_remark' ]
639+ mess_option = data ['mess_option' ]
640+
641+ username = get_object_or_404 (User , username = student_id )
642+ idd = ExtraInfo .objects .get (user = username )
643+ student = Student .objects .get (id = idd .id )
644+
645+ registration_request = get_object_or_404 (Registration_Request , student_id = student_id , start_date = start_date , payment_date = payment_date , amount = amount , Txn_no = Txn_no )
646+
647+ registration_request .status = new_status
648+ registration_request .registration_remark = new_remark
649+ registration_request .save ()
650+
651+ if (new_status == 'accept' ):
652+ new_payment_record = Payments (student_id = student , amount_paid = amount , payment_date = payment_date , payment_month = current_month (), payment_year = current_year ())
653+ new_payment_record .save ()
654+
655+ try :
656+ reg_main = Reg_main .objects .get (student_id = student )
657+ reg_main .current_mess_status = "Registered"
658+ reg_main .balance = F ('balance' ) + amount
659+ except Reg_main .DoesNotExist :
660+ reg_main = Reg_main .objects .create (
661+ student_id = student ,
662+ program = student .programme ,
663+ current_mess_status = "Registered" ,
664+ balance = amount ,
665+ mess_option = mess_option
666+ )
667+ reg_main .save ()
668+
669+ new_reg_record = Reg_records (student_id = student , start_date = start_date , end_date = None )
670+ new_reg_record .save ()
671+
672+
673+ return Response ({'status' : 200 })
674+ except Exception as e :
675+ print ({'error' : str (e )})
676+ return Response ({'error' : str (e )}, status = 400 )
677+
678+ class DeregistrationRequestApi (APIView ):
679+ def get (self , request ):
680+ deregistration_requests = Deregistration_Request .objects .all ()
681+ serializer = DeregistrationRequestSerializer (deregistration_requests , many = True )
682+ return Response ({'status' : 200 , 'payload' : serializer .data })
683+
684+ def post (self , request ):
685+ serializer = DeregistrationRequestSerializer (data = request .data )
686+ if serializer .is_valid ():
687+ serializer .save ()
688+ return Response ({'status' : 200 })
689+ return Response (serializer .errors , status = 400 )
690+
691+ def put (self , request ):
692+ try :
693+ data = request .data
694+ print (data )
695+ student_id = data ['student_id' ]
696+ end_date = data ['end_date' ]
697+ new_status = data ['status' ]
698+ new_remark = data ['deregistration_remark' ]
699+
700+ username = get_object_or_404 (User , username = student_id )
701+ idd = ExtraInfo .objects .get (user = username )
702+ student = Student .objects .get (id = idd .id )
703+
704+ deregistration_request = get_object_or_404 (Deregistration_Request , student_id = student_id , end_date = end_date )
705+
706+ deregistration_request .status = new_status
707+ deregistration_request .deregistration_remark = new_remark
708+ deregistration_request .save ()
709+
710+ if (new_status == 'accept' ):
711+
712+ reg_main = Reg_main .objects .get (student_id = student )
713+ reg_main .current_mess_status = "Deregistered"
714+ reg_main .save ()
715+
716+ reg_record = Reg_records .objects .filter (student_id = student ).latest ('start_date' )
717+ reg_record .end_date = end_date
718+ reg_record .save ()
719+ return Response ({'status' : 200 })
720+ except Exception as e :
721+ print ({'error' : str (e )})
722+ return Response ({'error' : str (e )}, status = 400 )
0 commit comments