3 declare(strict_types=1);
37 protected \ilDBInterface
$db;
47 $this->db = (is_null($db))
63 "SELECT survey_fi FROM svy_finished " .
64 " WHERE user_fi = %s AND state = %s",
65 [
"integer",
"integer"],
69 while ($rec = $db->fetchAssoc($set)) {
70 $items[] = (
int) $rec[
"survey_fi"];
85 "SELECT survey_fi FROM svy_finished " .
86 " WHERE user_fi = %s AND state = %s",
87 [
"integer",
"integer"],
91 while ($rec = $db->fetchAssoc($set)) {
92 $items[] = (
int) $rec[
"survey_fi"];
107 "SELECT survey_fi, appr_id FROM svy_finished " .
108 " WHERE user_fi = %s AND state = %s",
109 [
"integer",
"integer"],
113 while ($rec = $db->fetchAssoc($set)) {
115 "survey_id" => (
int) $rec[
"survey_fi"],
116 "appr_id" => (
int) $rec[
"appr_id"]
132 "SELECT * FROM svy_finished" .
133 " WHERE survey_fi = %s AND anonymous_id = %s AND appr_id = %s",
134 array(
'integer',
'text',
'integer'),
135 array($survey_id, $code, $appr_id)
139 "SELECT * FROM svy_finished" .
140 " WHERE survey_fi = %s AND user_fi = %s AND appr_id = %s",
141 array(
'integer',
'integer',
'integer'),
142 array($survey_id, $user_id, $appr_id)
145 if ($rec = $db->fetchAssoc($set)) {
146 return (
int) $rec[
"finished_id"];
157 "SELECT * FROM svy_finished" .
158 " WHERE finished_id = %s ",
162 if ($rec = $db->fetchAssoc($set)) {
163 return (
int) $rec[
"state"];
165 return self::NOT_STARTED;
178 $sql =
"SELECT * FROM svy_finished" .
179 " WHERE survey_fi = " . $db->
quote($survey_id,
"integer");
182 $sql .=
" AND (user_fi = " . $db->quote($user_id,
"integer");
184 $sql .=
" OR anonymous_id = " . $db->quote($code,
"text");
193 $sql .=
" AND anonymous_id = " . $db->quote($code,
"text");
195 $set = $db->query($sql);
197 while ($row = $db->fetchAssoc($set)) {
198 $runs[$row[
"finished_id"]] = $this->data->run($survey_id, $user_id)
199 ->withId((
int) $row[
"finished_id"])
200 ->withFinished((
bool) $row[
"state"])
201 ->withCode((
string) $row[
"anonymous_id"])
202 ->withTimestamp((
int) $row[
"tstamp"])
203 ->withAppraiseeId((
int) $row[
"appr_id"])
204 ->withLastPage((
int) $row[
"lastpage"]);
214 $sql =
"SELECT * FROM svy_finished" .
215 " WHERE finished_id = " . $db->
quote($run_id,
"integer");
216 $set = $db->query($sql);
217 while ($row = $db->fetchAssoc($set)) {
218 return $this->data->run((
int) $row[
"survey_fi"], (
int) $row[
"user_fi"])
219 ->withId((
int) $row[
"finished_id"])
220 ->withFinished((
bool) $row[
"state"])
221 ->withCode((
string) $row[
"anonymous_id"])
222 ->withTimestamp((
int) $row[
"tstamp"])
223 ->withAppraiseeId((
int) $row[
"appr_id"])
224 ->withLastPage((
int) $row[
"lastpage"]);
238 int $appraisee_id = 0
242 $next_id = $db->
nextId(
'svy_finished');
243 $affectedRows = $db->manipulateF(
244 "INSERT INTO svy_finished (finished_id, survey_fi, user_fi, anonymous_id, state, tstamp, appr_id) " .
245 "VALUES (%s, %s, %s, %s, %s, %s, %s)",
246 array(
'integer',
'integer',
'integer',
'text',
'text',
'integer',
'integer'),
247 array($next_id, $survey_id, $user_id, $code, 0, time(), $appraisee_id)
256 public function addTime(
int $run_id,
int $time,
int $first_question): void
259 $id = $db->nextId(
'svy_times');
261 "INSERT INTO svy_times (id, finished_fi, entered_page, left_page, first_question) VALUES (%s, %s, %s, %s,%s)",
262 array(
'integer',
'integer',
'integer',
'integer',
'integer'),
263 array(
$id, $run_id, $time, null, $first_question)
267 public function updateTime(
int $run_id,
int $time,
int $entered_time): void
271 "UPDATE svy_times SET left_page = %s WHERE finished_fi = %s AND entered_page = %s",
272 array(
'integer',
'integer',
'integer'),
273 array($time, $run_id, $entered_time)
manipulateF(string $query, array $types, array $values)
InternalDataService $data
getCurrentRunId(int $survey_id, int $user_id, string $code="", int $appr_id=0)
quote($value, string $type)
addTime(int $run_id, int $time, int $first_question)
Add time record.
nextId(string $table_name)
updateTime(int $run_id, int $time, int $entered_time)
queryF(string $query, array $types, array $values)
getRunsForUser(int $survey_id, int $user_id, string $code="")
add(int $survey_id, int $user_id, string $code, int $appraisee_id=0)
Add new run.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
getFinishedAppraiseesForRater(int $rater_id)
getUnfinishedSurveysOfUser(int $user_id)
Get all unfinished surveys of a user.
__construct(InternalDataService $data, \ilDBInterface $db=null)
getFinishedSurveysOfUser(int $user_id)
Get all finished surveys of a user.
Survey internal data service.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const STARTED_NOT_FINISHED