Untis import removes deleted substitutions

This commit is contained in:
L_DA 2020-10-10 09:00:14 +00:00
parent 3442e33d4e
commit 204695172f

View file

@ -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');
@ -248,4 +256,4 @@ class import_data extends \core\task\scheduled_task {
$this->read_class(); $this->read_class();
} }
} }