Files
WKVS/scripts/cache/cache-creators/regenerate-noten-cache.php

57 lines
3.1 KiB
PHP

<?php
function regenerate_noten_cache($mysqli, $tableNotenBezeichnungen, $baseDir) {
if (!function_exists('db_select')) require $baseDir . '/../scripts/db/db-functions.php';
$notenRechnerCache = new NotenRechner();
$all = db_select($mysqli, $tableNotenBezeichnungen, "id, default_value, pro_geraet, geraete_json, anzahl_laeufe_json, berechnung, nullstellen, zeige_in_rank_live, display_string");
$ascArrayDefaultValues = array_column($all, 'default_value', 'id');
$ascArrayProGeraet = array_column($all, 'pro_geraet', 'id');
$ascArrayRechnungen = array_column($all, 'berechnung', 'id');
$indexedNullstellen = array_column($all, 'nullstellen', 'id');
$ascPrefixDisplay = array_column($all, 'display_string', 'id');
$ascArrayGeraeteJSON = array_column($all, 'geraete_json', 'id');
foreach ($ascArrayGeraeteJSON as $key => $val) {
$ascArrayGeraeteJSON[$key] = json_decode((string)$val, true);
}
$ascArrayAnzahlLaeufeJSON = array_column($all, 'anzahl_laeufe_json', 'id');
foreach ($ascArrayAnzahlLaeufeJSON as $key => $val) {
$ascArrayAnzahlLaeufeJSON[$key] = json_decode((string)$val, true) ?? [];
}
$export = "<?php\n\nreturn [\n";
$export .= " 'default_values' => " . var_export($ascArrayDefaultValues, true) . ",\n";
$export .= " 'pro_geraet' => " . var_export($ascArrayProGeraet, true) . ",\n";
$export .= " 'geraete_json' => " . var_export($ascArrayGeraeteJSON, true) . ",\n";
$export .= " 'anzahl_laeufe_json' => " . var_export($ascArrayAnzahlLaeufeJSON, true) . ",\n";
$export .= " 'rechnungen' => " . var_export($ascArrayRechnungen, true) . ",\n";
$export .= " 'nullstellen' => " . var_export($indexedNullstellen, true) . "\n";
$export .= " ];\n";
file_put_contents($baseDir . '/../scripts/cache/noten-config-calculating-cache.php', $export);
$ascArrayStoreRuns = [];
$ascArrayStoreGeraete = [];
foreach ($ascArrayRechnungen as $id => $calc) {
$res = $notenRechnerCache->getStoreGeraetRun($calc);
$ascArrayStoreRuns[$id] = $res['run_num'] ?? 'A';
$ascArrayStoreGeraete[$id] = $res['geraet_id'] ?? 'A';
}
$exportDisplay = "<?php\n\nreturn [\n";
$exportDisplay .= " 'default_values' => " . var_export($ascArrayDefaultValues, true) . ",\n";
$exportDisplay .= " 'pro_geraet' => " . var_export($ascArrayProGeraet, true) . ",\n";
$exportDisplay .= " 'geraete_json' => " . var_export($ascArrayGeraeteJSON, true) . ",\n";
$exportDisplay .= " 'anzahl_laeufe_json' => " . var_export($ascArrayAnzahlLaeufeJSON, true) . ",\n";
$exportDisplay .= " 'nullstellen' => " . var_export($indexedNullstellen, true) . ",\n";
$exportDisplay .= " 'display_string' => " . var_export($ascPrefixDisplay, true) . ",\n";
$exportDisplay .= " 'store_run' => " . var_export($ascArrayStoreRuns, true) . ",\n";
$exportDisplay .= " 'store_geraet' => " . var_export($ascArrayStoreGeraete, true) . "\n";
$exportDisplay .= "];\n";
file_put_contents($baseDir . '/../scripts/cache/noten-config-display-cache.php', $exportDisplay);
}