def confirm_booking(request): if request.method == 'POST': booking_id = request.POST.get('booking-id') intender = request.POST.get('intender'), category = request.POST.get('category') purpose = request.POST.get('purpose') booking_from = request.POST.get('booking_from') booking_to = request.POST.get('booking_to') person_count = request.POST.get('numberofpeople') # rooms list rooms = request.POST.getlist('rooms[]') print(rooms) booking = BookingDetail.objects.get(id=booking_id) bd = BookingDetail.objects.get(id=booking_id) bd.status = 'Confirmed' bd.category = category for room in rooms: room_object = RoomDetail.objects.get(room_number=room) bd.rooms.add(room_object) bd.save() # notification of booking confirmation visitors_hostel_notif(request.user, bd.intender, 'booking_confirmation') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
def cancel_booking(request): if request.method == 'POST': user = request.user print(request.POST) booking_id = request.POST.get('booking-id') remark = request.POST.get('remark') charges = request.POST.get('charges') BookingDetail.objects.filter(id=booking_id).update(status='Canceled', remark=remark) booking = BookingDetail.objects.get(id=booking_id) x = 0 if charges: Bill.objects.create(booking=booking, meal_bill=x, room_bill=int(charges), caretaker=user, payment_status=True) else: Bill.objects.create(booking=booking, meal_bill=x, room_bill=x, caretaker=user, payment_status=True) complete_bookings = BookingDetail.objects.filter( Q(status="Canceled") | Q(status="Complete"), booking_to__lt=datetime.datetime.today()).select_related( ).order_by('booking_from') visitors_hostel_notif(request.user, booking.intender, 'booking_cancellation_request_accepted') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
def reject_booking(request): if request.method == 'POST': booking_id = request.POST.get('booking-id') remark = request.POST.get('remark') BookingDetail.objects.filter(id=booking_id).update(status="Rejected", remark=remark) visitors_hostel_notif(request.user, booking.intender, 'booking_rejected') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
def cancel_booking_request(request): if request.method == 'POST': intender = request.user.holds_designations.filter( designation__name='VhIncharge') booking_id = request.POST.get('booking-id') remark = request.POST.get('remark') BookingDetail.objects.filter(id=booking_id).update( status='CancelRequested', remark=remark) incharge_name = HoldsDesignation.objects.get( designation__name="VhIncharge") visitors_hostel_notif(request.user, incharge_name.user, 'cancellation_request_placed') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
def reject_booking(request): if request.method == 'POST': booking_id = request.POST.get('booking-id') remark = request.POST.get('remark') BookingDetail.objects.select_related( 'intender', 'caretaker').filter(id=booking_id).update(status="Rejected", remark=remark) # to notify the intender that his request has been rejected visitors_hostel_notif(request.user, booking.intender, 'booking_rejected') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
def forward_booking(request): if request.method == 'POST': user = request.user booking_id = request.POST.get('id') previous_category = request.POST.get('previous_category') modified_category = request.POST.get('modified_category') rooms = request.POST.getlist('rooms[]') print(rooms) BookingDetail.objects.select_related( 'intender', 'caretaker').filter(id=booking_id).update(status="Forward") booking = BookingDetail.objects.select_related( 'intender', 'caretaker').get(id=booking_id) bd = BookingDetail.objects.select_related( 'intender', 'caretaker').get(id=booking_id) bd.modified_visitor_category = modified_category count_rooms = 0 for room in rooms: count_rooms = count_rooms + 1 room_object = RoomDetail.objects.get(room_number=room) bd.rooms.add(room_object) bd.number_of_rooms_alloted = count_rooms bd.save() dashboard_bookings = BookingDetail.objects.select_related( 'intender', 'caretaker').filter(Q(status="Pending") | Q(status="Forward") | Q(status="Confirmed") | Q(status='Rejected'), booking_to__gte=datetime.datetime.today(), intender=user).order_by('booking_from') # return render(request, "vhModule/visitorhostel.html", # {'dashboard_bookings' : dashboard_bookings}) incharge_name = HoldsDesignation.objects.select_related( 'user', 'working', 'designation').get(designation__name="VhIncharge") # notify incharge about forwarded booking visitors_hostel_notif(request.user, incharge_name.user, 'booking_forwarded') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
def request_booking(request): if request.method == 'POST': flag = 0 # getting details from request form intender = request.POST.get('intender') user = User.objects.get(id=intender) booking_id = "VH" + str(datetime.datetime.now()) category = request.POST.get('category') person_count = request.POST.get('number-of-people') bookingObject = [] if person_count and (int(person_count) < 20): person_count = person_count else: flag = 1 # for error # person_count = 1 purpose_of_visit = request.POST.get('purpose-of-visit') booking_from = request.POST.get('booking_from') booking_to = request.POST.get('booking_to') booking_from_time = request.POST.get('booking_from_time') booking_to_time = request.POST.get('booking_to_time') remarks_during_booking_request = request.POST.get( 'remarks_during_booking_request') bill_to_be_settled_by = request.POST.get('bill_settlement') number_of_rooms = request.POST.get('number-of-rooms') if (int(person_count) < int(number_of_rooms)): flag = 1 if flag == 0: bookingObject = BookingDetail.objects.create( purpose=purpose_of_visit, intender=user, booking_from=booking_from, booking_to=booking_to, visitor_category=category, person_count=person_count, arrival_time=booking_from_time, departure_time=booking_to_time, remark=remarks_during_booking_request, number_of_rooms=number_of_rooms, bill_to_be_settled_by=bill_to_be_settled_by) print(bookingObject.bill_to_be_settled_by) # in case of any attachment doc = request.FILES.get('files-during-booking-request') remark = remarks_during_booking_request, if doc: print("hello") filename, file_extenstion = os.path.splitext( request.FILES.get('files-during-booking-request').booking_id) filename = booking_id full_path = settings.MEDIA_ROOT + "/VhImage/" url = settings.MEDIA_URL + filename + file_extenstion if not os.path.isdir(full_path): cmd = "mkdir " + full_path subprocess.call(cmd, shell=True) fs = FileSystemStorage(full_path, url) fs.save(filename + file_extenstion, doc) uploaded_file_url = "/media/online_cms/" + filename uploaded_file_url = uploaded_file_url + file_extenstion bookingObject.image = uploaded_file_url bookingObject.save() # visitor datails from place request form visitor_name = request.POST.get('name') visitor_phone = request.POST.get('phone') visitor_email = request.POST.get('email') visitor_address = request.POST.get('address') visitor_organization = request.POST.get('organization') visitor_nationality = request.POST.get('nationality') # visitor_nationality="jk" if visitor_organization == '': visitor_organization = ' ' visitor = VisitorDetail.objects.create( visitor_phone=visitor_phone, visitor_name=visitor_name, visitor_email=visitor_email, visitor_address=visitor_address, visitor_organization=visitor_organization, nationality=visitor_nationality) # try: # bd = BookingDetail.objects.get(id=booking_id) bookingObject.visitor.add(visitor) bookingObject.save() # except: print("exception occured") # return HttpResponse('/visitorhostel/') # for sending notification of booking request to caretaker caretaker_name = HoldsDesignation.objects.get( designation__name="VhCaretaker") visitors_hostel_notif(request.user, caretaker_name.user, 'booking_request') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/')
# bd = BookingDetail.objects.get(id=booking_id) bookingObject.visitor.add(visitor) bookingObject.save() # except: print("exception occured") # return HttpResponse('/visitorhostel/') <<<<<<< HEAD # for sending notification of booking request to caretaker ======= >>>>>>> 165acc4a4b95a4b3ea67bc29541f01e49382bba3 caretaker_name = HoldsDesignation.objects.get(designation__name = "VhCaretaker") visitors_hostel_notif(request.user, caretaker_name.user, 'booking_request') return HttpResponseRedirect('/visitorhostel/') else: return HttpResponseRedirect('/visitorhostel/') # updating a booking request @login_required(login_url='/accounts/login/') def update_booking(request): if request.method == 'POST': user = request.user print(request.POST) booking_id = request.POST.get('booking-id')