mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
- vilesci/stammdaten/auswertung_fhtw.php: RT punkte werden anhand Formel mit Gewichtung berechnet
- Spalte "offsetpunkte" in testtool.tbl_gebiet hinzugefügt, sodass berechnete Prozente immer positiv sind - RT-punkte ohne Physik entfernt
This commit is contained in:
+894
-889
File diff suppressed because it is too large
Load Diff
+13
-1
@@ -3449,6 +3449,18 @@ if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_projekttyp LIMIT 1"))
|
||||
echo '<br>fue.tbl_projekttyp hinzugefuegt.';
|
||||
}
|
||||
|
||||
// Add column offset to testtool.tbl_gebiet
|
||||
if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.tbl_gebiet LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE testtool.tbl_gebiet ADD COLUMN offsetpunkte smallint";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>testtool.tbl_gebiet: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>testtool.tbl_gebiet: Spalte offsetpunkte hinzugefuegt';
|
||||
}
|
||||
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -3689,7 +3701,7 @@ $tabellen=array(
|
||||
"testtool.tbl_ablauf_vorgaben" => array("ablauf_vorgaben_id","studiengang_kz","sprache","sprachwahl","content_id","insertamum","insertvon","updateamum", "updatevon"),
|
||||
"testtool.tbl_antwort" => array("antwort_id","pruefling_id","vorschlag_id"),
|
||||
"testtool.tbl_frage" => array("frage_id","kategorie_kurzbz","gebiet_id","level","nummer","demo","insertamum","insertvon","updateamum","updatevon","aktiv"),
|
||||
"testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","multipleresponse","kategorien","maxfragen","zufallfrage","zufallvorschlag","levelgleichverteilung","maxpunkte","insertamum", "insertvon", "updateamum", "updatevon", "level_start","level_sprung_auf","level_sprung_ab","antwortenprozeile","bezeichnung_mehrsprachig"),
|
||||
"testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","multipleresponse","kategorien","maxfragen","zufallfrage","zufallvorschlag","levelgleichverteilung","maxpunkte","insertamum", "insertvon", "updateamum", "updatevon", "level_start","level_sprung_auf","level_sprung_ab","antwortenprozeile","bezeichnung_mehrsprachig", "offsetpunkte"),
|
||||
"testtool.tbl_kategorie" => array("kategorie_kurzbz","gebiet_id"),
|
||||
"testtool.tbl_kriterien" => array("gebiet_id","kategorie_kurzbz","punkte","typ"),
|
||||
"testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","semester"),
|
||||
|
||||
@@ -1035,7 +1035,7 @@ function getMailEmpfaenger($studiengang_kz, $studienplan_id = null, $orgform_kur
|
||||
return false;
|
||||
}
|
||||
|
||||
$ergebnis = '';
|
||||
$ergebnis = array();
|
||||
$gebiet = array();
|
||||
$kategorie = array();
|
||||
$erg_kat = array();
|
||||
@@ -1222,6 +1222,7 @@ if (isset($_REQUEST['reihungstest']))
|
||||
tbl_studiengang.bezeichnung AS stg_bez,
|
||||
tbl_studienplan.orgform_kurzbz,
|
||||
tbl_gebiet.maxpunkte,
|
||||
tbl_gebiet.offsetpunkte,
|
||||
tbl_prestudentstatus.ausbildungssemester,
|
||||
tbl_ablauf.gewicht,
|
||||
tbl_ort.planbezeichnung AS raum,
|
||||
@@ -1313,6 +1314,7 @@ if (isset($_REQUEST['reihungstest']))
|
||||
AND studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
ORDER BY registriert DESC LIMIT 1
|
||||
)
|
||||
ORDER BY registriert DESC LIMIT 1
|
||||
)
|
||||
AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
|
||||
)
|
||||
@@ -1404,7 +1406,7 @@ if (isset($_REQUEST['reihungstest']))
|
||||
$query .= " ORDER BY nachname,
|
||||
vorname,
|
||||
person_id
|
||||
";//var_dump($query);
|
||||
";/*print_r($query);*/
|
||||
if (!($result = $db->db_query($query)))
|
||||
{
|
||||
die($db->db_last_error());
|
||||
@@ -1448,7 +1450,7 @@ if (isset($_REQUEST['reihungstest']))
|
||||
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->name = $row->gebiet;
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->punkte = (($row->punkte >= $row->maxpunkte) ? $row->maxpunkte : $row->punkte);
|
||||
if ($row->punkte == 0 && $row->punkte != '')
|
||||
/*if ($row->punkte == 0 && $row->punkte != '')
|
||||
{
|
||||
$prozent = '0';
|
||||
}
|
||||
@@ -1459,7 +1461,7 @@ if (isset($_REQUEST['reihungstest']))
|
||||
else
|
||||
{
|
||||
$prozent = ($row->punkte / $row->maxpunkte) * 100;
|
||||
}
|
||||
}*/
|
||||
|
||||
if ($row->punkte >= $row->maxpunkte)
|
||||
{
|
||||
@@ -1470,9 +1472,24 @@ if (isset($_REQUEST['reihungstest']))
|
||||
$punkte = $row->punkte;
|
||||
}
|
||||
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent = $prozent;
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent = null;
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->punkte = $punkte;
|
||||
|
||||
// Punkte berechnen
|
||||
if (isset($punkte))
|
||||
{
|
||||
if ($row->punkte >= $row->maxpunkte)
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent = 100;
|
||||
else
|
||||
{
|
||||
//offset zur Vermeidung negativer Prozentzahlen
|
||||
$punkte_positiv = $punkte + $row->offsetpunkte;
|
||||
$maxpunkte_positiv = $row->maxpunkte + $row->offsetpunkte;
|
||||
//Formel: Summe(Punkte/Max Punkte * Gewicht)
|
||||
$ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent = $maxpunkte_positiv > 0 ? $punkte_positiv / $maxpunkte_positiv * $row->gewicht * 100 : null;
|
||||
}
|
||||
}
|
||||
|
||||
// Bei Auswertungen ohne rt_id kann es vorkommen, dass Datensätze Doppelt sind
|
||||
// Bei der Summe darf ein Gebiet jedenfalls nur einmal summiert werden
|
||||
|
||||
@@ -1480,14 +1497,14 @@ if (isset($_REQUEST['reihungstest']))
|
||||
{
|
||||
$gebiete_arr[$row->prestudent_id][] = $row->gebiet_id;
|
||||
|
||||
// Gesamtpunkte mit Physik
|
||||
// Gesamtpunkte
|
||||
if (isset($ergebnis[$row->prestudent_id]->gesamt))
|
||||
{
|
||||
$ergebnis[$row->prestudent_id]->gesamt += $prozent * $row->gewicht;
|
||||
$ergebnis[$row->prestudent_id]->gesamt += $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ergebnis[$row->prestudent_id]->gesamt = $prozent * $row->gewicht;
|
||||
$ergebnis[$row->prestudent_id]->gesamt = $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent;
|
||||
}
|
||||
|
||||
if (isset($ergebnis[$row->prestudent_id]->gesamtpunkte))
|
||||
@@ -1499,8 +1516,20 @@ if (isset($_REQUEST['reihungstest']))
|
||||
$ergebnis[$row->prestudent_id]->gesamtpunkte = $punkte;
|
||||
}
|
||||
|
||||
if (isset($row->punkte))
|
||||
{
|
||||
if (isset($ergebnis[$row->prestudent_id]->gesamtgewicht))
|
||||
{
|
||||
$ergebnis[$row->prestudent_id]->gesamtgewicht += $row->gewicht;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ergebnis[$row->prestudent_id]->gesamtgewicht = $row->gewicht;
|
||||
}
|
||||
}
|
||||
|
||||
// Gesamtpunkte ohne Physik
|
||||
if ($row->gebiet_id != 10)
|
||||
/* if ($row->gebiet_id != 10)
|
||||
{
|
||||
if (isset($ergebnis[$row->prestudent_id]->gesamt_ohne_physik))
|
||||
{
|
||||
@@ -1519,10 +1548,17 @@ if (isset($_REQUEST['reihungstest']))
|
||||
{
|
||||
$ergebnis[$row->prestudent_id]->gesamtpunkte_ohne_physik = $punkte;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($ergebnis as $prestudentid => $erg)
|
||||
{
|
||||
//Berechnen Gesamtpunkte nach Formel: Summe(Punkte/Max Punkte * Gewicht)/Summe(Gewichte) * 100
|
||||
if (isset($erg->gesamtgewicht) && $erg->gesamtgewicht > 0)
|
||||
$erg->gesamt /= $erg->gesamtgewicht;
|
||||
}
|
||||
|
||||
$ergb = $ergebnis;
|
||||
}
|
||||
|
||||
@@ -1567,7 +1603,7 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls')
|
||||
// Eigener TItel bei Bachelor-Studiengängen
|
||||
if (isset($studiengangObj) && $studiengangObj->typ == 'b')
|
||||
{
|
||||
$worksheet =& $workbook->addWorksheet("Auswertung MIT Physik " . ($titel_studiengang ? $stg_arr[$_REQUEST['studiengang']] : '') . ($titel_semester ? ' ' . $semester . '.Semester' : ''));
|
||||
$worksheet =& $workbook->addWorksheet("Auswertung " . ($titel_studiengang ? $stg_arr[$_REQUEST['studiengang']] : '') . ($titel_semester ? ' ' . $semester . '.Semester' : ''));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1756,7 +1792,7 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls')
|
||||
}
|
||||
|
||||
// Worksheet ohne Physik nur für Bachelor-Studiengänge
|
||||
if (isset($studiengangObj) && $studiengangObj->typ == 'b')
|
||||
/*if (isset($studiengangObj) && $studiengangObj->typ == 'b')
|
||||
{
|
||||
$worksheetOhnePhsyik =& $workbook->addWorksheet("Auswertung OHNE Physik " . ($titel_studiengang ? $stg_arr[$_REQUEST['studiengang']] : '') . ($titel_semester ? ' ' . $semester . '.Semester' : ''));
|
||||
$worksheetOhnePhsyik->setInputEncoding('utf-8');
|
||||
@@ -1912,7 +1948,7 @@ if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls')
|
||||
{
|
||||
$worksheetOhnePhsyik->setColumn($i, $i, $breite);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
if (isset($erg_kat) && count($erg_kat) > 0)
|
||||
{
|
||||
@@ -2263,7 +2299,7 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#row_"+prestudent_id).find("td.punkte, td.col_gesamtpunkte_ohne_physik").each (function()
|
||||
$("#row_"+prestudent_id).find("td.punkte, td.col_gesamtpunkte").each (function()
|
||||
{
|
||||
$(this).html("");
|
||||
});
|
||||
@@ -2434,7 +2470,7 @@ else
|
||||
function checkAllWithResult()
|
||||
{
|
||||
// Schleife ueber die einzelnen Elemente
|
||||
$(".col_gesamtpunkte_ohne_physik").each(function()
|
||||
$(".col_gesamtpunkte").each(function()
|
||||
{
|
||||
if ($(this).text().trim() !== "")
|
||||
{
|
||||
@@ -2469,20 +2505,10 @@ else
|
||||
{
|
||||
$("input.prestudentCheckbox:checked").each(function()
|
||||
{
|
||||
if ($("#uebertragenOptionPhysik:checked").length === 1)
|
||||
{
|
||||
prestudentPunkteArr.push({
|
||||
prestudent_id: $(this).attr("name"),
|
||||
ergebnis: $(this).parents("tr").find(".erg_gesamt_mit_physik").text()
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
prestudentPunkteArr.push({
|
||||
prestudent_id: $(this).attr("name"),
|
||||
ergebnis: $(this).parents("tr").find(".erg_gesamt_ohne_physik").text()
|
||||
});
|
||||
}
|
||||
prestudentPunkteArr.push({
|
||||
prestudent_id: $(this).attr("name"),
|
||||
ergebnis: $(this).parents("tr").find(".erg_gesamt").text()
|
||||
});
|
||||
});
|
||||
|
||||
$(".loaderIcon").show();
|
||||
@@ -2814,9 +2840,6 @@ else
|
||||
echo ' <form class="form" role="form">
|
||||
<div class="panel panel-default" id="uebertragenOptions" style="display: none">
|
||||
<div class="panel-body">
|
||||
<div class="checkbox">
|
||||
<label><input type="checkbox" id="uebertragenOptionPhysik" value="">Mit Physik</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label><input type="checkbox" id="uebertragenOptionGesamtpunkte" value="">"Gesamtpunkte" und "Reihungsverfahren absolviert" setzen</label>
|
||||
</div>
|
||||
@@ -2903,8 +2926,7 @@ else
|
||||
<th title="Priorität" rowspan="2" style="width: 20px">Prio</th>
|
||||
<th rowspan="2">Raum</th>
|
||||
<th title="Teilgenommen" rowspan="2">TG</th>
|
||||
<th colspan="2">Gesamt mit Physik</th>
|
||||
<th colspan="2">Gesamt ohne Physik</th>';
|
||||
<th colspan="2">Gesamt</th>';
|
||||
|
||||
foreach ($gebiet AS $gbt)
|
||||
{
|
||||
@@ -2913,8 +2935,6 @@ else
|
||||
|
||||
echo '</tr>
|
||||
<tr>
|
||||
<th><small>Punkte</small></th>
|
||||
<th><small>Prozent</small></th>
|
||||
<th><small>Punkte</small></th>
|
||||
<th><small>Prozent</small></th>';
|
||||
|
||||
@@ -2973,25 +2993,25 @@ else
|
||||
echo ' <span class=""><b>' . ($erg->gesamtpunkte != '' ? number_format($erg->gesamtpunkte, 2, ',', ' ') : '') . '</b></span>';
|
||||
}
|
||||
echo ' </td>';
|
||||
if (!isset($erg->gesamtpunkte_ohne_physik))
|
||||
/* if (!isset($erg->gesamtpunkte_ohne_physik))
|
||||
{
|
||||
$erg->gesamtpunkte_ohne_physik = '';
|
||||
}
|
||||
if (!isset($erg->gesamt_ohne_physik))
|
||||
}*/
|
||||
/* if (!isset($erg->gesamt_ohne_physik))
|
||||
{
|
||||
$erg->gesamt_ohne_physik = '';
|
||||
}
|
||||
echo ' <td style="text-align: right; padding-right: 3px" class="punkte '.$inaktiv.'" nowrap>
|
||||
}*/
|
||||
echo ' <td style="text-align: right; padding-right: 3px" class="col_gesamtpunkte punkte '.$inaktiv.'" nowrap>
|
||||
<b>' . ($erg->gesamt != '' ? number_format($erg->gesamt, 2, ',', ' ') : '') . '</b>
|
||||
<span class="erg_gesamt_mit_physik" style="display: none">'.$erg->gesamt.'</span>
|
||||
<span class="erg_gesamt" style="display: none">'.$erg->gesamt.'</span>
|
||||
</td>';
|
||||
echo ' <td style="text-align: right; padding-right: 3px" class="col_gesamtpunkte_ohne_physik '.$inaktiv.'" nowrap>
|
||||
/* echo ' <td style="text-align: right; padding-right: 3px" class="col_gesamtpunkte_ohne_physik '.$inaktiv.'" nowrap>
|
||||
<b>' . ($erg->gesamtpunkte_ohne_physik != '' ? number_format($erg->gesamtpunkte_ohne_physik, 2, ',', ' ') : '') . '</b>
|
||||
</td>';
|
||||
echo ' <td style="text-align: right; padding-right: 3px" class="punkte '.$inaktiv.'" nowrap>
|
||||
</td>';*/
|
||||
/* echo ' <td style="text-align: right; padding-right: 3px" class="punkte '.$inaktiv.'" nowrap>
|
||||
<b>' . ($erg->gesamt_ohne_physik != '' ? number_format($erg->gesamt_ohne_physik, 2, ',', ' ') : '') . '</b>
|
||||
<span class="erg_gesamt_ohne_physik" style="display: none">'.$erg->gesamt_ohne_physik.'</span>
|
||||
</td>';
|
||||
</td>';*/
|
||||
foreach ($gebiet AS $gbt)
|
||||
{
|
||||
if (isset($erg->gebiet[$gbt->gebiet_id]))
|
||||
|
||||
Reference in New Issue
Block a user