Anpassungen Studienordnung; editieren von inaktiven STOs und direktes

erstellen neuer LVs
This commit is contained in:
Stefan Puraner
2015-10-13 08:05:21 +02:00
parent fd5ba07be6
commit 44eb475768
4 changed files with 271 additions and 6 deletions
+94 -2
View File
@@ -548,6 +548,34 @@ class studienordnung extends basis_db
return false;
}
/**
* prüft ob die Studienordnung aktiv ist
* @param int $studienordnung_id Die ID der Studienordnung
* @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param int $ausbildungssemester Ausbildungssemester als Zahl
*/
public function isAktiv($studienordnung_id)
{
if(!is_numeric($studienordnung_id))
{
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).';';
if($this->db_query($qry))
{
if($this->db_num_rows() >= 1)
{
return true;
}
return false;
}
return false;
}
/**
* lädt alle zugeordneten Semester einer Studienordnung
* @param int $studienordnung_id ID der Studienordnung
@@ -644,13 +672,13 @@ class studienordnung extends basis_db
{
$studiensemester = new studiensemester();
$studiensemester->getTimestamp($studiensemester_kurzbz);
var_dump($this);
$semGueltigVon = $studiensemester->begin->start;
//$semGueltigBis = $studiensemester->ende->ende;
$studiensemester = new studiensemester();
$studiensemester->getTimestamp($this->gueltigvon);
var_dump($studiensemester);
$stoGueltigVon = $studiensemester->begin->start;
if($this->gueltigbis != null)
@@ -719,5 +747,69 @@ class studienordnung extends basis_db
$this->new=false;
return true;
}
/**
* Laedt alle Studienordnungen zu einem Studiengang der uebergeben wird, die noch nicht aktiv sind
* @param $studiengang_kz Kennzahl des Studiengangs
* @param $studiensemester_kurzbz
* @param $semester
* @return true wenn ok, false im Fehlerfall
*/
public function loadStudienordnungSTGInaktiv($studiengang_kz)
{
//Pruefen ob studiengang_kz eine gueltige Zahl ist
if(!is_numeric($studiengang_kz) || $studiengang_kz === '')
{
$this->errormsg = 'studiengang_kz muss eine gültige Zahl sein';
return false;
}
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
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->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new = false;
$this->result[] = $obj;
}
foreach($this->result as $key => $obj)
{
if($this->isAktiv($obj->studienordnung_id))
{
unset($this->result[$key]);
}
}
array_values($this->result);
return true;
}
}
?>
+3 -3
View File
@@ -730,9 +730,9 @@ class studiensemester extends basis_db
if(!isset($this->begin))
$this->begin=new stdclass();
$this->begin->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4));
if(!isset($this->ende))
$this->ende=new stdclass();
$this->ende->ende=mktime(0,0,0,mb_substr($row->ende,5,2),mb_substr($row->ende,8,2),mb_substr($row->ende,0,4));
if(!isset($this->end))
$this->end=new stdclass();
$this->end->ende=mktime(0,0,0,mb_substr($row->ende,5,2),mb_substr($row->ende,8,2),mb_substr($row->ende,0,4));
return true;
}
else
+170
View File
@@ -0,0 +1,170 @@
<?php
/*
* Copyright 2013 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
header( 'Expires: -1' );
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
header('Content-Type: text/html;charset=UTF-8');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/webservicerecht.class.php');
require_once('../../include/studienordnung.class.php');
$class = $_REQUEST['class'];
$method = $_REQUEST['method'];
$typ = (isset($_REQUEST['typ'])?$_REQUEST['typ']:'');
// die einzelnen funktionsparameter werden durchnummeriert mit 0 beginnend:
// parameter_0=param0&parameter_1=param1&parameter_3[0]=param3arr0&parameter_3[1]=param3arr1
$parameter=array();
for($i=0;$i<100;$i++)
{
if(isset($_REQUEST['parameter_'.$i]))
{
if($_REQUEST['parameter_'.$i]=="true")
$parameter[]=true;
elseif($_REQUEST['parameter_'.$i]=="false")
$parameter[]=false;
elseif($_REQUEST['parameter_'.$i]=="null")
$parameter[]=null;
else
$parameter[]=$_REQUEST['parameter_'.$i];
}
else
break;
}
require_once('../../include/'.$class.'.class.php');
// Berechtigung pruefen
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$wsrecht = new webservicerecht();
if(!$wsrecht->isUserAuthorized($uid, $method, $class))
die('Sie haben keine Berechtigung fuer diesen Vorgang:'.$class.'->'.$method);
// Funktion aufrufen
$obj = new $class();
$error=false;
// Bei Save Funktionen werden alle Parameter zugewiesen
if(mb_stristr($method,'save'))
{
$loaddata=json_decode($_REQUEST['loaddata'], true);
$savedata=json_decode($_REQUEST['savedata'], true);
if(!$rechte->isBerechtigt('lehre/studienordnung'))
{
if(!$rechte->isBerechtigt("'lehre/studienordnungInaktiv'"))
{
die('Sie haben keine Berechtigung fuer diesen Vorgang.');
}
else
{
if(isset($savedata['studienplan_id']))
{
$studienordnung = new studienordnung();
$studienordnung->getStudienordnungFromStudienplan($savedata['studienplan_id']);
if($studienordnung->isAktiv($studienordnung->studienordnung_id))
die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.');
}
elseif(isset($loaddata["loadStudienordnung"]))
{
$studienordnung = new studienordnung();
if($studienordnung->isAktiv($loaddata["parameter_0"]))
die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.');
}
}
}
if(isset($loaddata['method']))
{
if(!$wsrecht->isUserAuthorized($uid, $loaddata['method']))
die('keine Berechtigung');
// Bearbeiten
$loadparameter=array();
for($i=0;$i<20;$i++)
{
$name = 'parameter_'.$i;
if(isset($loaddata[$name]))
$loadparameter[]=$loaddata[$name];
else
break;
}
if(!call_user_func_array(array($obj, $loaddata['method']), $loadparameter))
{
$error=true;
}
}
else
{
// Neu
$obj->insertvon = $uid;
$obj->insertamum = date('Y-m-d H:i:s');
}
if(!$error)
{
// Attribute zuweisen zum Speichern
foreach($savedata as $key=>$value)
{
$obj->$key=$value;
}
}
}
$return = '';
if(!$error && ($return = call_user_func_array(array($obj, $method), $parameter)))
{
$data['result']=$obj->cleanResult();
$data['return']=$return;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['result']='';
$data['return']=$return;
$data['error']='true';
$data['errormsg']=$obj->errormsg;
}
// Daten ausgeben
if($typ=='json')
echo json_encode($data);
elseif($typ=='xml')
echo array_to_xml($data);
else
var_dump($data);
?>
+4 -1
View File
@@ -146,8 +146,11 @@ echo "
</style>
</head>
<body>";
if(!$rechte->isBerechtigt('lehre/studienordnung'))
if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv')))
die('Sie haben keine Berechtigung für diese Seite');
if($rechte->isBerechtigt('lehre/studienordnungInaktiv'))
echo "<script type='text/javascript'>var initSTOs = 'inaktiv';</script>";
$stg_arr = $rechte->getStgKz('lehre/studienordnung');
$studiengang = new studiengang();
$studiengang->loadArray($stg_arr,'typ,kurzbz');