function testdbBookingsModule()
 {
     // create a booking and test inserting and retrieving it from dbBookings
     $today = date('y-m-d');
     $b = new Booking($today, "", "Meghan2075551234", "pending", "", "Tiny", array("Meghan:mother", "Jean:father", "Teeny:sibling"), array(), "", "", "Millie2073631234", "Maine Med", "SCU", "00000000000", "\$10 per night", "", "", "", "new");
     $this->assertTrue(insert_dbBookings($b));
     $this->assertTrue(retrieve_dbBookings($b->get_id()));
     //$this->assertTrue(in_array("Meghan2077291234", $b->get_guest_id()));
     //checks that the initial status is "pending"
     $this->assertTrue(retrieve_dbBookings($b->get_id())->get_status(), "pending");
     //checks that initial flag is "new"
     $this->assertTrue(retrieve_dbBookings($b->get_id())->get_flag(), "new");
     $pending_bookings = retrieve_all_pending_dbBookings();
     //       $this->assertEqual($pending_bookings[0]->get_id(), $b->get_id());
     // make some changes and test updating it in the database
     // Add a loaner to the booking
     $b->add_loaner("remote3");
     $b->add_occupant("Jordan", "brother");
     $b->set_flag("viewed");
     $this->assertTrue($b->assign_room("126", $today));
     $bretrieved = retrieve_dbBookings($b->get_id());
     $this->assertTrue(in_array("Jordan: brother", $bretrieved->get_occupants()));
     $this->assertTrue(in_array("remote3", $bretrieved->get_loaners()));
     $this->assertEqual($bretrieved->get_status(), "active");
     $this->assertEqual($bretrieved->get_id(), $b->get_id());
     $this->assertEqual($bretrieved->get_room_no(), "126");
     $today = date('y-m-d');
     $this->assertEqual($bretrieved->get_date_in(), $today);
     $this->assertEqual($bretrieved->get_flag(), "viewed");
     //tests updating after a checkout
     $this->assertTrue($bretrieved->check_out($today));
     $bretrieved2 = retrieve_dbBookings($b->get_id());
     $this->assertEqual($bretrieved2->get_status(), "closed");
     $this->assertEqual($bretrieved2->get_date_out(), $today);
     //tests the delete function
     $this->assertTrue(delete_dbBookings($b->get_id()));
     $this->assertFalse(retrieve_dbBookings($b->get_id()));
     echo "testdbBookings complete";
 }
function build_POST_booking($primaryGuest, $referralid)
{
    $current_date = date("y-m-d");
    $referred_by = trim(str_replace("'", "\\'", htmlentities($_POST['referred_by'])));
    $hospital = trim(str_replace("'", "\\'", htmlentities($_POST['hospital'])));
    $department = trim(str_replace("'", "\\'", htmlentities($_POST['dept'])));
    if ($_POST['payment'] != "other") {
        $payment = "10 per night";
    } else {
        $payment = trim(str_replace("'", "\\'", htmlentities($_POST['payment_description'])));
    }
    $notes = trim(str_replace("'", "\\'", htmlentities($_POST['notes'])));
    $healthvalues = array("flu", "shingles", "tb", "strep", "lice", "whoopingcough", "measles", "nomeaslesshot", "chickenpox", "chickenpoxshot", "hepatitisb");
    $health_questions = "";
    for ($i = 1; $i <= 11; $i++) {
        if ($_POST['health'] && in_array($healthvalues[$i - 1], $_POST['health'])) {
            $health_questions .= "1";
        } else {
            $health_questions .= "0";
        }
    }
    if ($_POST['visitOrWC'] == "Will Call") {
        $date_in = "Will Call";
    } else {
        if ($_POST['date_in_year'] && $_POST['date_in_month'] && $_POST['date_in_day']) {
            $date_in = $_POST['date_in_year'] . '-' . $_POST['date_in_month'] . '-' . $_POST['date_in_day'];
        }
    }
    if ($referralid) {
        $pendingBooking = retrieve_dbBookings($referralid);
        $pendingBooking->set_health_questions($health_questions);
        $pendingBooking->set_payment_arrangement($payment);
        $pendingBooking->set_mgr_notes($notes);
        $pendingBooking->set_referred_by($referred_by);
        $pendingBooking->set_hospital($hospital);
        $pendingBooking->set_department($department);
        $pendingBooking->remove_occupants();
    } else {
        $pendingBooking = new Booking($current_date, $date_in, $primaryGuest->get_id(), "pending", "", $primaryGuest->get_patient_name(), array(), array(), null, null, $referred_by, $hospital, $department, $health_questions, $payment, $_POST['overnight'], $_POST['day'], $notes, "new");
    }
    $pendingBooking->add_occupant($primaryGuest->get_first_name() . " " . $primaryGuest->get_last_name(), $primaryGuest->get_patient_relation());
    for ($count = 1; $count <= 4; $count++) {
        if ($_POST['additional_guest_' . $count] != "") {
            $pendingBooking->add_occupant($_POST['additional_guest_' . $count], $_POST['additional_guest_' . $count . '_relation']);
        }
    }
    insert_dbBookings($pendingBooking);
    return $pendingBooking;
}
/**
 * Updates a Booking in the dbBookings table by deleting it and re-inserting it
 * @param $booking the Booking to update
 */
function update_dbBookings($booking)
{
    if (!$booking instanceof Booking) {
        echo "Invalid argument for update_dbBookings function call";
        return false;
    }
    if (delete_dbBookings($booking->get_id())) {
        return insert_dbBookings($booking);
    } else {
        echo mysql_error() . "unable to update dbBookings table: " . $booking->get_id();
        return false;
    }
}