mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-05 14:19:27 +00:00
- Updated pruefling - getReihungstestPerson method to calculate RT results with new formula
- added offsetpoints to testtool.vw_auswertung_ablauf and vw_auswertung
This commit is contained in:
@@ -446,6 +446,8 @@ class pruefling extends basis_db
|
||||
if($this->db_num_rows($result)==0)
|
||||
return false;
|
||||
|
||||
$summeGewicht = 0;
|
||||
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
//wenn maxpunkte ueberschritten wurde -> 100%
|
||||
@@ -455,17 +457,19 @@ class pruefling extends basis_db
|
||||
$row->punkte = $row->maxpunkte;
|
||||
}
|
||||
else
|
||||
$prozent = ($row->punkte/$row->maxpunkte)*100;
|
||||
$prozent = (($row->punkte + $row->offsetpunkte)/($row->maxpunkte + $row->offsetpunkte))*100;
|
||||
|
||||
if($punkte)
|
||||
{
|
||||
$ergebnis +=$row->punkte;
|
||||
$ergebnis += $row->punkte;
|
||||
}
|
||||
|
||||
else
|
||||
$ergebnis+=$prozent*$row->gewicht;
|
||||
{
|
||||
$ergebnis += $prozent * $row->gewicht;
|
||||
$summeGewicht += $row->gewicht;
|
||||
}
|
||||
}
|
||||
return $ergebnis;
|
||||
return $summeGewicht > 0 ? $ergebnis/$summeGewicht : $ergebnis;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -3460,6 +3460,118 @@ if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.tbl_gebiet LIMIT
|
||||
echo '<br>testtool.tbl_gebiet: Spalte offsetpunkte hinzugefuegt';
|
||||
}
|
||||
|
||||
// ADD COLUMN offset to testtool.vw_auswertung_ablauf
|
||||
if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.vw_auswertung_ablauf LIMIT 1"))
|
||||
{
|
||||
// CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf
|
||||
$qry = '
|
||||
CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf AS (
|
||||
SELECT
|
||||
tbl_gebiet.gebiet_id,
|
||||
tbl_gebiet.bezeichnung AS gebiet,
|
||||
tbl_ablauf.reihung,
|
||||
tbl_gebiet.maxpunkte,
|
||||
tbl_pruefling.pruefling_id,
|
||||
tbl_pruefling.prestudent_id,
|
||||
tbl_person.vorname,
|
||||
tbl_person.nachname,
|
||||
tbl_person.gebdatum,
|
||||
tbl_person.geschlecht,
|
||||
tbl_pruefling.semester,
|
||||
upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz,
|
||||
tbl_studiengang.bezeichnung AS stg_bez,
|
||||
tbl_pruefling.registriert,
|
||||
tbl_pruefling.idnachweis,
|
||||
( SELECT sum(tbl_vorschlag.punkte) AS sum
|
||||
FROM testtool.tbl_vorschlag
|
||||
JOIN testtool.tbl_antwort USING (vorschlag_id)
|
||||
JOIN testtool.tbl_frage USING (frage_id)
|
||||
WHERE tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
|
||||
) AS punkte,
|
||||
tbl_rt_person.rt_id AS reihungstest_id,
|
||||
tbl_ablauf.gewicht,
|
||||
tbl_studiengang.studiengang_kz,
|
||||
tbl_gebiet.offsetpunkte
|
||||
FROM
|
||||
testtool.tbl_pruefling
|
||||
JOIN testtool.tbl_ablauf ON tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz
|
||||
JOIN testtool.tbl_gebiet USING (gebiet_id)
|
||||
JOIN public.tbl_prestudent USING (prestudent_id)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
JOIN public.tbl_rt_person USING (person_id)
|
||||
JOIN lehre.tbl_studienplan ON tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id
|
||||
JOIN lehre.tbl_studienordnung ON tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id
|
||||
JOIN public.tbl_studiengang ON tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
|
||||
WHERE NOT (tbl_ablauf.gebiet_id IN
|
||||
(
|
||||
SELECT tbl_kategorie.gebiet_id
|
||||
FROM testtool.tbl_kategorie
|
||||
)
|
||||
) AND tbl_studienordnung.studiengang_kz = tbl_pruefling.studiengang_kz
|
||||
)';
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>testtool.vw_auswertung_ablauf: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>testtool.vw_auswertung_ablauf view created';
|
||||
}
|
||||
|
||||
// ADD COLUMN offset to testtool.vw_auswertung_ablauf
|
||||
if(!$result = @$db->db_query("SELECT offsetpunkte FROM testtool.vw_auswertung LIMIT 1"))
|
||||
{
|
||||
// CREATE OR REPLACE VIEW testtool.vw_auswertung_ablauf
|
||||
$qry = '
|
||||
CREATE OR REPLACE VIEW testtool.vw_auswertung AS
|
||||
SELECT
|
||||
tbl_gebiet.gebiet_id,
|
||||
tbl_gebiet.bezeichnung AS gebiet,
|
||||
tbl_gebiet.maxpunkte,
|
||||
tbl_pruefling.pruefling_id,
|
||||
tbl_pruefling.prestudent_id,
|
||||
tbl_person.vorname,
|
||||
tbl_person.nachname,
|
||||
tbl_person.gebdatum,
|
||||
tbl_person.geschlecht,
|
||||
tbl_pruefling.semester,
|
||||
upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz,
|
||||
tbl_studiengang.bezeichnung AS stg_bez,
|
||||
tbl_pruefling.registriert,
|
||||
tbl_pruefling.idnachweis,
|
||||
(
|
||||
SELECT
|
||||
sum(tbl_vorschlag.punkte) AS sum
|
||||
FROM
|
||||
testtool.tbl_vorschlag
|
||||
JOIN testtool.tbl_antwort USING (vorschlag_id)
|
||||
JOIN testtool.tbl_frage USING (frage_id)
|
||||
WHERE
|
||||
tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id
|
||||
AND tbl_frage.gebiet_id = tbl_gebiet.gebiet_id
|
||||
) AS punkte,
|
||||
tbl_rt_person.rt_id as reihungstest_id,
|
||||
tbl_ablauf.gewicht,
|
||||
tbl_person.person_id,
|
||||
tbl_gebiet.offsetpunkte
|
||||
FROM
|
||||
testtool.tbl_pruefling
|
||||
JOIN testtool.tbl_ablauf ON (tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz AND tbl_ablauf.semester = tbl_pruefling.semester)
|
||||
JOIN testtool.tbl_gebiet USING (gebiet_id)
|
||||
JOIN public.tbl_prestudent USING (prestudent_id)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
JOIN public.tbl_studiengang ON tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
|
||||
JOIN public.tbl_rt_person USING (person_id)
|
||||
JOIN lehre.tbl_studienplan ON (tbl_studienplan.studienplan_id = tbl_rt_person.studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung ON (tbl_studienordnung.studienordnung_id = tbl_studienplan.studienordnung_id)
|
||||
WHERE
|
||||
tbl_studienordnung.studiengang_kz = tbl_prestudent.studiengang_kz
|
||||
AND NOT (tbl_ablauf.gebiet_id IN ( SELECT tbl_kategorie.gebiet_id
|
||||
FROM testtool.tbl_kategorie));';
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>testtool.vw_auswertung: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>testtool.vw_auswertung view created';
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
Reference in New Issue
Block a user