19 declare(strict_types=1);
35 $this->db = $DIC->database();
36 $this->cal_entry_id = $a_cal_entry_id;
45 $query =
"SELECT cat_id FROM cal_cat_assignments " .
46 "WHERE cal_id = " .
$ilDB->quote($a_cal_id,
'integer') .
" ";
50 $cat_ids[] = (
int) $row->cat_id;
57 if (count($cats = self::_lookupCategories($a_cal_id))) {
72 $query =
"SELECT * FROM cal_cat_assignments " .
73 "WHERE " .
$ilDB->in(
'cal_id', $a_cal_ids,
false,
'integer');
77 $map[(
int) $row->cal_id] = (
int) $row->cat_id;
92 $query =
"SELECT * FROM cal_cat_assignments " .
93 "WHERE " .
$ilDB->in(
'cat_id', $a_cat_id,
false,
'integer');
98 $cal_ids[] = (
int) $row->cal_id;
111 $ilDB = $DIC[
'ilDB'];
112 $query =
'SELECT COUNT(*) num FROM cal_cat_assignments ' .
113 'WHERE ' .
$ilDB->in(
'cat_id', $a_cat_ids,
false,
'integer');
116 return (
int) $row->num;
129 $ilDB = $DIC[
'ilDB'];
130 $query =
"SELECT ce.cal_id FROM cal_categories cc " .
131 "JOIN cal_cat_assignments cca ON cc.cat_id = cca.cat_id " .
132 "JOIN cal_entries ce ON cca.cal_id = ce.cal_id " .
133 "WHERE auto_generated = 1 " .
134 "AND obj_id = " .
$ilDB->quote($a_obj_id,
'integer') .
" ";
138 $apps[] = (
int) $row->cal_id;
150 $ilDB = $DIC[
'ilDB'];
151 $query =
"DELETE FROM cal_cat_assignments " .
152 "WHERE cal_id = " .
$ilDB->quote($a_app_id,
'integer') .
" ";
167 $ilDB = $DIC[
'ilDB'];
168 $query =
"DELETE FROM cal_cat_assignments " .
169 "WHERE cat_id = " .
$ilDB->quote($a_cat_id,
'integer') .
" ";
178 return $this->assignments[0] ??
null;
191 $query =
"INSERT INTO cal_cat_assignments (cal_id,cat_id) " .
193 $this->db->quote($this->cal_entry_id,
'integer') .
", " .
194 $this->db->quote($a_cal_cat_id,
'integer') .
" " .
196 $res = $this->db->manipulate($query);
197 $this->assignments[] = $a_cal_cat_id;
202 $query =
"DELETE FROM cal_cat_assignments " .
203 "WHERE cal_id = " . $this->db->quote($this->cal_entry_id,
'integer') .
", " .
204 "AND cat_id = " . $this->db->quote($a_cat_id,
'integer') .
" ";
205 $res = $this->db->manipulate($query);
207 if (($key = array_search($a_cat_id, $this->assignments)) !==
false) {
208 unset($this->assignments[$key]);
214 $query =
"DELETE FROM cal_cat_assignments " .
215 "WHERE cal_id = " . $this->db->quote($this->cal_entry_id,
'integer') .
" ";
216 $res = $this->db->manipulate($query);
221 $query =
"SELECT * FROM cal_cat_assignments " .
222 "WHERE cal_id = " . $this->db->quote($this->cal_entry_id,
'integer') .
" ";
224 $res = $this->db->query($query);
226 $this->assignments[] = (
int) $row->cat_id;
static _lookupCategory(int $a_cal_id)
__construct(int $a_cal_entry_id)
static _getAppointmentCalendars(array $a_cal_ids)
deleteAssignment(int $a_cat_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static _deleteByAppointmentId(int $a_app_id)
Delete appointment assignment.
static _lookupCategories(int $a_cal_id)
addAssignment(int $a_cal_cat_id)
static _getAssignedAppointments(array $a_cat_id)
Get assigned apointments.
static _deleteByCategoryId(int $a_cat_id)
Delete assignments by category id public.
static lookupNumberOfAssignedAppointments(array $a_cat_ids)
static _getAutoGeneratedAppointmentsByObjId(int $a_obj_id)
get automatic generated appointments of category
getFirstAssignment()
get first assignment