Webservice update data created

This commit is contained in:
L_DA 2020-12-05 10:03:20 +00:00
parent da14cf4623
commit ae94d42fdf
9 changed files with 990 additions and 624 deletions

View file

@ -29,7 +29,8 @@ function lesson_in_lessons($obj, $array) {
$obj->teacher == $array[$n]->teacher &&
$obj->subject == $array[$n]->subject &&
$obj->class == $array[$n]->class &&
$obj->room == $array[$n]->room) return true;
$obj->room == $array[$n]->room &&
$obj->type == $array[$n]->type) return true;
}
return false;
}
@ -120,20 +121,23 @@ class timetable {
$sql = "$this->type = '$this->name' AND NOT lessonid=0 AND (mid(week, $this->week, 1) = '1')";
$result = $DB->get_records_select('timetable_lesson',$sql);
foreach ($result as $lesson) {
$lesson->type = "normal";
if (!lesson_in_lessons($lesson, $this->lessons[$lesson->day][$lesson->period]))
$this->lessons[$lesson->day][$lesson->period][] = new lesson($lesson);
}
$sql = "$this->type = '$this->name' AND lessonid=0 AND (mid(week, $this->week, 1) = '1')";
$result = $DB->get_records_select('timetable_lesson',$sql);
foreach ($result as $lesson) {
if (!lesson_in_lessons($lesson, $this->lessons_event[$lesson->day][$lesson->period]))
$this->lessons_event[$lesson->day][$lesson->period][] = new lesson($lesson);
$lesson->type = "event";
if (!lesson_in_lessons($lesson, $this->lessons[$lesson->day][$lesson->period]))
$this->lessons[$lesson->day][$lesson->period][] = new lesson($lesson);
}
$sql = "$this->type = '$this->name' and (mid(week, $this->week, 1) = 'x')";
$result = $DB->get_records_select('timetable_lesson',$sql);
foreach ($result as $lesson) {
if (!lesson_in_lessons($lesson, $this->lessons_canceled[$lesson->day][$lesson->period]))
$this->lessons_canceled[$lesson->day][$lesson->period][] = new lesson($lesson);
$lesson->type = "canceled";
if (!lesson_in_lessons($lesson, $this->lessons[$lesson->day][$lesson->period]))
$this->lessons[$lesson->day][$lesson->period][] = new lesson($lesson);
}
$day = new \DateTime($this->monday->format('Y-m-d\TH:i:sP'));
@ -144,12 +148,6 @@ class timetable {
foreach ($this->lessons[$i+1][$substitution->period] as $lesson) {
$lesson->process_substitution($substitution);
}
foreach ($this->lessons_canceled[$i+1][$substitution->period] as $lesson) {
$lesson->process_substitution($substitution);
}
foreach ($this->lessons_event[$i+1][$substitution->period] as $lesson) {
$lesson->process_substitution($substitution);
}
}
$types = array('teacher'=>'L', 'class'=>'K', 'room'=>'R');
@ -157,8 +155,8 @@ class timetable {
$result = $DB->get_records_select('timetable_absence',$sql);
foreach ($result as $absence) {
for ($j=$absence->startperiod; $j<=$absence->endperiod; $j++) {
foreach ($this->lessons_event[$i+1][$j] as $lesson) {
$lesson->process_absence($absence);
foreach ($this->lessons[$i+1][$j] as $lesson) {
if ($lesson->type == 'event') $lesson->process_absence($absence);
}
}
}
@ -168,7 +166,7 @@ class timetable {
for ($i=0; $i<$this->numdayweek; $i++) {
foreach($this->lessons[$i+1] as &$lessons) $lessons = collapse_lessons($lessons);
foreach($this->lessons_canceled[$i+1] as &$lessons) $lessons = collapse_lessons($lessons);
// not to be done for events???
}
if ($this->type == 'teacher') {
@ -191,10 +189,6 @@ class timetable {
for ($i=0; $i<$this->numdayweek; $i++) {
foreach($this->lessons[$i+1] as $period => $lessons)
if ($period > $maxperiod && count($lessons)) $maxperiod = $period;
foreach($this->lessons_canceled[$i+1] as $period => $lessons)
if ($period > $maxperiod && count($lessons)) $maxperiod = $period;
foreach($this->lessons_event[$i+1] as $period => $lessons)
if ($period > $maxperiod && count($lessons)) $maxperiod = $period;
}
return $maxperiod;
}
@ -226,40 +220,6 @@ class timetable {
$days[$day] = array();
$days[$day]['substitutionold'] = "";
$days[$day]['lessons'] = array();
foreach ($this->lessons_event[$day+1][$period+1] as $lesson) {
$mylesson = array();
$mylesson['class'] = $lesson->class;
$mylesson['teacher'] = $lesson->teacher;
$mylesson['room'] = $lesson->room;
$mylesson['subject'] = $lesson->subject;
$mylesson['classa'] = $lesson->classa;
$mylesson['teachera'] = $lesson->teachera;
$mylesson['rooma'] = $lesson->rooma;
$mylesson['subjecta'] = $lesson->subjecta;
$mylesson['classb'] = property_exists($lesson,'classb') ? $lesson->classb : null;
$mylesson['teacherb'] = property_exists($lesson,'teacherb') ? $lesson->teacherb : null;
$mylesson['roomb'] = property_exists($lesson,'roomb') ? $lesson->roomb : null;
$mylesson['subjectb'] = property_exists($lesson,'subjectb') ? $lesson->subjectb : null;
$mylesson['subjectchanged'] = $lesson->subjectchanged;
$mylesson['teacherchanged'] = $lesson->teacherchanged;
$mylesson['classchanged'] = $lesson->classchanged;
$mylesson['roomchanged'] = $lesson->roomchanged;
$mylesson['substitution'] = $lesson->substitution;
$mylesson['cancel'] = "";
$mylesson['cancel4me'] = "";
$mylesson['event'] = $lesson->reason ? $lesson->reason : "Event";
$mylesson['status'] = "1";
$mylesson['flag'] = "1";
$mylesson['text'] = $lesson->text;
$mylesson['subtype'] = Array();
if ($lesson->type) {
for ($i=0; $i<32; $i++) {
if ($lesson->type & (1<<$i)) $mylesson['subtype'][] = $i+1;
}
}
$days[$day]['substitutionold'] .= $lesson->text;
$days[$day]['lessons'][] = $mylesson;
}
foreach ($this->lessons[$day+1][$period+1] as $lesson) {
$mylesson = array();
$mylesson['class'] = $lesson->class;
@ -286,52 +246,25 @@ class timetable {
$mylesson['flag'] = "";
$mylesson['text'] = $lesson->text;
$mylesson['subtype'] = Array();
if ($lesson->type) {
if ($lesson->subtype) {
for ($i=0; $i<32; $i++) {
if ($lesson->type & (1<<$i)) $mylesson['subtype'][] = $i+1;
if ($lesson->subtype & (1<<$i)) $mylesson['subtype'][] = $i+1;
}
}
$days[$day]['substitutionold'] .= $lesson->text;
$days[$day]['lessons'][] = $mylesson;
}
foreach ($this->lessons_canceled[$day+1][$period+1] as $lesson) {
$mylesson = array();
$mylesson['class'] = $lesson->class;
$mylesson['teacher'] = $lesson->teacher;
$mylesson['room'] = $lesson->room;
$mylesson['subject'] = $lesson->subject;
$mylesson['classa'] = $lesson->classa;
$mylesson['teachera'] = $lesson->teachera;
$mylesson['rooma'] = $lesson->rooma;
$mylesson['subjecta'] = $lesson->subjecta;
$mylesson['classb'] = property_exists($lesson,'classb') ? $lesson->classb : null;
$mylesson['teacherb'] = property_exists($lesson,'teacherb') ? $lesson->teacherb : null;
$mylesson['roomb'] = property_exists($lesson,'roomb') ? $lesson->roomb : null;
$mylesson['subjectb'] = property_exists($lesson,'subjectb') ? $lesson->subjectb : null;
$mylesson['substitution'] = $lesson->substitution;
$mylesson['cancel'] = "1";
$mylesson['cancel4me'] = "";
if (($lesson->teacherchanged && $this->type == 'teacher') ||
($lesson->classchanged && $this->type == 'class') ||
($lesson->roomchanged && $this->type == 'room')) $mylesson['cancel4me'] = "cancel4me";
$mylesson['subjectchanged'] = $lesson->subjectchanged;
$mylesson['teacherchanged'] = $lesson->teacherchanged;
$mylesson['classchanged'] = $lesson->classchanged;
$mylesson['roomchanged'] = $lesson->roomchanged;
#if ((property_exists($lesson,'teacherb') && $this->type == 'teacher') ||
# (property_exists($lesson,'classb') && $this->type == 'class') ||
# (property_exists($lesson,'roomb') && $this->type == 'room')) $mylesson['cancel4me'] = "cancel4me";
$mylesson['event'] = "";
$mylesson['status'] = "1";
$mylesson['flag'] = "1"; // status und flag werden vertauscht (im Template bzw. extern-lib.php
$mylesson['text'] = $lesson->text;
$mylesson['subtype'] = Array();
if ($lesson->type) {
for ($i=0; $i<32; $i++) {
if ($lesson->type & (1<<$i)) $mylesson['subtype'][] = $i+1;
}
if ($lesson->type == 'event') {
$mylesson['event'] = $lesson->reason ? $lesson->reason : "Event";
$mylesson['status'] = "1";
$mylesson['flag'] = "1";
} elseif ($lesson->type == 'canceled') {
$mylesson['cancel'] = "1";
$mylesson['cancel4me'] = "";
if (($lesson->teacherchanged && $this->type == 'teacher') ||
($lesson->classchanged && $this->type == 'class') ||
($lesson->roomchanged && $this->type == 'room')) $mylesson['cancel4me'] = "cancel4me";
$mylesson['status'] = "1";
$mylesson['flag'] = "1"; // status und flag werden vertauscht (im Template bzw. extern-lib.php
}
$days[$day]['substitutionold'] .= $lesson->text;
$days[$day]['lessons'][] = $mylesson;
}
}