19declare(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"],
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"]
131 "SELECT * FROM svy_finished" .
132 " WHERE survey_fi = %s AND anonymous_id = %s AND appr_id = %s",
133 array(
'integer',
'text',
'integer'),
134 array($survey_id, $code, $appr_id)
141 "SELECT * FROM svy_finished" .
142 " WHERE survey_fi = %s AND user_fi = %s AND appr_id = %s",
143 array(
'integer',
'integer',
'integer'),
144 array($survey_id,
$user_id, $appr_id)
147 if ($rec = $db->fetchAssoc($set)) {
148 return (
int) $rec[
"finished_id"];
159 "SELECT * FROM svy_finished" .
160 " WHERE finished_id = %s ",
164 if ($rec = $db->fetchAssoc($set)) {
165 return (
int) $rec[
"state"];
167 return self::NOT_STARTED;
180 $sql =
"SELECT * FROM svy_finished" .
181 " WHERE survey_fi = " . $db->quote($survey_id,
"integer");
184 $sql .=
" AND (user_fi = " . $db->quote(
$user_id,
"integer");
186 $sql .=
" OR anonymous_id = " . $db->quote($code,
"text");
195 $sql .=
" AND anonymous_id = " . $db->quote($code,
"text");
197 $set = $db->query($sql);
199 while ($row = $db->fetchAssoc($set)) {
200 $runs[$row[
"finished_id"]] = $this->data->run($survey_id,
$user_id)
201 ->withId((
int) $row[
"finished_id"])
202 ->withFinished((
bool) $row[
"state"])
203 ->withCode((
string) $row[
"anonymous_id"])
204 ->withTimestamp((
int) $row[
"tstamp"])
205 ->withAppraiseeId((
int) $row[
"appr_id"])
206 ->withLastPage((
int) $row[
"lastpage"]);
216 $sql =
"SELECT * FROM svy_finished" .
217 " WHERE finished_id = " . $db->quote($run_id,
"integer");
218 $set = $db->query($sql);
219 while ($row = $db->fetchAssoc($set)) {
220 return $this->data->run((
int) $row[
"survey_fi"], (
int) $row[
"user_fi"])
221 ->
withId((
int) $row[
"finished_id"])
222 ->withFinished((
bool) $row[
"state"])
223 ->withCode((
string) $row[
"anonymous_id"])
224 ->withTimestamp((
int) $row[
"tstamp"])
225 ->withAppraiseeId((
int) $row[
"appr_id"])
226 ->withLastPage((
int) $row[
"lastpage"]);
240 int $appraisee_id = 0
244 $next_id = $db->nextId(
'svy_finished');
245 $affectedRows = $db->manipulateF(
246 "INSERT INTO svy_finished (finished_id, survey_fi, user_fi, anonymous_id, state, tstamp, appr_id) " .
247 "VALUES (%s, %s, %s, %s, %s, %s, %s)",
248 array(
'integer',
'integer',
'integer',
'text',
'text',
'integer',
'integer'),
249 array($next_id, $survey_id,
$user_id, $code, 0, time(), $appraisee_id)
258 public function addTime(
int $run_id,
int $time,
int $first_question): void
261 $id = $db->nextId(
'svy_times');
263 "INSERT INTO svy_times (id, finished_fi, entered_page, left_page, first_question) VALUES (%s, %s, %s, %s,%s)",
264 array(
'integer',
'integer',
'integer',
'integer',
'integer'),
265 array(
$id, $run_id, $time,
null, $first_question)
269 public function updateTime(
int $run_id,
int $time,
int $entered_time): void
273 "UPDATE svy_times SET left_page = %s WHERE finished_fi = %s AND entered_page = %s",
274 array(
'integer',
'integer',
'integer'),
275 array($time, $run_id, $entered_time)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
getUnfinishedSurveysOfUser(int $user_id)
Get all unfinished surveys of a user.
updateTime(int $run_id, int $time, int $entered_time)
InternalDataService $data
getCurrentRunId(int $survey_id, int $user_id, string $code="", int $appr_id=0)
getFinishedSurveysOfUser(int $user_id)
Get all finished surveys of a user.
getFinishedAppraiseesForRater(int $rater_id)
__construct(InternalDataService $data, ?\ilDBInterface $db=null)
const STARTED_NOT_FINISHED
addTime(int $run_id, int $time, int $first_question)
Add time record.
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.
Survey internal data service.
fetchAssoc(ilDBStatement $statement)
queryF(string $query, array $types, array $values)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...