Untis import removes deleted substitutions
This commit is contained in:
parent
3442e33d4e
commit
204695172f
1 changed files with 16 additions and 8 deletions
|
@ -69,21 +69,26 @@ class import_data extends \core\task\scheduled_task {
|
||||||
$filename = get_config('timetable', 'fname_substitution');
|
$filename = get_config('timetable', 'fname_substitution');
|
||||||
|
|
||||||
if (!$filename || !file_exists($filename)) return;
|
if (!$filename || !file_exists($filename)) return;
|
||||||
if (($handle = fopen($filename, 'r')) == FALSE) return;
|
if (($handle = fopen($filename, 'r')) == FALSE) return;
|
||||||
$hash = hash_file('md5', $filename);
|
$hash = hash_file('md5', $filename);
|
||||||
if ($hash == $filehash) return;
|
if ($hash == $filehash) return;
|
||||||
|
/*
|
||||||
$max_id = 0;
|
$max_id = 0;
|
||||||
$max_changetime = 0;
|
$max_changetime = 0;
|
||||||
if ($result = $DB->get_record_sql("select max(id), max(changetime) from {$CFG->prefix}timetable_substitution")) {
|
if ($result = $DB->get_record_sql("select max(id), max(changetime) from {$CFG->prefix}timetable_substitution")) {
|
||||||
$max_id = $result->{'max(id)'};
|
$max_id = $result->{'max(id)'};
|
||||||
$max_changetime = $result->{'max(changetime)'};
|
$max_changetime = $result->{'max(changetime)'};
|
||||||
}
|
}
|
||||||
echo "Max id = $max_id\n";
|
echo "Max id = $max_id\n";
|
||||||
echo "Max changetime = $max_changetime\n";
|
echo "Max changetime = $max_changetime\n";
|
||||||
|
*/
|
||||||
try {
|
try {
|
||||||
$transaction = $DB->start_delegated_transaction();
|
$transaction = $DB->start_delegated_transaction();
|
||||||
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
|
echo "before delete\n";
|
||||||
$dataobject = (object)array('id' => $data[0],
|
$DB->delete_records_select("timetable_substitution", "id>0");
|
||||||
|
echo "after delete\n";
|
||||||
|
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
|
||||||
|
$dataobject = (object)array('id' => $data[0],
|
||||||
'date' => $data[1],
|
'date' => $data[1],
|
||||||
'period' => $data[2],
|
'period' => $data[2],
|
||||||
'absence' => $data[3],
|
'absence' => $data[3],
|
||||||
|
@ -104,19 +109,22 @@ class import_data extends \core\task\scheduled_task {
|
||||||
'classb' => utf8_encode($data[18]),
|
'classb' => utf8_encode($data[18]),
|
||||||
'substitutiontype' => $data[19],
|
'substitutiontype' => $data[19],
|
||||||
'changetime' => $data[20],
|
'changetime' => $data[20],
|
||||||
'unknown' => $data[21]);
|
'unknown' => $data[21]);
|
||||||
//echo var_dump($dataobject);
|
//echo var_dump($dataobject);
|
||||||
foreach (get_object_vars($dataobject) as $key => $value) {
|
foreach (get_object_vars($dataobject) as $key => $value) {
|
||||||
if ($value=='') unset($dataobject->{$key});
|
if ($value=='') unset($dataobject->{$key});
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if ($dataobject->id > $max_id) {
|
if ($dataobject->id > $max_id) {
|
||||||
$DB->insert_record_raw("timetable_substitution", $dataobject,false, false, true);
|
$DB->insert_record_raw("timetable_substitution", $dataobject,false, false, true);
|
||||||
echo "Object (id={$data[0]}) inserted\n";
|
echo "Object (id={$data[0]}) inserted\n";
|
||||||
} elseif ($dataobject->changetime >= $max_changetime) {
|
} elseif ($dataobject->changetime >= $max_changetime) {
|
||||||
$DB->update_record("timetable_substitution", $dataobject);
|
$DB->update_record("timetable_substitution", $dataobject);
|
||||||
echo "Object (id={$data[0]}) updated\n";
|
echo "Object (id={$data[0]}) updated\n";
|
||||||
}
|
}
|
||||||
}
|
*/
|
||||||
|
$DB->insert_record_raw("timetable_substitution", $dataobject,false, false, true);
|
||||||
|
}
|
||||||
$transaction->allow_commit();
|
$transaction->allow_commit();
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
set_config('filehash_substitution', $hash, 'timetable');
|
set_config('filehash_substitution', $hash, 'timetable');
|
||||||
|
|
Loading…
Add table
Reference in a new issue