示例#1
0
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/')
示例#2
0
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/')
示例#3
0
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/')
示例#4
0
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/')
示例#5
0
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/')
示例#6
0
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/')
示例#7
0
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/')
示例#8
0
        # 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')