diff --git a/FusionIIIT/Fusion/settings/development.py b/FusionIIIT/Fusion/settings/development.py
index 3f95a478c..63587a11f 100644
--- a/FusionIIIT/Fusion/settings/development.py
+++ b/FusionIIIT/Fusion/settings/development.py
@@ -63,3 +63,5 @@
#the below job which we need to add in production server, to update the mess bill of student everyday at 10 pm in night
('0 22 * * *', 'applications.central_mess.tasks.generate_bill'),
]
+
+CRONTAB_DJANGO_MANAGE_PATH = '/home/owlman/Desktop/Fuse/Fusion/FusionIIIT/manage.py'
\ No newline at end of file
diff --git a/FusionIIIT/applications/central_mess/api/serializers.py b/FusionIIIT/applications/central_mess/api/serializers.py
index b30ad2686..582f2725e 100644
--- a/FusionIIIT/applications/central_mess/api/serializers.py
+++ b/FusionIIIT/applications/central_mess/api/serializers.py
@@ -88,4 +88,14 @@ class Meta:
class reg_recordSerialzer(serializers.ModelSerializer):
class Meta:
model = Reg_records
- fields=('__all__')
\ No newline at end of file
+ fields=('__all__')
+
+class RegistrationRequestSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Registration_Request
+ fields = ('__all__')
+
+class DeregistrationRequestSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Deregistration_Request
+ fields = ('__all__')
\ No newline at end of file
diff --git a/FusionIIIT/applications/central_mess/api/urls.py b/FusionIIIT/applications/central_mess/api/urls.py
index 2bd15c746..7f4c03286 100644
--- a/FusionIIIT/applications/central_mess/api/urls.py
+++ b/FusionIIIT/applications/central_mess/api/urls.py
@@ -23,5 +23,7 @@
# url("billDashboard", views.Bill_dashboard.as_view(), name="billDashboard"),
url("get_student_bill",views.Get_Student_bill.as_view(),name="student_bill_API"),
url("get_student_payment",views.Get_Student_Payments.as_view(),name="student_payment_API"),
- url("get_student_all_details",views.Get_Student_Details.as_view(),name="get_student_details_API")
+ url("get_student_all_details",views.Get_Student_Details.as_view(),name="get_student_details_API"),
+ url('registrationRequestApi', views.RegistrationRequestApi.as_view(), name='registrationRequestApi'),
+ url('deRegistrationRequestApi', views.DeregistrationRequestApi.as_view(), name='deRegistrationRequestApi'),
]
\ No newline at end of file
diff --git a/FusionIIIT/applications/central_mess/api/views.py b/FusionIIIT/applications/central_mess/api/views.py
index 6d1b7d4ae..a6fbe4a97 100644
--- a/FusionIIIT/applications/central_mess/api/views.py
+++ b/FusionIIIT/applications/central_mess/api/views.py
@@ -1,4 +1,5 @@
#APIs
+from django.db.models import F
from rest_framework.views import APIView
from rest_framework.response import Response
from .serializers import *
@@ -19,19 +20,47 @@ def post(self, request):
data = request.data
mess = data['mess']
- _type = data['type']
- desc = data['desc']
+ feedback_type = data['feedback_type']
+ description = data['description']
username = get_object_or_404(User,username=request.user.username)
idd = ExtraInfo.objects.get(user=username)
student = Student.objects.get(id=idd.id)
obj = Feedback(
student_id = student,
mess =mess,
- feedback_type=_type,
- description=desc
+ feedback_type=feedback_type,
+ description=description
)
obj.save()
return Response({'status':200})
+
+ def put(self, request):
+ data = request.data
+
+ print(data)
+
+ student_id = data['student_id']
+ mess = data['mess']
+ feedback_type = data['feedback_type']
+ description = data['description']
+ fdate = data['fdate']
+ new_remark = data['feedback_remark']
+
+ # username = get_object_or_404(User,username=request.user.username)
+ # idd = ExtraInfo.objects.get(user=username)
+ # student = Student.objects.get(id=idd.id)
+
+ feedback_request = get_object_or_404(Feedback,
+ student_id = student_id,
+ mess = mess,
+ feedback_type = feedback_type,
+ description = description,
+ fdate = fdate,
+ )
+ feedback_request.feedback_remark = new_remark
+ feedback_request.save()
+
+ return Response({'status':200})
class MessinfoApi(APIView):
@@ -104,30 +133,37 @@ def get(self, request):
def post(self, request):
data = request.data
+ student_id = data['student_id']
month = data['month']
year = data['year']
amount = data['amount']
rebate_count = data['rebate_count']
rebate_amount = data['rebate_amount']
- #nonveg_total_bill = data['nonveg_total_bill']
+ total_bill = data['amount']-(data['rebate_count']*data['rebate_amount'])
paid = data['paid']
- username = get_object_or_404(User,username=request.user.username)
+ username = get_object_or_404(User,username=student_id)
idd = ExtraInfo.objects.get(user=username)
student = Student.objects.get(id=idd.id)
-
- obj = Monthly_bill(
- student_id = student,
- month = month,
- year = year,
- amount = amount,
- rebate_count = rebate_count,
- rebate_amount = rebate_amount,
- # nonveg_total_bill = nonveg_total_bill,
- paid = paid
- )
- obj.save()
+ try:
+ reg_main = Monthly_bill.objects.get(student_id=student, year = year, month = month)
+ reg_main.amount = amount
+ reg_main.rebate_count = rebate_count
+ reg_main.rebate_amount = rebate_amount
+ reg_main.total_bill = total_bill
+ except Monthly_bill.DoesNotExist:
+ reg_main = Monthly_bill.objects.create(
+ student_id=student,
+ month = month,
+ year = year,
+ amount = amount,
+ rebate_amount = rebate_amount,
+ rebate_count = rebate_count,
+ total_bill = total_bill,
+ paid = paid
+ )
+ reg_main.save()
return Response({'status':200})
class PaymentsApi(APIView):
@@ -210,7 +246,33 @@ def post(self, request):
start_date = start_date
)
obj.save()
- return Response({'status':200})
+ return Response({'status':200})
+
+ def put(self, request):
+ data = request.data
+
+ student_id = data['student_id']
+ start_date = data['start_date']
+ end_date = data['end_date']
+ purpose = data['purpose']
+ new_status = data['status']
+ app_date = data['app_date']
+ leave_type = data['leave_type']
+ rebate_remark = data['rebate_remark']
+
+ # username = get_object_or_404(User,username=student_id)
+ # idd = ExtraInfo.objects.get(user=username)
+ # student = Student.objects.get(id=idd.id)
+
+ 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)
+
+ # Update the status
+ rebate_request.status = new_status
+ rebate_request.rebate_remark = rebate_remark
+ rebate_request.save()
+
+ return Response({'status': 200})
+
class Vacation_foodApi(APIView):
def get(self, request):
vacation_food_obj = Vacation_food.objects.all();
@@ -241,7 +303,45 @@ def post(self, request):
start_date = start_date
)
obj.save()
- return Response({'status':200})
+ return Response({'status':200})
+
+ def put(self, request):
+ print(request.data)
+ data = request.data
+
+ student_id = data['student_id']
+ start_date = data['start_date']
+ end_date = data['end_date']
+ purpose = data['purpose']
+ new_status = data['status']
+ app_date = data['app_date']
+
+
+ # username = get_object_or_404(User,username=request.user.username)
+ # idd = ExtraInfo.objects.get(user=username)
+ # student = Student.objects.get(id=idd.id)
+
+ try:
+ vacation_food_request = get_object_or_404(Vacation_food,
+ student_id = student_id,
+ app_date = app_date,
+ purpose = purpose,
+ end_date= end_date,
+ start_date = start_date
+ )
+ vacation_food_request.status = new_status
+ vacation_food_request.save()
+ return Response({'status':200})
+ except:
+ vacation_food_request = Vacation_food.objects.filter(student_id = student_id,
+ app_date = app_date,
+ purpose = purpose,
+ end_date= end_date,
+ start_date = start_date
+ ).latest('app_date')
+ vacation_food_request.status = new_status
+ vacation_food_request.save()
+ return Response({'status':200})
class Nonveg_menuApi(APIView):
def get(self, request):
@@ -331,7 +431,32 @@ def post(self, request):
request = request_
)
obj.save()
- return Response({'status':200})
+ return Response({'status':200})
+
+ def put(self, request):
+ print(request.data)
+ data = request.data
+ student_id = data['student_id']
+ start_date = data['start_date']
+ end_date = data['end_date']
+ app_date = data['app_date']
+ request_= data['request']
+ item1 = data['item1']
+ item2 = data['item2']
+ new_status = data['status']
+
+ # Fetch the Special_request object you want to update
+ # username = get_object_or_404(User, username=request.user.username)
+ # idd = ExtraInfo.objects.get(user=username)
+ # student = Student.objects.get(id=idd.id)
+
+ 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_)
+
+ # Update the status
+ special_request.status = new_status
+ special_request.save()
+
+ return Response({'status': 200})
class Mess_meetingApi(APIView):
def get(self, request):
@@ -484,4 +609,114 @@ def post(self,request):
reg_main = Reg_main.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').get(student_id=student)
serialized_obj = GetFilteredSerialzer(reg_main)
data={'payment':payment_serialized_obj.data,'bill':bill_serialized_obj.data,'reg_records':reg_record_serialized_obj.data,'student_details':serialized_obj.data}
- return Response({'payload':data})
\ No newline at end of file
+ return Response({'payload':data})
+
+class RegistrationRequestApi(APIView):
+ def get(self, request):
+ registration_requests = Registration_Request.objects.all()
+ serializer = RegistrationRequestSerializer(registration_requests, many=True)
+ return Response({'status': 200, 'payload': serializer.data})
+
+ def post(self, request):
+ serializer = RegistrationRequestSerializer(data=request.data)
+ if serializer.is_valid():
+ serializer.save()
+ return Response({'status': 200})
+ return Response(serializer.errors, status=400)
+
+ def put(self, request):
+ try:
+ data = request.data
+ print(data)
+ student_id = data['student_id']
+ start_date = data['start_date']
+ payment_date = data['payment_date']
+ amount = data['amount']
+ Txn_no = data['Txn_no']
+ img = data['img']
+ new_status = data['status']
+ new_remark = data['registration_remark']
+ mess_option = data['mess_option']
+
+ username = get_object_or_404(User, username=student_id)
+ idd = ExtraInfo.objects.get(user=username)
+ student = Student.objects.get(id=idd.id)
+
+ 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)
+
+ registration_request.status = new_status
+ registration_request.registration_remark = new_remark
+ registration_request.save()
+
+ if (new_status == 'accept'):
+ new_payment_record = Payments(student_id = student, amount_paid = amount, payment_date=payment_date, payment_month=current_month(), payment_year=current_year())
+ new_payment_record.save()
+
+ try:
+ reg_main = Reg_main.objects.get(student_id=student)
+ reg_main.current_mess_status = "Registered"
+ reg_main.balance = F('balance') + amount
+ except Reg_main.DoesNotExist:
+ reg_main = Reg_main.objects.create(
+ student_id=student,
+ program=student.programme,
+ current_mess_status="Registered",
+ balance=amount,
+ mess_option=mess_option
+ )
+ reg_main.save()
+
+ new_reg_record = Reg_records(student_id=student, start_date=start_date, end_date=None)
+ new_reg_record.save()
+
+
+ return Response({'status': 200})
+ except Exception as e:
+ print({'error': str(e)})
+ return Response({'error': str(e)}, status=400)
+
+class DeregistrationRequestApi(APIView):
+ def get(self, request):
+ deregistration_requests = Deregistration_Request.objects.all()
+ serializer = DeregistrationRequestSerializer(deregistration_requests, many=True)
+ return Response({'status': 200, 'payload': serializer.data})
+
+ def post(self, request):
+ serializer = DeregistrationRequestSerializer(data=request.data)
+ if serializer.is_valid():
+ serializer.save()
+ return Response({'status': 200})
+ return Response(serializer.errors, status=400)
+
+ def put(self, request):
+ try:
+ data = request.data
+ print(data)
+ student_id = data['student_id']
+ end_date = data['end_date']
+ new_status = data['status']
+ new_remark = data['deregistration_remark']
+
+ username = get_object_or_404(User, username=student_id)
+ idd = ExtraInfo.objects.get(user=username)
+ student = Student.objects.get(id=idd.id)
+
+ deregistration_request = get_object_or_404(Deregistration_Request, student_id = student_id, end_date = end_date)
+
+ deregistration_request.status = new_status
+ deregistration_request.deregistration_remark = new_remark
+ deregistration_request.save()
+
+ if (new_status == 'accept'):
+
+ reg_main = Reg_main.objects.get(student_id=student)
+ reg_main.current_mess_status = "Deregistered"
+ reg_main.save()
+
+ reg_record = Reg_records.objects.filter(student_id=student).latest('start_date')
+ reg_record.end_date = end_date
+ reg_record.save()
+ return Response({'status': 200})
+ except Exception as e:
+ print({'error': str(e)})
+ return Response({'error': str(e)}, status=400)
\ No newline at end of file
diff --git a/FusionIIIT/applications/central_mess/forms.py b/FusionIIIT/applications/central_mess/forms.py
index ceecf4400..9325df23f 100644
--- a/FusionIIIT/applications/central_mess/forms.py
+++ b/FusionIIIT/applications/central_mess/forms.py
@@ -2,7 +2,7 @@
from .models import Mess_minutes
from .models import Registration_Request
-from .models import Semdates
+from .models import Update_Payment
class MinuteForm(forms.ModelForm):
@@ -32,9 +32,22 @@ class Meta:
'img':forms.FileInput(attrs={'class':'ui big input'}),
'start_date':forms.widgets.DateInput(attrs={'type':'date'}),
'payment_date':forms.widgets.DateInput(attrs={'type':'date'}),
- }
-
-
+ }
+
+
+class UpdatePaymentRequest(forms.ModelForm):
+
+ class Meta:
+ model = Update_Payment
+ fields = ('Txn_no','amount','img','payment_date')
+
+ widgets={
+ 'Txn_no':forms.TextInput(attrs={'class':'ui big input','style':'border-radius:4px', 'initial':'590'}),
+ 'amount':forms.TextInput(attrs={'class':'ui big input'}),
+ 'img':forms.FileInput(attrs={'class':'ui big input'}),
+ 'payment_date':forms.widgets.DateInput(attrs={'type':'date'}),
+ }
+
class UpdateBalanceRequest(forms.ModelForm):
class Meta:
diff --git a/FusionIIIT/applications/central_mess/handlers.py b/FusionIIIT/applications/central_mess/handlers.py
index 47e840810..882cbe4e4 100644
--- a/FusionIIIT/applications/central_mess/handlers.py
+++ b/FusionIIIT/applications/central_mess/handlers.py
@@ -15,7 +15,7 @@
from applications.academic_information.models import Student
from applications.globals.models import ExtraInfo, HoldsDesignation, Designation
from .models import (Feedback, Menu, Menu_change_request, Mess_meeting,
- Mess_minutes, Mess_reg, Messinfo, Monthly_bill,
+ Mess_minutes, Mess_reg, Messinfo, Monthly_bill, Update_Payment,
Payments, Rebate,Special_request, Vacation_food, MessBillBase,Registration_Request, Reg_main, Reg_records ,Deregistration_Request, Semdates)
from notification.views import central_mess_notif
@@ -766,6 +766,40 @@ def handle_reg_response(request):
return data
+def handle_update_payment_response(request):
+ id = request.POST['id_reg']
+ status = request.POST['status']
+ remark = request.POST['remark']
+ payment_req = Update_Payment.objects.get(pk=id)
+ payment_date = payment_req.payment_date
+ student = payment_req.student_id
+ payment_req.status = status
+ payment_req.update_remark=remark
+
+ payment_req.save()
+
+ if(status == 'accept'):
+ amount = payment_req.amount
+ reg_main_obj= Reg_main.objects.get(student_id=student)
+ new_balance = reg_main_obj.balance + amount
+ reg_main_obj.balance = new_balance
+ reg_main_obj.save()
+ new_payment_record = Payments(student_id=student, amount_paid = amount, payment_date=payment_date, payment_month=current_month(), payment_year= current_year())
+ new_payment_record.save()
+
+ message = 'Your update payment request has been accepted.'
+
+ else:
+ message = 'Your update payment request has been rejected.'
+
+ receiver = payment_req.student_id.id.user
+ central_mess_notif(request.user, receiver, 'leave_request', message)
+ data = {
+ 'message': 'success'
+ }
+ return data
+
+
def handle_dreg_response(request):
"""
This function is to respond to de registeration requests
@@ -816,14 +850,13 @@ def update_month_bill(request):
"""
student = str(request.POST.get("rollNo")).upper()
studentHere = Student.objects.get(id = student)
- rebate_count = int(request.POST.get("RebateCount"))
- print(rebate_count)
- rebate_amount = int(request.POST.get("RebateAmount"))
- print(rebate_amount)
new_amount = int(request.POST.get("new_amount"))
month = request.POST.get("Month")
year = int(request.POST.get("Year"))
- bill_base_amount = int(MessBillBase.objects.latest('timestamp').bill_amount)
+ try:
+ bill_base_amount = int(MessBillBase.objects.latest('timestamp').bill_amount)
+ except:
+ bill_base_amount = 150
fixed_amount_per_month = int(bill_base_amount)*int(30)
reg_main_obj = Reg_main.objects.get(student_id=student)
@@ -838,7 +871,7 @@ def update_month_bill(request):
reg_main_obj.save()
existing_monthly_bill_object.save()
except:
- new_monthly_bill_obj = Monthly_bill(student_id = studentHere, rebate_amount=rebate_amount, rebate_count=rebate_count, month=month, year= year, total_bill = new_amount, amount=fixed_amount_per_month)
+ new_monthly_bill_obj = Monthly_bill(student_id = studentHere, month=month, year= year, total_bill = new_amount, amount=fixed_amount_per_month)
curr_balance = curr_balance - new_amount
reg_main_obj.balance = curr_balance
reg_main_obj.save()
diff --git a/FusionIIIT/applications/central_mess/models.py b/FusionIIIT/applications/central_mess/models.py
index cd5427736..f92614ba1 100644
--- a/FusionIIIT/applications/central_mess/models.py
+++ b/FusionIIIT/applications/central_mess/models.py
@@ -321,3 +321,16 @@ class Semdates(models.Model):
end_date = models.DateField(blank=False,default=datetime.date.today)
class Meta:
unique_together = (('start_date', 'end_date'),)
+
+
+class Update_Payment(models.Model):
+ student_id = models.ForeignKey(Student, on_delete=models.CASCADE)
+ Txn_no =models.CharField(max_length=20)
+ img = models.ImageField(upload_to='images/',default=None)
+ amount=models.IntegerField(default=0)
+ status=models.CharField(max_length=10,default='pending')
+ update_remark=models.CharField(max_length=50,default='NA')
+ payment_date= models.DateField(default=None, null=True)
+ def __str__(self):
+ return str(self.student_id.id)
+
\ No newline at end of file
diff --git a/FusionIIIT/applications/central_mess/urls.py b/FusionIIIT/applications/central_mess/urls.py
index 031626819..78b65f22c 100644
--- a/FusionIIIT/applications/central_mess/urls.py
+++ b/FusionIIIT/applications/central_mess/urls.py
@@ -46,7 +46,8 @@
url(r'^registeredstudent', views.searchAddOrRemoveStudent, name='registeredstudent'),
url(r'^registrationRequest', views.reg_request, name='reg_request'),
- # url(r'^uploadpayment', views.uploadPaymentDue, name='uploadpayment')
+ url(r'^updatePaymentReq', views.update_payment, name='update_payment'),
+ url(r'^respond_to_updatePayment', views.respond_to_update_payment, name='response_to_update_payment'),
url(r'^respond_to_reg_req',views.respond_to_reg, name='reg_response'),
url(r'^deregistrationRequest', views.de_reg_request, name='deregistrationRequest'),
url(r'^updatesemdates', views.update_semdates, name='updatesemdates'),
diff --git a/FusionIIIT/applications/central_mess/views.py b/FusionIIIT/applications/central_mess/views.py
index 4bc7238bd..255f34e40 100644
--- a/FusionIIIT/applications/central_mess/views.py
+++ b/FusionIIIT/applications/central_mess/views.py
@@ -14,16 +14,16 @@
from .utils import render_to_pdf
from applications.academic_information.models import Student
from applications.globals.models import ExtraInfo, HoldsDesignation, Designation
-from .forms import MinuteForm, MessInfoForm,RegistrationRequest
+from .forms import MinuteForm, MessInfoForm,RegistrationRequest,UpdatePaymentRequest
from .tasks import *
from .models import (Feedback, Menu, Menu_change_request, Mess_meeting,
Mess_minutes, Mess_reg, Messinfo, Monthly_bill,
Payments, Rebate,
- Special_request, Vacation_food, MessBillBase,Registration_Request, Reg_records ,Reg_main,Deregistration_Request,Semdates)
+ Special_request, Vacation_food, MessBillBase,Registration_Request, Reg_records ,Reg_main,Deregistration_Request,Semdates,Update_Payment)
from .handlers import (add_mess_feedback, add_sem_dates, add_vacation_food_request,
add_menu_change_request, handle_menu_change_response, handle_vacation_food_request,
add_mess_registration_time, add_leave_request, add_mess_meeting_invitation,
- handle_rebate_response, add_special_food_request,
+ handle_rebate_response, add_special_food_request, handle_update_payment_response,
handle_special_request, add_bill_base_amount, add_mess_committee, handle_reg_response, handle_dreg_response, update_month_bill,handle_add_reg)
from notification.views import central_mess_notif
@@ -59,7 +59,7 @@ def mess(request):
holds_designations = HoldsDesignation.objects.select_related().filter(user=user)
desig = holds_designations
form = MinuteForm()
- mess_reg = Mess_reg.objects.select_related().last()
+ # mess_reg = Mess_reg.objects.select_related().last()
count1 = 0
count2 = 0
count3 = 0
@@ -82,12 +82,15 @@ def mess(request):
splrequest = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(student_id=student).order_by('-app_date')
reg_form = RegistrationRequest()
+ update_form=UpdatePaymentRequest()
reg_request = Registration_Request.objects.filter(student_id=student)
-
+ update_payment_request = Update_Payment.objects.filter(student_id=student)
de_reg_request = Deregistration_Request.objects.filter(student_id=student)
+
menu_data = Menu.objects.all()
+
try:
mess_optn = Reg_main.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').get(student_id=student)
y = Menu.objects.filter(mess_option=mess_optn.mess_option)
@@ -127,21 +130,22 @@ def mess(request):
# monthly_bill[i].due_amount=(-tot_am)
# tot_am+=monthly_bill[i].total_bill
# amount_due=-payments[0].amount_paid
- amount_due = 0
+ # amount_due = 0
## adding the batch of student if btech or bdes then value of programme is 1 or else 0, holds value of phd and mtech.
- if student.programme == 'B.Tech' or student.programme == 'B.Des':
- programme = 1
- else:
- programme = 0
- meeting = Mess_meeting.objects.all()
- minutes = Mess_minutes.objects.all()
- count = 0
+ # if student.programme == 'B.Tech' or student.programme == 'B.Des':
+ # programme = 1
+ # else:
+ # programme = 0
+ # meeting = Mess_meeting.objects.all()
+ # minutes = Mess_minutes.objects.all()
+ # count = 0
# try:
# mess_optn = Messinfo.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').get(student_id=student)
# y = Menu.objects.filter(mess_option=mess_optn.mess_option)
+
# bill = Monthly_bill.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(Q(student_id=student) & Q(month=month_g_l) & Q(year=year_g))
# amount_c = MessBillBase.objects.latest('timestamp')
@@ -182,169 +186,175 @@ def mess(request):
# mess_optn={'mess_option':'no-mess'}
# y = Menu.objects.filter(mess_option="mess1")
- for d in desig:
- if d.designation.name == 'mess_committee' or d.designation.name == 'mess_convener':
- newmenu = Menu_change_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department','dish').filter(dish__mess_option='mess1').order_by('-app_date')
- meeting = Mess_meeting.objects.all()
- minutes = Mess_minutes.objects.select_related().all()
- feed = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess1').order_by('-fdate')
- feed2 = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess2').order_by('-fdate')
- sprequest = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='1').order_by('-app_date')
- sprequest_past = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='2').order_by('-app_date')
- menuchangerequest= Menu_change_request.objects.select_related('student_id').filter().order_by('-app_date')
- # menu_data = Menu.objects.all()
- for f in feed:
- if f.feedback_type == 'Maintenance' :
- count1 += 1
-
- elif f.feedback_type == 'Food' :
- count2 += 1
-
- elif f.feedback_type == 'Cleanliness' :
- count3 += 1
-
- elif f.feedback_type == 'Others' :
- count4 += 1
- count5=0
- count6=0
- count7=0
- count8=0
-
- context = {
- 'menu': menu_data,
- 'reg_menu': y,
- 'messinfo': mess_optn,
- 'newmenu': newmenu,
- 'monthly_bill': monthly_bill,
- 'total_due': amount_due,
+ # for d in desig:
+ # if d.designation.name == 'mess_committee' or d.designation.name == 'mess_convener':
+ # newmenu = Menu_change_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department','dish').filter(dish__mess_option='mess1').order_by('-app_date')
+ # meeting = Mess_meeting.objects.all()
+ # minutes = Mess_minutes.objects.select_related().all()
+ # feed = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess1').order_by('-fdate')
+ # feed2 = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess2').order_by('-fdate')
+ # sprequest = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='1').order_by('-app_date')
+ # sprequest_past = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='2').order_by('-app_date')
+ # menuchangerequest= Menu_change_request.objects.select_related('student_id').filter().order_by('-app_date')
+
+ # # menu_data = Menu.objects.all()
+
+ # for f in feed:
+ # if f.feedback_type == 'Maintenance' :
+ # count1 += 1
+
+ # elif f.feedback_type == 'Food' :
+ # count2 += 1
+
+ # elif f.feedback_type == 'Cleanliness' :
+ # count3 += 1
+
+ # elif f.feedback_type == 'Others' :
+ # count4 += 1
+ # count5=0
+ # count6=0
+ # count7=0
+ # count8=0
+
+ # context = {
+ # 'menu': menu_data,
+ # 'reg_menu': y,
+ # 'messinfo': mess_optn,
+ # 'newmenu': newmenu,
+ # 'monthly_bill': monthly_bill,
+ # 'total_due': amount_due,
- 'vaca': vaca_obj,
- 'info': extrainfo,
- 'feedback': feedback_obj,
- 'feed1': feed,
- 'feed2':'',
- 'student': student,
- 'mess_reg': mess_reg,
- 'current_date': current_date,
- 'count': count,
- 'rebates': rebates,
- 'meeting': meeting,
- 'minutes': minutes,
- 'sprequest': sprequest,
- 'splrequest': splrequest,
- 'sprequest_past': sprequest_past,
- 'menuchangerequest':menuchangerequest,
- 'programme':programme,
- 'count1': count1,
- 'count2': count2,
- 'count3': count3,
- 'count4': count4,
- 'count5': count5,
- 'count6': count6,
- 'count7': count7,
- 'count8': count8,
- 'form': form,
- 'desig': desig,
- 'reg_form':reg_form,
- 'reg_request':reg_request,
- 'reg_main':mess_optn,
- 'reg_record':reg_record,
- 'de_reg_request':de_reg_request,
-
- }
- return render(request, "messModule/mess.html", context)
-
- if d.designation.name == 'mess_committee_mess2' or d.designation.name == 'mess_convener_mess2':
- newmenu = Menu_change_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department','dish').filter(dish__mess_option='mess2').order_by('-app_date')
- meeting = Mess_meeting.objects.all()
- minutes = Mess_minutes.objects.select_related().all()
- feed = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess2').order_by('-fdate')
- feed2 = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess1').order_by('-fdate')
- sprequest = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='1').order_by('-app_date')
- sprequest_past = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='2').order_by('-app_date')
- menuchangerequest= Menu_change_request.objects.select_related('student_id').filter().order_by('-app_date')
- # menu_data = Menu.objects.all().order_by()
- count5=0
- count6=0
- count7=0
- count8=0
- for f in feed:
- if f.feedback_type == 'Maintenance' :
- count1 += 1
-
- elif f.feedback_type == 'Food' :
- count2 += 1
-
- elif f.feedback_type == 'Cleanliness' :
- count3 += 1
-
- elif f.feedback_type == 'Others' :
- count4 += 1
-
- context = {
- 'menu': menu_data,
- 'reg_menu': y,
- 'messinfo': mess_optn,
- 'newmenu': newmenu,
- 'monthly_bill': monthly_bill,
- 'total_due': amount_due,
- 'vaca': vaca_obj,
- 'info': extrainfo,
- 'feedback': feedback_obj,
- 'feed2': feed,
- 'feed1':'',
- 'student': student,
- # 'data': data,
- 'mess_reg': mess_reg,
- 'current_date': current_date,
- 'count': count,
- 'rebates': rebates,
- 'programme': programme,
- 'meeting': meeting,
- 'minutes': minutes,
- 'splrequest': splrequest,
- 'sprequest': sprequest,
- 'sprequest_past': sprequest_past,
- 'menuchangerequest':menuchangerequest,
- 'count1': count1,
- 'count2': count2,
- 'count3': count3,
- 'count4': count4,
- 'count5': count5,
- 'count6': count6,
- 'count7': count7,
- 'count8': count8,
- 'form': form,
- 'desig': desig,
- 'reg_form':reg_form,
- 'reg_request':reg_request,
- 'reg_main':mess_optn,
- 'reg_record':reg_record,
- 'de_reg_request':de_reg_request,
- }
- return render(request, "messModule/mess.html", context)
+ # 'vaca': vaca_obj,
+ # 'info': extrainfo,
+ # 'feedback': feedback_obj,
+ # 'feed1': feed,
+ # 'feed2':'',
+ # 'student': student,
+ # 'mess_reg': mess_reg,
+ # 'current_date': current_date,
+ # 'count': count,
+ # 'rebates': rebates,
+ # 'meeting': meeting,
+ # 'minutes': minutes,
+ # 'sprequest': sprequest,
+ # 'splrequest': splrequest,
+ # 'sprequest_past': sprequest_past,
+ # 'menuchangerequest':menuchangerequest,
+ # 'programme':programme,
+ # 'count1': count1,
+ # 'count2': count2,
+ # 'count3': count3,
+ # 'count4': count4,
+ # 'count5': count5,
+ # 'count6': count6,
+ # 'count7': count7,
+ # 'count8': count8,
+ # 'form': form,
+ # 'desig': desig,
+ # 'reg_form':reg_form,
+ # 'reg_request':reg_request,
+ # 'reg_main':mess_optn,
+ # 'reg_record':reg_record,
+ # 'de_reg_request':de_reg_request,
+
+ # }
+ # return render(request, "messModule/mess.html", context)
+
+ # if d.designation.name == 'mess_committee_mess2' or d.designation.name == 'mess_convener_mess2':
+ # newmenu = Menu_change_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department','dish').filter(dish__mess_option='mess2').order_by('-app_date')
+ # meeting = Mess_meeting.objects.all()
+ # minutes = Mess_minutes.objects.select_related().all()
+ # feed = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess2').order_by('-fdate')
+ # feed2 = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess1').order_by('-fdate')
+ # sprequest = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='1').order_by('-app_date')
+ # sprequest_past = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='2').order_by('-app_date')
+ # menuchangerequest= Menu_change_request.objects.select_related('student_id').filter().order_by('-app_date')
+
+ # # menu_data = Menu.objects.all().order_by()
+
+ # count5=0
+ # count6=0
+ # count7=0
+ # count8=0
+ # for f in feed:
+ # if f.feedback_type == 'Maintenance' :
+ # count1 += 1
+
+ # elif f.feedback_type == 'Food' :
+ # count2 += 1
+
+ # elif f.feedback_type == 'Cleanliness' :
+ # count3 += 1
+
+ # elif f.feedback_type == 'Others' :
+ # count4 += 1
+
+ # context = {
+ # 'menu': menu_data,
+ # 'reg_menu': y,
+ # 'messinfo': mess_optn,
+ # 'newmenu': newmenu,
+ # 'monthly_bill': monthly_bill,
+ # 'total_due': amount_due,
+ # 'vaca': vaca_obj,
+ # 'info': extrainfo,
+ # 'feedback': feedback_obj,
+ # 'feed2': feed,
+ # 'feed1':'',
+ # 'student': student,
+ # # 'data': data,
+ # 'mess_reg': mess_reg,
+ # 'current_date': current_date,
+ # 'count': count,
+ # 'rebates': rebates,
+ # 'programme': programme,
+ # 'meeting': meeting,
+ # 'minutes': minutes,
+ # 'splrequest': splrequest,
+ # 'sprequest': sprequest,
+ # 'sprequest_past': sprequest_past,
+ # 'menuchangerequest':menuchangerequest,
+ # 'count1': count1,
+ # 'count2': count2,
+ # 'count3': count3,
+ # 'count4': count4,
+ # 'count5': count5,
+ # 'count6': count6,
+ # 'count7': count7,
+ # 'count8': count8,
+ # 'form': form,
+ # 'desig': desig,
+ # 'reg_form':reg_form,
+ # 'reg_request':reg_request,
+ # 'reg_main':mess_optn,
+ # 'reg_record':reg_record,
+ # 'de_reg_request':de_reg_request,
+ # }
+ # return render(request, "messModule/mess.html", context)
context = {
'menu': menu_data,
- 'reg_menu': y,
- 'messinfo': mess_optn,
+ # 'reg_menu': y,
+ # 'messinfo': mess_optn,
'monthly_bill': monthly_bill,
- 'total_due': amount_due,
+ # 'total_due': amount_due,
'vaca': vaca_obj,
'info': extrainfo,
'feedback': feedback_obj,
'student': student,
- 'mess_reg': mess_reg,
+ # 'mess_reg': mess_reg,
'current_date': current_date,
- 'count': count,
+ # 'count': count,
'rebates': rebates,
'splrequest': splrequest,
'form': form,
- 'programme': programme,
+ # 'programme': programme,
'desig': desig,
- 'minutes': minutes,
- 'meeting': meeting,
+ # 'minutes': minutes,
+ # 'meeting': meeting,
'reg_form':reg_form,
+ 'update_form':update_form,
+ 'update_payment_request':update_payment_request,
'reg_main_stud':mess_optn,
'reg_request':reg_request,
'reg_record':reg_record,
@@ -363,7 +373,12 @@ def mess(request):
elif extrainfo.user_type == 'staff':
for d in desig:
if(d.designation.name == 'mess_manager'):
- current_bill = MessBillBase.objects.latest('timestamp')
+ try:
+ current_bill = MessBillBase.objects.latest('timestamp')
+ except:
+ new_entry = MessBillBase(bill_amount=150)
+ new_entry.save()
+ current_bill = MessBillBase.objects.latest('timestamp')
newmenu = Menu_change_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department','dish').all().order_by('-app_date')
vaca_all = Vacation_food.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').all().order_by('-app_date')
members_mess = HoldsDesignation.objects.select_related().filter(Q(designation__name__contains='mess_convener')
@@ -371,8 +386,8 @@ def mess(request):
y = Menu.objects.all()
leave = Rebate.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='1').order_by('-app_date')
leave_past = Rebate.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='2').order_by('-app_date')
- meeting = Mess_meeting.objects.all()
- minutes = Mess_minutes.objects.all()
+ # meeting = Mess_meeting.objects.all()
+ # minutes = Mess_minutes.objects.all()
feed1 = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess1').order_by('-fdate')
feed2 = Feedback.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(mess='mess2').order_by('-fdate')
@@ -406,6 +421,7 @@ def mess(request):
sprequest_past = Special_request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(status='2').order_by('-app_date')
reg_request = Registration_Request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').all().filter(status='pending')
+ update_pay_request=Update_Payment.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').all().filter(status='pending')
de_reg_request = Deregistration_Request.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').all().filter(status='pending')
reg_main = Reg_main.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').filter(current_mess_status='Registered')
reg_record = Reg_records.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').all()
@@ -423,10 +439,10 @@ def mess(request):
'leave': leave,
'leave_past': leave_past,
'current_date': current_date,
- 'mess_reg': mess_reg,
+ # 'mess_reg': mess_reg,
'desig': desig,
- 'meeting': meeting,
- 'minutes': minutes,
+ # 'meeting': meeting,
+ # 'minutes': minutes,
'sprequest': sprequest,
'sprequest_past': sprequest_past,
'count1': count1,
@@ -436,7 +452,8 @@ def mess(request):
'reg_request':reg_request,'reg_record':reg_record,'reg_main':reg_main,
'de_reg_request':de_reg_request,
'bill': bills,
- 'reg_form':reg_form
+ 'reg_form':reg_form,
+ 'update_pay_request':update_pay_request
}
return render(request, "messModule/mess.html", context)
@@ -489,6 +506,7 @@ def mess(request):
}
return render(request, 'messModule/mess.html', context)
+
@login_required
@transaction.atomic
def mess_info(request):
@@ -941,25 +959,13 @@ def post(self, request, *args, **kwargs):
extra_info = ExtraInfo.objects.select_related().get(user=user)
y = Menu.objects.all()
- if extra_info.user_type=='student':
- student = Student.objects.select_related('id','id__user','id__department').get(id=extra_info)
- mess_info = Messinfo.objects.select_related('student_id','student_id__id','student_id__id__user','student_id__id__department').get(student_id=student)
- mess_option = mess_info.mess_option
- context = {
- 'menu': y,
- 'mess_option': mess_option
- }
- if mess_option=='mess2':
- return render_to_pdf('messModule/menudownloadable2.html', context)
- else:
- return render_to_pdf('messModule/menudownloadable1.html', context)
- else:
- context = {
- 'menu': y,
- 'mess_option': 'mess2'
- }
- return render_to_pdf('messModule/menudownloadable2.html', context)
- # return HttpResponse(pdf, content_type='application/pdf')
+ context = {
+ 'menu': y,
+ 'mess_option': 'mess2',
+ 'date':str(today_g.date())
+ }
+ return render_to_pdf('messModule/menudownloadable2.html', context)
+ # return HttpResponse(pdf, content_type='application/pdf')
class MenuPDF1(View):
@@ -979,7 +985,8 @@ def post(self, request, *args, **kwargs):
y = Menu.objects.all()
context = {
'menu': y,
- 'mess_option': 'mess1'
+ 'mess_option': 'mess1',
+ 'date':str(today_g.date())
}
return render_to_pdf('messModule/menudownloadable1.html', context)
@@ -1002,6 +1009,7 @@ def post(self, request, *args, **kwargs):
return HttpResponseRedirect('/mess')
+
def menu_change_request(request):
"""
This function is to request a change in menu
@@ -1553,6 +1561,21 @@ def respond_to_reg(request):
data = handle_dreg_response(request)
return JsonResponse(data)
+@csrf_exempt
+@login_required
+def respond_to_update_payment(request):
+ data = {
+ 'status': 1
+ }
+ user = request.user
+ designation = HoldsDesignation.objects.select_related().filter(user=user)
+ for d in designation:
+ if d.designation.name == 'mess_manager':
+ data = handle_update_payment_response(request)
+
+ return JsonResponse(data)
+
+
def reg_request(request):
@@ -1583,6 +1606,18 @@ def reg_request(request):
return HttpResponseRedirect("/mess")
+def update_payment(request):
+ user = request.user
+ extra_info = ExtraInfo.objects.select_related().get(user=user)
+ student = Student.objects.select_related('id','id__user','id__department').get(id=extra_info)
+ if request.method == 'POST':
+ form = UpdatePaymentRequest(request.POST, request.FILES)
+
+ if form.is_valid():
+ temp=form.save(commit=False)
+ temp.student_id=student
+ temp.save()
+ return HttpResponseRedirect("/mess")
@csrf_exempt
def update_bill_excel(request):
diff --git a/FusionIIIT/templates/messModule/applications.html b/FusionIIIT/templates/messModule/applications.html
index c8feac645..4d7cd414f 100644
--- a/FusionIIIT/templates/messModule/applications.html
+++ b/FusionIIIT/templates/messModule/applications.html
@@ -360,7 +360,7 @@
-->
-
+
+
+
+
+
+
+
+ Student Id |
+ Transaction No |
+ Image |
+ Amount |
+ Payment Date |
+ Remark |
+ Accept/Reject |
+
+
+
+ {% for var in update_pay_request %}
+
+
+ {{var.student_id}}
+ |
+
+ {{var.Txn_no}}
+ |
+
+
+ Receipt
+
+
+ |
+
+ {{var.amount}}
+ |
+
+ {{var.payment_date}}
+ |
+
+
+ |
+
+
+
+ |
+
+ {% endfor %}
+
+
+
+
+
@@ -272,6 +329,56 @@
});
}
+ function acceptPaymentReq(id){
+ document.getElementById('update1-'+id).style.display="none";
+
+ $.ajax({
+ type: 'POST',
+ url: 'respond_to_updatePayment',
+ dataType: 'json',
+ data: {
+ 'csrfmiddlewaretoken' : '{{ csrf_token }}',
+ 'id_reg':id,
+ 'status':'accept',
+ 'remark':$(`tr${'#update1-'+id} td.one.wide textarea`).val(),
+ },
+ success: function(data) {
+
+ alert(data.message);
+
+
+ },
+ error: function(data, err) {
+ alert(err.message);
+ }
+ });
+
+ }
+ function rejectPaymentReq(id){
+ document.getElementById('update1-'+id).style.display="none";
+ $.ajax({
+ type: 'POST',
+ url: 'respond_to_updatePayment',
+ dataType: 'json',
+ data: {
+ 'csrfmiddlewaretoken' : '{{ csrf_token }}',
+ 'id_reg':id,
+ 'status':'reject',
+ 'remark':$(`tr${'#update1-'+id} td.one.wide textarea`).val(),
+ },
+ success: function(data) {
+
+ alert(data.message);
+
+
+ },
+ error: function(data, err) {
+ alert(err.message);
+ }
+ });
+
+ }
+
{% endblock %}
{% endblock %}
diff --git a/FusionIIIT/templates/messModule/menu_card.html b/FusionIIIT/templates/messModule/menu_card.html
index c9a8443c3..e413dc807 100644
--- a/FusionIIIT/templates/messModule/menu_card.html
+++ b/FusionIIIT/templates/messModule/menu_card.html
@@ -67,6 +67,10 @@
{% else %}
+
+ Update Payment
+
+
Deregistration
@@ -121,7 +125,7 @@
- Registrations/Deregistrations Requests
+ Reg/Dereg/UpdatePayment Requests
{% comment %}
diff --git a/FusionIIIT/templates/messModule/menudownloadable1.html b/FusionIIIT/templates/messModule/menudownloadable1.html
index 0f9c06ce0..843d5848c 100644
--- a/FusionIIIT/templates/messModule/menudownloadable1.html
+++ b/FusionIIIT/templates/messModule/menudownloadable1.html
@@ -1,12 +1,13 @@
-
-
- Mess Menu
-
-
+
+
+ Mess Menu
+
+
-
+ PDPM Indian Institute of Information Technology Design and Manufacturing, Jabalpur
+
|
@@ -179,9 +180,15 @@ Mess 1 menu
-
-
+
-
-
-
\ No newline at end of file
+
+
+ Date:
+ {% block menu1 %}
+ {{date}}
+ {% endblock %}
+
+
+
+
\ No newline at end of file
diff --git a/FusionIIIT/templates/messModule/menudownloadable2.html b/FusionIIIT/templates/messModule/menudownloadable2.html
index 95d31acea..2ec934069 100644
--- a/FusionIIIT/templates/messModule/menudownloadable2.html
+++ b/FusionIIIT/templates/messModule/menudownloadable2.html
@@ -6,7 +6,8 @@
-
+ PDPM Indian Institute of Information Technology Design and Manufacturing, Jabalpur
+
|
@@ -180,8 +181,13 @@ Mess 2 menu
-
-
+
+
+ Date:
+ {% block menu1 %}
+ {{date}}
+ {% endblock %}
+