0"; $r = pg_query( $db, $q ); //syslog(LOG_WARNING,$q); if ( $r && pg_num_rows( $r ) && $f = pg_fetch_assoc( $r ) ) { $result = $f; } return $result; } public static function create($db, $data) { syslog(LOG_WARNING,'Booking::create($db, $data)'); $quote_id = $data["quote_id"]; $provider_booking_ref = $data["provider_booking_ref"]; $details = $data["details"]; $status = (int)$data["status"]; $memberId = (int)$data["member_id"]; $cost = (int)$data["cost"]; $q = "INSERT INTO booking(quote_id, provider_booking_ref, details, status, member_id, cost) VALUES (${quote_id}, '${provider_booking_ref}', '${details}', ${status}, ${memberId}, ${cost}) RETURNING id"; $log = [ 'message' => 'Insert Booking', 'data' =>$data, 'query' =>$q ]; Logger::debug($log); $r = pg_query($db, $q); if ($r && pg_num_rows($r) && $f=pg_fetch_assoc($r)) { return [self::getById($db, $f["id"]),NULL]; } syslog(LOG_WARNING,pg_last_error($db)); return [NULL,pg_last_error($db)]; } public static function update($db, $data) { syslog(LOG_WARNING,'Booking::update(): '.json_encode($data)); $q = self::buildUpdateSQL($data); syslog(LOG_WARNING,$q); $r = pg_query($db, $q); $log = [ 'affected_row' => pg_affected_rows($r), 'message' => 'Update Booking', 'data' =>$data, 'query' =>$q ]; Logger::debug($log); if ($r && pg_affected_rows($r)) { return array(self::getById($db, $data["id"]),NULL); } return array(NULL, pg_last_error($db)); } public static function buildUpdateSQL($data) { $q = "UPDATE booking SET"; foreach ($data as $key => $value) { if ($key != 'id') { if (is_int($value) || "now()" == $value) { $q .= " ${key}=${value},"; } else { $q .= " ${key}='".pg_escape_string($value)."',"; } } } $q = substr($q, 0, -1); $q .= " WHERE id=".$data["id"]; return $q; } public static function createDetails($db, $data) { syslog(LOG_WARNING,'Booking::createDetails($db, $data)'); $booking_id = $data['booking_id']; $action = $data['action']; $details = $data['details']; $message = $data['message']; $request = $data['request']; $q = "INSERT INTO booking_details(booking_id, action, details, message, request) VALUES (${booking_id}, '${action}', '${details}', '${message}', '${request}') RETURNING id"; $log = [ 'message' => 'Insert Booking Details', 'data' =>$data, 'query' =>$q ]; Logger::debug($log); $r = pg_query($db, $q); if ($r && pg_num_rows($r) && $f=pg_fetch_assoc($r)) { return [self::getDetailsById($db, $f["id"]),NULL]; } syslog(LOG_WARNING,pg_last_error($db)); return [NULL,pg_last_error($db)]; } public static function getDetailsById($db, $id) { syslog( LOG_WARNING, "Booking::getDetailsById(\$db, $id)" ); Logger::debug( "Booking::getDetailsById(\$db, $id)" ); $result = []; $q = "SELECT id, booking_id, action, details, message FROM booking_details WHERE id=${id}"; $r = pg_query( $db, $q ); if ( $r && pg_num_rows( $r ) && $f = pg_fetch_assoc( $r ) ) { $result = $f; } return $result; } public static function getDetailsByBookingId($db, $booking_id) { syslog( LOG_WARNING, "Booking::getDetailsByBookingId(\$db, $booking_id)" ); Logger::debug( "Booking::getDetailsByBookingId(\$db, $booking_id)" ); $result = []; $q = "SELECT id, booking_id, action, details, message FROM booking_details WHERE booking_id=${booking_id} ORDER BY id"; $r = pg_query( $db, $q ); $result = []; if ( $r && pg_num_rows( $r ) ) { while ($row = pg_fetch_assoc($r)) { array_push($result, $row); } } return $result; } public static function getMemberBySessionId($db, $sessionId) { syslog( LOG_WARNING, "Booking::getMemberBySessionId(\$db, $sessionId)" ); Logger::debug( "Booking::getMemberBySessionId(\$db, $sessionId)" ); $result = []; $q = "SELECT * FROM public.members_session WHERE session = ${sessionId} LIMIT 1 OFFSET 0"; $r = pg_query( $db, $q ); if ( $r && pg_num_rows( $r ) && $f = pg_fetch_assoc( $r )) { return [$f, NULL]; } syslog(LOG_WARNING,pg_last_error($db)); return [NULL,pg_last_error($db)]; } }