moved studienplanmatrix and bewerbtungstermine to core

This commit is contained in:
Stefan Puraner
2016-02-29 12:28:39 +01:00
parent a7c92ac7ce
commit 3b042657fd
4 changed files with 724 additions and 17 deletions
+245
View File
@@ -0,0 +1,245 @@
<?php
/* Copyright (C) 2015 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
/**
* Klasse Bewerbungstermin
* @create 10-01-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class bewerbungstermin extends basis_db
{
public $new; // boolean
public $result = array();
//Tabellenspalten
public $bewerbungstermin_id;// integer
public $studiengang_kz; //integer
public $studiensemester_kurzbz; // string
public $beginn; // timestamp
public $ende; // timestamp
public $nachfrist; // boolean
public $nachfrist_ende; // timestamp
public $anmerkung; // string
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
/**
* Konstruktor
* @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null)
*/
public function __construct($bewerbungstermin_id=null)
{
parent::__construct();
if(!is_null($bewerbungstermin_id))
$this->load($bewerbungstermin_id);
}
/**
* Laedt den Fördervertrag mit der ID $foerdervertrag_id
* @param $foerdervertrag_id ID des zu ladenden Fördervertrags
* @return true wenn ok, false im Fehlerfall
*/
public function load($bewerbungstermin_id)
{
if(!is_numeric($bewerbungstermin_id))
{
$this->errormsg = 'bewerbungstermin_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id, FHC_INTEGER, false);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->bewerbungstermin_id = $row->bewerbungstermin_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->nachfrist = $row->nachfrist;
$this->nachfrist_ende = $row->nachfrist_ende;
$this->anmerkung = $row->anmerkung;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
return true;
}
else
{
$this->errormsg = 'Bewerbungstermin existiert nicht';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des Bewerbungstermins';
return false;
}
}
/**
* Liefert alle Förderverträge
*/
public function getBewerbungstermine($studiengang_kz, $studiensemester_kurzbz=null, $sort=null)
{
$qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if($studiensemester_kurzbz!=null)
$qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($sort != null)
{
$qry.=" ORDER BY ".$sort;
}
$qry.=";";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new bewerbungstermin();
$obj->bewerbungstermin_id = $row->bewerbungstermin_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->nachfrist = $this->db_parse_bool($row->nachfrist);
$obj->nachfrist_ende = $row->nachfrist_ende;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Bewerbungstermine.';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_bewerbungstermine(studiensemester_kurzbz, studiengang_kz, beginn, ende, nachfrist, nachfrist_ende, anmerkung, insertamum, insertvon) VALUES('.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->beginn).', '.
$this->db_add_param($this->ende).', '.
$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '.
$this->db_add_param($this->nachfrist_ende).', '.
$this->db_add_param($this->anmerkung).', now(),'.
$this->db_add_param($this->insertvon).');';
}
else
{
$qry='UPDATE public.tbl_bewerbungstermine SET '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'studiengang_kz='.$this->db_add_param($this->studiengang_kz,FHC_INTEGER).', '.
'beginn='.$this->db_add_param($this->beginn).', '.
'ende='.$this->db_add_param($this->ende).', '.
'nachfrist='.$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '.
'nachfrist_ende='.$this->db_add_param($this->nachfrist_ende).', '.
'anmerkung='.$this->db_add_param($this->anmerkung).', '.
'updateamum= now(), '.
'updatevon='.$this->db_add_param($this->updatevon).' '.
'WHERE bewerbungstermin_id='.$this->db_add_param($this->bewerbungstermin_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
{
$qry = "SELECT currval('public.tbl_bewerbungstermine_bewerbungstermin_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->foerdervertrag_id = $row->id;
$this->db_query('COMMIT');
return true;
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
public function delete($bewerbungstermin_id)
{
$qry = "DELETE from public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
return true;
}
}
+85 -14
View File
@@ -44,6 +44,9 @@ class studienordnung extends basis_db
protected $studiengangbezeichnung_englisch; // varchar (256)
protected $studiengangkurzbzlang; // varchar (256)
protected $akadgrad_id; // integer (FK akadgrad)
protected $status_kurzbz; //varchar(32)
protected $standort_id;
protected $orgform_kurzbz;
protected $updateamum; // timestamp
protected $updatevon; // varchar
protected $insertamum; // timestamp
@@ -112,6 +115,8 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->standort_id = $row->standort_id;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -144,22 +149,16 @@ class studienordnung extends basis_db
if(is_null($studiensemester_kurzbz))
{
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
}
else
{
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id)
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id)
WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if (!is_null($studiensemester_kurzbz))
$qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false);
@@ -188,6 +187,9 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->status_bezeichnung = $row->status_bezeichnung;
$obj->standort_id = $row->standort_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -283,7 +285,7 @@ class studienordnung extends basis_db
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, insertamum, insertvon) VALUES ('.
$qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, standort_id, status_kurzbz, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->version).', '.
$this->db_add_param($this->bezeichnung).', '.
@@ -294,6 +296,8 @@ class studienordnung extends basis_db
$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
$this->db_add_param($this->studiengangkurzbzlang).', '.
$this->db_add_param($this->akadgrad_id,FHC_INTEGER).', '.
$this->db_add_param($this->standort_id,FHC_INTEGER).', '.
$this->db_add_param($this->status_kurzb).', '.
' now(), '.
$this->db_add_param($this->insertvon).');';
}
@@ -316,6 +320,8 @@ class studienordnung extends basis_db
' studiengangbezeichnung_englisch='.$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
' studiengangkurzbzlang='.$this->db_add_param($this->studiengangkurzbzlang).','.
' akadgrad_id='.$this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '.
' standort_id='.$this->db_add_param($this->standort_id, FHC_INTEGER).', '.
' status_kurzbz='.$this->db_add_param($this->status_kurzbz, FHC_INTEGER).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' WHERE studienordnung_id='.$this->db_add_param($this->studienordnung_id, FHC_INTEGER, false).';';
@@ -410,6 +416,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->standort_id = $row->standort_id;
$obj->status_kurzb = $row->status_kurzb;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -433,6 +441,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $this->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $this->studiengangkurzbzlang;
$obj->akadgrad_id = $this->akadgrad_id;
$obj->standort_id = $this->standort_id;
$obj->status_kurzb = $this->status_kurzb;
$obj->updateamum = $this->updateamum;
$obj->updatevon = $this->updatevon;
$obj->insertamum = $this->insertamum;
@@ -735,6 +745,8 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
$this->standort_id = $row->standort_id;
$this->status_kurzb = $row->status_kurzb;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -793,6 +805,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$this->standort_id = $row->standort_id;
$this->status_kurzb = $row->status_kurzb;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -812,5 +826,62 @@ class studienordnung extends basis_db
return true;
}
public function loadStudienordnungWithStatus($studiengang_kz, $status_kurzbz)
{
$qry = "SELECT sto.*, s.bezeichnung as status_bezeichnung "
. "FROM lehre.tbl_studienordnung sto "
. "JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) "
. "WHERE status_kurzbz=" . $this->db_add_param($status_kurzbz, FHC_STRING) . ""
. " AND studiengang_kz=" . $this->db_add_param($studiengang_kz, FHC_INTEGER) . ";";
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while ($row = $this->db_fetch_object())
{
$obj = new studienordnung();
$obj->studienordnung_id = $row->studienordnung_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->ects = $row->ects;
$obj->gueltigvon = $row->gueltigvon;
$obj->gueltigbis = $row->gueltigbis;
$obj->studiengangbezeichnung = $row->studiengangbezeichnung;
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->status_bezeichnung = $row->status_bezeichnung;
$obj->begruendung = json_decode($row->begruendung);
$obj->studiengangsart = $row->studiengangsart;
$obj->standort_id = $row->standort_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new = false;
$this->result[] = $obj;
}
return true;
}
public function changeState($studienordnung_id, $status_kurzbz)
{
$qry = "UPDATE lehre.tbl_studienordnung SET status_kurzbz=" . $this->db_add_param($status_kurzbz)
. " WHERE studienordnung_id=" . $this->db_add_param($studienordnung_id) . ";";
if (!$this->db_query($qry))
{
$this->errormsg = "Status konnte nicht geändert werden.";
return false;
}
return true;
}
}
?>
+222 -1
View File
@@ -46,6 +46,9 @@ class studienplan extends basis_db
protected $updatevon; // varchar
protected $insertamum; // timestamp
protected $insertvon; // varchar
protected $ects_stpl;
protected $pflicht_sws;
protected $pflicht_lvs;
//Tabellenspalten für Zwischentabelle tbl_studienplan_lehrveranstaltung
protected $studienplan_lehrveranstaltung_id; //integer
@@ -111,6 +114,9 @@ class studienplan extends basis_db
$this->aktiv = $this->db_parse_bool($row->aktiv);
$this->semesterwochen = $row->semesterwochen;
$this->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$this->ects_stpl = $row->ects_stpl;
$this->pflicht_lvs = $row->pflicht_lvs;
$this->pflicht_sws = $row->pflicht_sws;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -164,6 +170,9 @@ class studienplan extends basis_db
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->ects_stpl = $row->ects_stpl;
$obj->pflicht_lvs = $row->pflicht_lvs;
$obj->pflicht_sws = $row->pflicht_sws;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -257,7 +266,7 @@ class studienplan extends basis_db
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienplan (studienordnung_id, orgform_kurzbz,version,
bezeichnung, regelstudiendauer, sprache, aktiv, semesterwochen, testtool_sprachwahl,
insertamum, insertvon) VALUES ('.
pflicht_sws, pflicht_lvs, ects_stpl, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studienordnung_id, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->version).', '.
@@ -267,6 +276,9 @@ class studienplan extends basis_db
$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '.
$this->db_add_param($this->semesterwochen,FHC_INTEGER).', '.
$this->db_add_param($this->testtool_sprachwahl,FHC_BOOLEAN).', '.
$this->db_add_param($this->pflicht_sws) . ', ' .
$this->db_add_param($this->pflicht_lvs) . ', ' .
$this->db_add_param($this->ects_stpl) . ', ' .
'now(), '.
$this->db_add_param($this->insertvon).');';
}
@@ -288,6 +300,9 @@ class studienplan extends basis_db
' aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '.
' semesterwochen='.$this->db_add_param($this->semesterwochen, FHC_INTEGER).', '.
' testtool_sprachwahl='.$this->db_add_param($this->testtool_sprachwahl, FHC_BOOLEAN).','.
' ects_stpl=' . $this->db_add_param($this->ects_stpl) . ',' .
' pflicht_sws=' . $this->db_add_param($this->pflicht_sws, FHC_INTEGER) . ',' .
' pflicht_lvs=' . $this->db_add_param($this->pflicht_lvs, FHC_INTEGER) . ',' .
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' WHERE studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER, false).';';
@@ -821,5 +836,211 @@ class studienplan extends basis_db
return true;
}
}
/**
* speichert die Semesterzuordnung für die Studieordnung
* @param int $$studienplan_id Die ID des Studienplans
* @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param int $ausbildungssemester Ausbildungssemester als Zahl
*/
public function saveSemesterZuordnung($zuordnung = array())
{
if (is_array($zuordnung))
{
$qry = "";
foreach ($zuordnung as $key)
{
if (!is_numeric($key["studienplan_id"]))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
if (!is_string($key["studiensemester_kurzbz"]) || strlen($key["studiensemester_kurzbz"]) != 6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if (!is_numeric($key["ausbildungssemester"]))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
$qry .= "INSERT INTO lehre.tbl_studienplan_semester (studienplan_id, studiensemester_kurzbz, semester) VALUES (" .
$this->db_add_param($key["studienplan_id"]) . ', ' .
$this->db_add_param($key["studiensemester_kurzbz"]) . ', ' .
$this->db_add_param($key["ausbildungssemester"]) . '); ';
}
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
return true;
} else
{
$this->errormsg = 'Der übergebene Parameter ist kein Array.';
return false;
}
return false;
}
/**
* lädt alle zugeordneten Semester eines Studienplans
* @param int $studienplan ID
*/
public function loadStudiensemesterFromStudienplan($studienplan_id)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT DISTINCT studiensemester_kurzbz, tbl_studiensemester.start
FROM
lehre.tbl_studienplan_semester
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . '
ORDER BY tbl_studiensemester.start, studiensemester_kurzbz';
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
$data = array();
while ($row = $this->db_fetch_object())
{
$obj = new stdClass();
$data[] = $row->studiensemester_kurzbz;
}
return $data;
}
public function loadAusbildungsemesterFromStudiensemester($studienplan_id, $studiensemester_kurzbz)
{
$qry = 'SELECT semester
FROM lehre.tbl_studienplan_semester
WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND
studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . '
ORDER BY semester;';
if (!$this->db_query($qry))
{
return false;
}
$data = array();
while ($row = $this->db_fetch_object())
{
$data[] = $row->semester;
}
return $data;
}
function isSemesterZugeordnet($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if (!is_numeric($ausbildungssemester))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienplan_semester WHERE
studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND
studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . ' AND
semester=' . $this->db_add_param($ausbildungssemester) . ';';
if ($this->db_query($qry))
{
if ($this->db_num_rows() == 1)
{
return true;
}
if ($this->db_num_rows() == 0)
{
return false;
}
return false;
}
return false;
}
public function deleteSemesterZuordnung($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester = NULL)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
$qry = 'DELETE FROM lehre.tbl_studienplan_semester
WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND
studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . '';
if ($ausbildungssemester !== null)
$qry.=' AND semester=' . $this->db_add_param($ausbildungssemester) . '';
$qry.=';';
if ($this->db_query($qry))
{
return true;
} else
{
$this->errormsg = 'Fehler beim Löschen der Zuordnung' . "\n";
return false;
}
}
/**
* prüft ob dem Studienplan Semester zugeordnet sind (Gültigkeit)
* @param int $studienplan_id Die ID des Studienplans
*/
public function hasSemesterZugeordnet($studienplan_id)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienplan_semester WHERE
studienplan_id=' . $this->db_add_param($studienplan_id) . ';';
if ($this->db_query($qry))
{
if ($this->db_num_rows() >= 1)
{
return true;
}
return false;
}
return false;
}
}
?>
+172 -2
View File
@@ -671,6 +671,173 @@ if(!$result = @$db->db_query("SELECT uhrzeit from lehre.tbl_abschlusspruefung LI
echo 'lehre.tbl_abschlusspruefung: spalte uhrzeit hinzugefügt';
}
//Spalte status_kurzbz in lehre.tbl_studienordnung
if (!$result = @$db->db_query("SELECT status_kurzbz FROM lehre.tbl_studienordnung LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_studienordnung ADD COLUMN status_kurzbz varchar(32);
ALTER TABLE lehre.tbl_studienordnung ADD CONSTRAINT status_kurzbz FOREIGN KEY (status_kurzbz) REFERENCES addon.tbl_stgv_studienordnungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
UPDATE lehre.tbl_studienordnung SET status_kurzbz = 'approved';
";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienordnung: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienordnung: Spalte status_kurzbz hinzugefügt.<br>';
}
//Spalte standort_id in lehre.tbl_studienordnung
if (!$result = @$db->db_query("SELECT standort_id FROM lehre.tbl_studienordnung LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_studienordnung ADD COLUMN standort_id integer;
ALTER TABLE lehre.tbl_studienordnung ADD CONSTRAINT studienordnung_standort_id FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE;
";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienordnung: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienordnung: Spalte standort_id hinzugefügt.<br>';
}
//Spalte ects_stpl in lehre.tbl_studienplan
if (!$result = @$db->db_query("SELECT ects_stpl FROM lehre.tbl_studienplan LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN ects_stpl numeric(5,2);";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienplan: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienplan: Spalte ects_stpl hinzugefügt.<br>';
}
//Spalte pflicht_sws in lehre.tbl_studienplan
if (!$result = @$db->db_query("SELECT pflicht_sws FROM lehre.tbl_studienplan LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN pflicht_sws integer;";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienplan: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienplan: Spalte pflicht_sws hinzugefügt.<br>';
}
//Spalte pflicht_lvs in lehre.tbl_studienplan
if (!$result = @$db->db_query("SELECT pflicht_lvs FROM lehre.tbl_studienplan LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN pflicht_lvs integer;";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienplan: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienplan: Spalte pflicht_lvs hinzugefügt.<br>';
}
// Tabelle Studienplan_Semester
if (!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_studienplan_semester LIMIT 1;")) {
$qry = "CREATE TABLE lehre.tbl_studienplan_semester
(
studienplan_semester_id integer NOT NULL,
studienplan_id integer NOT NULL,
studiensemester_kurzbz varchar(16) NOT NULL,
semester smallint NOT NULL
);
CREATE SEQUENCE lehre.tbl_studienplan_semester_studienplan_semester_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE lehre.tbl_studienplan_semester ADD CONSTRAINT pk_studienplan_semester PRIMARY KEY (studienplan_semester_id);
ALTER TABLE lehre.tbl_studienplan_semester ALTER COLUMN studienplan_semester_id SET DEFAULT nextval('lehre.tbl_studienplan_semester_studienplan_semester_id');
ALTER TABLE lehre.tbl_studienplan_semester ADD CONSTRAINT fk_studienplan_semester_studienplan_id FOREIGN KEY (studienplan_id) REFERENCES lehre.tbl_studienplan (studienplan_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE lehre.tbl_studienplan_semester ADD CONSTRAINT fk_studienplan_semester_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT ON lehre.tbl_studienplan_semester TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_studienplan_semester TO vilesci;
GRANT SELECT, UPDATE ON lehre.tbl_studienplan_semester_studienplan_semester_id TO vilesci;
";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienplan_semester: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienplan_semester: Tabelle hinzugefuegt<br>';
}
//Tabelle public.tbl_bewerbungstermine
if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_bewerbungstermine LIMIT 1;")) {
$qry = "CREATE TABLE public.tbl_bewerbungstermine
(
bewerbungstermin_id integer NOT NULL,
studiengang_kz integer NOT NULL,
studiensemester_kurzbz varchar(16) NOT NULL,
beginn timestamp,
ende timestamp,
nachfrist boolean default false,
nachfrist_ende timestamp,
anmerkung text,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
CREATE SEQUENCE public.tbl_bewerbungstermine_bewerbungstermin_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT pk_bewerbungstermin_id PRIMARY KEY (bewerbungstermin_id);
ALTER TABLE public.tbl_bewerbungstermine ALTER COLUMN bewerbungstermin_id SET DEFAULT nextval('public.tbl_bewerbungstermine_bewerbungstermin_id_seq');
ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT fk_bewerbungstermin_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT fk_bewerbungstermin_studiengang FOREIGN KEY (studiengang_kz) REFERENCES public.tbl_studiengang (studiengang_kz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT ON public.tbl_bewerbungstermine TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON public.tbl_bewerbungstermine TO vilesci;
GRANT SELECT, UPDATE ON public.tbl_bewerbungstermine_bewerbungstermin_id_seq TO vilesci;
";
if (!$db->db_query($qry))
echo '<strong>public.tbl_studienordnungstatus: ' . $db->db_last_error() . '</strong><br>';
else
echo ' public.tbl_studienordnungstatus: Tabelle hinzugefuegt<br>';
}
//Tabelle lehre.tbl_studienordnungstatus
if (!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_studienordnungstatus LIMIT 1;")) {
$qry = "CREATE TABLE lehre.tbl_studienordnungstatus
(
status_kurzbz varchar(32) NOT NULL,
bezeichnung varchar(256),
reihenfolge integer
);
ALTER TABLE lehre.tbl_studienordnungstatus ADD CONSTRAINT pk_studienordnungstatus PRIMARY KEY (status_kurzbz);
GRANT SELECT ON lehre.tbl_studienordnungstatus TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_studienordnungstatus TO vilesci;
INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('development', 'in Bearbeitung', 1);
INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('review', 'in Review', 2);
INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('approved', 'genehmigt', 3);
INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('expired', 'ausgelaufen', 4);
INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('notApproved', 'nicht genehmigt', 5);
";
if (!$db->db_query($qry))
echo '<strong>lehre.tbl_studienordnungstatus: ' . $db->db_last_error() . '</strong><br>';
else
echo ' lehre.tbl_studienordnungstatus: Tabelle hinzugefuegt<br>';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -800,10 +967,12 @@ $tabellen=array(
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"),
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"),
"lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss"),
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id", "status_kurzbz", "standort_id"),
"lehre.tbl_studienordnungstatus" => array("status_kurzbz","bezeichnung","reihenfolge"),
"lehre.tbl_studienordnung_semester" => array("studienordnung_semester_id","studienordnung_id","studiensemester_kurzbz","semester"),
"lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl","ext_id"),
"lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl","ext_id", "ects_stpl", "pflicht_sws", "pflicht_lvs"),
"lehre.tbl_studienplan_lehrveranstaltung" => array("studienplan_lehrveranstaltung_id","studienplan_id","lehrveranstaltung_id","semester","studienplan_lehrveranstaltung_id_parent","pflicht","koordinator","insertamum","insertvon","updateamum","updatevon","sort","ext_id", "curriculum"),
"lehre.tbl_studienplan_semester" => array("studienplan_semester_id", "studienplan_id", "studiensemester_kurzbz", "semester"),
"lehre.tbl_studienplatz" => array("studienplatz_id","studiengang_kz","studiensemester_kurzbz","orgform_kurzbz","ausbildungssemester","gpz","npz","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_stunde" => array("stunde","beginn","ende"),
"lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"),
@@ -828,6 +997,7 @@ $tabellen=array(
"public.tbl_benutzer" => array("uid","person_id","aktiv","alias","insertamum","insertvon","updateamum","updatevon","ext_id","updateaktivvon","updateaktivam","aktivierungscode"),
"public.tbl_benutzerfunktion" => array("benutzerfunktion_id","fachbereich_kurzbz","uid","oe_kurzbz","funktion_kurzbz","semester", "datum_von","datum_bis", "updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung","wochenstunden"),
"public.tbl_benutzergruppe" => array("uid","gruppe_kurzbz","studiensemester_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_bewerbungstermine" => array("bewerbungstermin_id","studiengang_kz","studiensemester_kurzbz","beginn","ende","nachfrist","nachfrist_ende","anmerkung", "insertamum", "insertvon", "updateamum", "updatevon"),
"public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"),
"public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id","bezeichnung_mehrsprachig","dokumentbeschreibung_mehrsprachig"),
"public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"),