Skip to content

Commit 820afd7

Browse files
authored
Merge pull request #1544 from Harshul-25/latest_staging
merging sa-2 into latest_staging
2 parents d858a51 + c3144fc commit 820afd7

23 files changed

+847
-321
lines changed

FusionIIIT/Fusion/settings/development.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,5 @@
6363
#the below job which we need to add in production server, to update the mess bill of student everyday at 10 pm in night
6464
('0 22 * * *', 'applications.central_mess.tasks.generate_bill'),
6565
]
66+
67+
CRONTAB_DJANGO_MANAGE_PATH = '/home/owlman/Desktop/Fuse/Fusion/FusionIIIT/manage.py'

FusionIIIT/applications/central_mess/api/serializers.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,14 @@ class Meta:
8888
class reg_recordSerialzer(serializers.ModelSerializer):
8989
class Meta:
9090
model = Reg_records
91-
fields=('__all__')
91+
fields=('__all__')
92+
93+
class RegistrationRequestSerializer(serializers.ModelSerializer):
94+
class Meta:
95+
model = Registration_Request
96+
fields = ('__all__')
97+
98+
class DeregistrationRequestSerializer(serializers.ModelSerializer):
99+
class Meta:
100+
model = Deregistration_Request
101+
fields = ('__all__')

FusionIIIT/applications/central_mess/api/urls.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,7 @@
2323
# url("billDashboard", views.Bill_dashboard.as_view(), name="billDashboard"),
2424
url("get_student_bill",views.Get_Student_bill.as_view(),name="student_bill_API"),
2525
url("get_student_payment",views.Get_Student_Payments.as_view(),name="student_payment_API"),
26-
url("get_student_all_details",views.Get_Student_Details.as_view(),name="get_student_details_API")
26+
url("get_student_all_details",views.Get_Student_Details.as_view(),name="get_student_details_API"),
27+
url('registrationRequestApi', views.RegistrationRequestApi.as_view(), name='registrationRequestApi'),
28+
url('deRegistrationRequestApi', views.DeregistrationRequestApi.as_view(), name='deRegistrationRequestApi'),
2729
]

FusionIIIT/applications/central_mess/api/views.py

Lines changed: 257 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#APIs
2+
from django.db.models import F
23
from rest_framework.views import APIView
34
from rest_framework.response import Response
45
from .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

3766
class 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

133169
class 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+
214276
class 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

246346
class 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

336461
class 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

Comments
 (0)