def page_draft_reservation_confirm(): ''' The reservation wizard is done. Make the reservation non-draft and give the user a confirmation number. ''' formdata = request.form res = getReservationByID(int(formdata['resID'])) res.set_status(CONST.unarrived_status) content = "Reservation completed. You confirmation number is: " + str(res.getID()) return render('basic.html', content = content)
def page_reservation_wizard_3_new_guest(): ''' The user has selected to create a new guest. Display the form to create a new guest and use that new guest as the guest on the reservation. ''' from RoomReserve.admin.guest import form_CreateGuest #, processCreateGuestForm formdata = request.form res = getReservationByID(int(formdata['resID'])) form = form_CreateGuest() return render('reswizard/wizard3_newguest.html', form=form, res=res)
def page_reservation_wizard_3_new_guest_process(): # the form has been filled out, import the data formdata = request.form from RoomReserve.admin.guest import form_CreateGuest, processCreateGuestForm myGuest = processCreateGuestForm(formdata) if myGuest == False: # the guest could not be created. return render('basic.html', content="Could not create guest.") myGuestID = myGuest.get_id() myRes = getReservationByID(int(formdata['resID'])) myRes.setGuest(guestID=myGuestID) return render('reswizard/confirm.html', res=myRes)
def page_reservation_wizard_3(): ''' Updates the reservation with the selected room. Asks for the guest information ''' formdata = request.form res = getReservationByID(int(formdata['resID'])) room = getRoomByID(int(formdata['roomID'])) res.setRoom(room=room) buildingName = getBuildingById(room.get_building_id()).get_name() from RoomReserve.admin.guestsearch import form_SearchGuest guestSearchForm = form_SearchGuest() from RoomReserve.admin.guest import form_CreateGuest createGuestForm = form_CreateGuest() return render('reswizard/wizard3.html', guestSearchForm=guestSearchForm,\ room=getRoomByID(res.getRoomID()), buildingName=buildingName, resID=res.getID())
def page_newres(): def pullAvailableRooms(itemlist): [capacity, indatey, indatem, indated, outdatey, outdatem, outdated] = itemlist indate = str(indatey) + "/" + str(indatem) + "/" + str(indated) outdate = str(outdatey) + "/" + str(outdatem) + "/" + str(outdated) indate = delorean.parse(indate).naive() outdate = delorean.parse(outdate).naive() availableRooms = find_available_rooms(indate, outdate, capacity=capacity) return availableRooms def allowEdit(): ''' Figures out if the current user should be allowed to edit the guest object. Parameters: GuestID for the guest we want to edit ''' if current_user.is_standard(): # Only admins and standard users can edit guests return True else: return False if request.method == 'POST' and 'roomID' in request.form: formdata = request.form try: res = getReservationByID(int(formdata['resID'])) res.setRoom(formdata['roomID']) except: return render("basic.html", content="Could not set room") return render("newReservation.html", pullAvailableRooms=pullAvailableRooms, getGuest=getGuest, allowEdit=allowEdit, guests=getAllGuests(), form=NewGuestForm(), successpage=True) if request.method == 'POST' and 'dates' in request.form: formdata = request.form indate = formdata['dates'].split()[0].split('/') indate = indate[2] + '/' + indate[1] + '/' + indate[0] outdate = formdata['dates'].split()[2].split('/') outdate = outdate[2] + '/' + outdate[1] + '/' + outdate[0] if formdata['capacity'] == "": capacity = 1 else: capacity = int(formdata['capacity']) indate = delorean.parse(indate).naive() outdate = delorean.parse(outdate).naive() #availableRooms = find_available_rooms(indate, outdate, capacity=capacity) if formdata['newguestfirst'] != "" and formdata['newguestfirst'] != None: if formdata['guestID'] != "" and formdata['guestID'] != None: return render("basic.html", content="Tried to create new guest and use existing guest in same instance.") else: try: firstname = formdata['newguestfirst'] lastname = formdata['newguestlast'] email = formdata['newguestemail'] phone = re.sub(r'[^\w]', '', formdata['newguestphone']) phone = int(phone) address = formdata['newguestaddress'] payment = re.sub(r'[^\w]', '', formdata['newguestpayment']) try: payment = int(payment) except ValueError: payment = 0 notes = formdata['newguestnotes'] except Exception as e: print(e) return render("basic.html", content="An issue with new guest data occured.") myguest = createGuest(firstname, lastname, email, phone, address, payment, notes) if myguest == False: return render("basic.html", content="Could not create guest.") myguestid = myguest.get_id() elif formdata['guestID'] != "" and formdata['guestID'] != None: myguestid = int(formdata['guestID']) print("Got the guest (existing)") else: return render("basic.html", content="No guest selected") if 'roomselect' in formdata.keys(): firstroom = find_first_available_room(indate, outdate, capacity=capacity) if firstroom == None: return render("basic.html", content="No rooms are available for selected capacity and date range. Try a different date range or try splitting the group into multiples.") else: firstroomid = firstroom.getID() try: createReservation(guestID=myguestid, madeby=current_user.getID(), roomID=firstroomid, checkin=indate, checkout=outdate, status=CONST.unarrived_status) except: return render("basic.html", content="Could not complete reservation") else: availableRooms = find_available_rooms(indate, outdate, capacity=capacity) if len(availableRooms) == 0: return render("basic.html", content="No rooms are available for selected capacity and date range. Try a different date range or try splitting the group into multiples.") try: myres = createReservation(guestID=myguestid, madeby=current_user.getID(), roomID=-1, checkin=indate, checkout=outdate, status=CONST.draft_status) except: return render("basic.html", content="Could not complete draft reservation") return render("roompick.html", resID = myres.getID(), rooms=availableRooms) return render("newReservation.html", pullAvailableRooms=pullAvailableRooms, getGuest=getGuest, allowEdit=allowEdit, guests=getAllGuests(), form=NewGuestForm(), successpage=True) return render("newReservation.html", pullAvailableRooms=pullAvailableRooms, getGuest=getGuest, allowEdit=allowEdit, guests=getAllGuests(), form=NewGuestForm())
def page_reservation_wizard_3_search_existing_guest_process(): formdata = request.form myRes = getReservationByID(int(formdata['resID'])) myRes.setGuest(guestID=int(formdata['guestID'])) return render('reswizard/confirm.html', res=myRes)