mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
- faktor für lvs hinzugefuegt
This commit is contained in:
@@ -0,0 +1,258 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__) . '/basis_db.class.php');
|
||||
require_once(dirname(__FILE__) . '/functions.inc.php');
|
||||
|
||||
class lehrveranstaltung_faktor extends basis_db
|
||||
{
|
||||
public $lehrveranstaltung_faktor_id; // serial
|
||||
public $lehrveranstaltung_id; // integer
|
||||
public $faktor; // numeric
|
||||
public $studiensemester_kurzbz_von; // varchar(16)
|
||||
public $studiensemester_kurzbz_bis; // varchar(16)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(32)
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(32)
|
||||
public $lv_faktoren = array(); // lehrveranstaltung Objekt
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $lehrveranstaltung_faktor_id
|
||||
*/
|
||||
public function __construct($lehrveranstaltung_faktor_id = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if (!is_null($lehrveranstaltung_faktor_id))
|
||||
$this->load($lehrveranstaltung_faktor_id);
|
||||
}
|
||||
|
||||
|
||||
public function load($lehrveranstaltung_faktor_id)
|
||||
{
|
||||
if (!is_numeric($lehrveranstaltung_faktor_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
WHERE lehrveranstaltung_faktor_id=".$this->db_add_param($lehrveranstaltung_faktor_id, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->faktor = $row->faktor;
|
||||
$this->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$this->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function loadByLV($lv_id, $von = null, $bis = null, $id = null)
|
||||
{
|
||||
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER);
|
||||
|
||||
if(!empty($von))
|
||||
{
|
||||
$qry .= "
|
||||
AND (bisstem.ende >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($von, FHC_STRING) . "
|
||||
)
|
||||
OR bisstem.ende IS NULL
|
||||
)";
|
||||
}
|
||||
|
||||
if(!empty($bis) && $bis !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
(vonstsem.start <= (
|
||||
SELECT ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($bis, FHC_STRING) . "
|
||||
))
|
||||
";
|
||||
}
|
||||
|
||||
if (!empty($id) && $id !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
lehrveranstaltung_faktor_id != ". $this->db_add_param($id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
if (!$result = $this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$lv_faktor_objekt = new lehrveranstaltung_faktor();
|
||||
|
||||
$lv_faktor_objekt->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$lv_faktor_objekt->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$lv_faktor_objekt->faktor = $row->faktor;
|
||||
$lv_faktor_objekt->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$lv_faktor_objekt->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
|
||||
$this->lv_faktoren[] = $lv_faktor_objekt;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function addFaktor($lv_id, $faktor, $von, $bis = NULL)
|
||||
{
|
||||
$qry = 'INSERT INTO lehre.tbl_lehrveranstaltung_faktor (lehrveranstaltung_id, faktor, studiensemester_kurzbz_von, studiensemester_kurzbz_bis)
|
||||
VALUES ('. $this->db_add_param($lv_id, FHC_INTEGER) . ', '.
|
||||
$this->db_add_param($faktor, FHC_INTEGER) . ', '.
|
||||
$this->db_add_param($von, FHC_STRING) . ', '.
|
||||
$this->db_add_param($bis, FHC_STRING) . ');';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$qry_id = "SELECT currval('lehre.lehrveranstaltung_faktor_id_seq') as id;";
|
||||
if($this->db_query($qry_id))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->db_query('COMMIT');
|
||||
return [
|
||||
'id' => $row->id,
|
||||
'lv_id' => $lv_id,
|
||||
'faktor' => $faktor,
|
||||
'von' => $von,
|
||||
'bis' => $bis
|
||||
];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function updateFaktor($id, $faktor, $von, $bis)
|
||||
{
|
||||
$qry = "UPDATE lehre.tbl_lehrveranstaltung_faktor
|
||||
SET faktor = ". $this->db_add_param($faktor) ." ,
|
||||
studiensemester_kurzbz_von = ". $this->db_add_param($von) .",
|
||||
studiensemester_kurzbz_bis = ". $this->db_add_param($bis) ."
|
||||
WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($id, FHC_INTEGER);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function getAkt($lv_id)
|
||||
{
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER) . "
|
||||
AND (vonstsem.start <= now() OR vonstsem.start IS NULL)
|
||||
AND (bisstem.ende >= now() OR bisstem.ende IS NULL)
|
||||
ORDER BY vonstsem.start DESC LIMIT 1
|
||||
";
|
||||
|
||||
|
||||
if (!$this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->faktor = $row->faktor;
|
||||
$this->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$this->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public function deleteFaktor($id)
|
||||
{
|
||||
$qry = "DELETE FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($id, FHC_INTEGER);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Löschen aus der Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/lehrveranstaltung_faktor.class.php');
|
||||
require_once('../include/lehrveranstaltung.class.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/person', null, 'suid'))
|
||||
{
|
||||
exit('Sie haben keine Berechtigung für die Seite');
|
||||
}
|
||||
|
||||
$method = isset($_REQUEST['method']) ? $_REQUEST['method']: '' ;
|
||||
$lv_faktor = new lehrveranstaltung_faktor();
|
||||
|
||||
switch($method)
|
||||
{
|
||||
case 'addFaktor':
|
||||
$faktor = isset($_REQUEST['faktor']) ? $_REQUEST['faktor']: '' ;
|
||||
if ($faktor !== '')
|
||||
{
|
||||
if (!isRightType($faktor['lv_id']))
|
||||
{
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Nur LVs und Templates möglich'
|
||||
]);
|
||||
break;
|
||||
}
|
||||
if (vonHigherThanBis($faktor['von'], $faktor['bis']))
|
||||
{
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Von nach Bis'
|
||||
]);
|
||||
break;
|
||||
}
|
||||
if (exists($faktor['lv_id'], $faktor['von'], $faktor['bis']))
|
||||
{
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Für den Zeitraum bereits vorhanden'
|
||||
]);
|
||||
break;
|
||||
}
|
||||
|
||||
$result = $lv_faktor->addFaktor($faktor['lv_id'], $faktor['faktor'], $faktor['von'], $faktor['bis']);
|
||||
echo json_encode($result);
|
||||
}
|
||||
break;
|
||||
case 'updateFaktor':
|
||||
$faktor = isset($_REQUEST['faktor']) ? $_REQUEST['faktor']: '' ;
|
||||
if ($faktor !== '')
|
||||
{
|
||||
if (vonHigherThanBis($faktor['von'], $faktor['bis']))
|
||||
{
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Von nach Bis'
|
||||
]);
|
||||
break;
|
||||
}
|
||||
if (exists($faktor['lv_id'], $faktor['von'], $faktor['bis'], $faktor['id']))
|
||||
{
|
||||
echo json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Für den Zeitraum bereits vorhanden'
|
||||
]);
|
||||
break;
|
||||
}
|
||||
|
||||
$result = $lv_faktor->updateFaktor($faktor['id'], $faktor['faktor'], $faktor['von'], $faktor['bis']);
|
||||
echo json_encode($result);
|
||||
}
|
||||
break;
|
||||
case 'deleteFaktor':
|
||||
$faktor = isset($_REQUEST['faktor']) ? $_REQUEST['faktor']: '' ;
|
||||
if ($faktor !== '')
|
||||
{
|
||||
$result = $lv_faktor->deleteFaktor($faktor['id']);
|
||||
echo json_encode($result);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
function isRightType($lv_id)
|
||||
{
|
||||
$lv = new lehrveranstaltung($lv_id);
|
||||
if (in_array($lv->lehrtyp_kurzbz, array('lv', 'tpl')))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function exists($lv_id, $von, $bis, $id = null)
|
||||
{
|
||||
$lv_faktor = new lehrveranstaltung_faktor();
|
||||
$lv_faktor->loadByLV($lv_id, $von, $bis, $id);
|
||||
return !empty($lv_faktor->lv_faktoren);
|
||||
}
|
||||
|
||||
function vonHigherThanBis($von, $bis)
|
||||
{
|
||||
$vonStsem = new studiensemester($von);
|
||||
$bisStsem = new studiensemester($bis);
|
||||
|
||||
if (is_null($bis) || $bis === "")
|
||||
return false;
|
||||
if ($vonStsem->start > $bisStsem->start)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -56,6 +56,7 @@ require_once('dbupdate_3.4/36530_bis_internationsalisierung_codextabelle_neuerun
|
||||
require_once('dbupdate_3.4/34543_ux_template.php');
|
||||
require_once('dbupdate_3.4/17513_Entwicklungsteam.php');
|
||||
require_once('dbupdate_3.4/28575_softwarebereitstellung.php');
|
||||
require_once('dbupdate_3.4/40717_lv_faktor.php');
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
@@ -246,6 +247,7 @@ $tabellen=array(
|
||||
"lehre.tbl_zeitfenster" => array("wochentag","stunde","ort_kurzbz","studiengang_kz","gewicht"),
|
||||
"lehre.tbl_zeugnis" => array("zeugnis_id","student_uid","zeugnis","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"),
|
||||
"lehre.tbl_lehrveranstaltung_faktor" => array("lehrveranstaltung_faktor_id", "lehrveranstaltung_id","faktor","studiensemester_kurzbz_von","studiensemester_kurzbz_bis","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.ci_apikey" => array("apikey_id","key","level","ignore_limits","date_created"),
|
||||
"public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung", "co_name"),
|
||||
"public.tbl_adressentyp" => array("adressentyp_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig", "sort"),
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrveranstaltung_faktor LIMIT 1"))
|
||||
{
|
||||
$qry = "
|
||||
|
||||
CREATE TABLE lehre.tbl_lehrveranstaltung_faktor
|
||||
(
|
||||
lehrveranstaltung_faktor_id integer NOT NULL,
|
||||
lehrveranstaltung_id integer NOT NULL,
|
||||
faktor numeric NOT NULL,
|
||||
studiensemester_kurzbz_von varchar(16) NOT NULL,
|
||||
studiensemester_kurzbz_bis varchar(16),
|
||||
insertamum timestamp DEFAULT NOW(),
|
||||
insertvon varchar(32),
|
||||
updateamum timestamp,
|
||||
updatevon varchar(32),
|
||||
CONSTRAINT tbl_lehrveranstaltung_faktor_pk PRIMARY KEY (lehrveranstaltung_faktor_id)
|
||||
);
|
||||
|
||||
CREATE SEQUENCE lehre.lehrveranstaltung_faktor_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
ALTER TABLE lehre.tbl_lehrveranstaltung_faktor ALTER COLUMN lehrveranstaltung_faktor_id SET DEFAULT nextval('lehre.lehrveranstaltung_faktor_id_seq');
|
||||
ALTER TABLE lehre.tbl_lehrveranstaltung_faktor ADD CONSTRAINT fk_lehrveranstaltung_faktor_lehrveranstaltung_id FOREIGN KEY (lehrveranstaltung_id) REFERENCES lehre.tbl_lehrveranstaltung (lehrveranstaltung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE lehre.tbl_lehrveranstaltung_faktor ADD CONSTRAINT fk_lehrveranstaltung_faktor_studiensemester_von FOREIGN KEY (studiensemester_kurzbz_von) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE lehre.tbl_lehrveranstaltung_faktor ADD CONSTRAINT fk_lehrveranstaltung_faktor_studiensemester_bis FOREIGN KEY (studiensemester_kurzbz_bis) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
GRANT SELECT ON lehre.tbl_lehrveranstaltung_faktor TO web;
|
||||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_lehrveranstaltung_faktor TO vilesci;
|
||||
GRANT SELECT ON lehre.lehrveranstaltung_faktor_id_seq TO web;
|
||||
GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.lehrveranstaltung_faktor_id_seq TO vilesci;
|
||||
";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_lehrveranstaltung_faktor: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo 'Tabelle: lehre.tbl_lehrveranstaltung_faktor erstellt!';
|
||||
|
||||
//TODO ggf default wert in eine config
|
||||
$qry = "
|
||||
INSERT INTO lehre.tbl_lehrveranstaltung_faktor
|
||||
(lehrveranstaltung_id, faktor, studiensemester_kurzbz_von, insertvon)
|
||||
(
|
||||
SELECT lehrveranstaltung_id,
|
||||
2,
|
||||
(
|
||||
SELECT public.tbl_studiensemester.studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
ORDER BY start LIMIT 1
|
||||
),
|
||||
'checksystem'
|
||||
FROM lehre.tbl_lehrveranstaltung
|
||||
WHERE lehrtyp_kurzbz IN ('lv', 'tpl')
|
||||
);
|
||||
";
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_lehrveranstaltung_faktor: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo 'Tabelle: lehre.tbl_lehrveranstaltung_faktor befüllt!';
|
||||
}
|
||||
@@ -32,6 +32,7 @@ require_once('../../include/organisationsform.class.php');
|
||||
require_once('../../include/addon.class.php');
|
||||
require_once('../../include/sprache.class.php');
|
||||
require_once('../../include/lehrmodus.class.php');
|
||||
require_once('../../include/lehrveranstaltung_faktor.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
@@ -1108,7 +1109,8 @@ if ($result_lv!=0)
|
||||
{
|
||||
echo "<th>LV-Angebot</th>
|
||||
<th>kompatible LV</th>
|
||||
<th>Aktion</th>";
|
||||
<th>Aktion</th>
|
||||
<th>Faktor</th>";
|
||||
}
|
||||
|
||||
echo "</tr></thead>";
|
||||
@@ -1326,7 +1328,20 @@ if ($result_lv!=0)
|
||||
</td>';
|
||||
|
||||
echo '<td><a href="lehrveranstaltung_kompatibel.php?lehrveranstaltung_id='.$row->lehrveranstaltung_id.'&type=edit" target="lv_detail">Kompatible LV</a></td>';
|
||||
echo '<td><a href="'.$_SERVER['PHP_SELF'].'?delete_lvid='.$row->lehrveranstaltung_id.'&stg_kz='.$stg_kz.'&semester='.$semester.'&fachbereich_kurzbz='.$oe_fachbereich.'&isaktiv='.$isaktiv.'&oe_kurzbz='.$oe_kurzbz.'&orgform='.$orgform_kurzbz.'" onclick="return conf_del()">löschen</a></td>';
|
||||
echo '<td>
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?delete_lvid='.$row->lehrveranstaltung_id.'&stg_kz='.$stg_kz.'&semester='.$semester.'&fachbereich_kurzbz='.$oe_fachbereich.'&isaktiv='.$isaktiv.'&oe_kurzbz='.$oe_kurzbz.'&orgform='.$orgform_kurzbz.'" onclick="return conf_del()">löschen</a>
|
||||
';
|
||||
|
||||
if (in_array($row->lehrtyp_kurzbz, array("tpl", "lv")))
|
||||
echo '<br /><a href="lehrveranstaltung_faktor.php?lehrveranstaltung_id='.$db->convert_html_chars($row->lehrveranstaltung_id).'" target="lv_detail">Faktor</a>';
|
||||
echo '</td>';
|
||||
echo '
|
||||
<td nowrap>';
|
||||
|
||||
$lv_faktor = new lehrveranstaltung_faktor();
|
||||
$lv_faktor->getAkt($row->lehrveranstaltung_id);
|
||||
|
||||
echo $lv_faktor->faktor.'</td>';
|
||||
echo "</tr>\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
require_once('../../include/lehrmodus.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/studienplan.class.php');
|
||||
require_once('../../include/lehrveranstaltung_faktor.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
@@ -139,6 +141,31 @@
|
||||
$reloadstr .= " window.location.href='".$_SERVER['PHP_SELF']."?stg_kz=$lv->studiengang_kz&semester=$lv->semester&neu=true';";
|
||||
}
|
||||
$reloadstr .= "</script>\n";
|
||||
|
||||
if (in_array($lv->lehrtyp_kurzbz, array('tpl', 'lv')) && $lv->new === true)
|
||||
{
|
||||
$lv_faktor = new lehrveranstaltung_faktor();
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester_von = $studiensemester->getLastOrAktSemester();
|
||||
if ($lv->lehrtyp_kurzbz === 'lv' && $_POST['lehrveranstaltung_template_id'] !== '')
|
||||
{
|
||||
|
||||
$lv_faktor->getAkt($_POST['lehrveranstaltung_template_id']);
|
||||
//TODO Faktor in eine Config
|
||||
if (is_null($lv_faktor->faktor))
|
||||
$lv_faktor->addFaktor($lv->lehrveranstaltung_id, 2, $studiensemester_von);
|
||||
else
|
||||
$lv_faktor->addFaktor($lv->lehrveranstaltung_id, $lv_faktor->faktor, $studiensemester_von);
|
||||
}
|
||||
else
|
||||
{
|
||||
$lv_faktor->loadByLV($lv->lehrveranstaltung_id);
|
||||
if (empty($lv_faktor->lv_faktoren))
|
||||
{
|
||||
$lv_faktor->addFaktor($lv->lehrveranstaltung_id, 2, $studiensemester_von);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,309 @@
|
||||
<?php
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/phrasen.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehrveranstaltung_faktor.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/person', 'suid'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/>
|
||||
<script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
|
||||
';
|
||||
?>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
$('#faktorTable').on('click', '.edit', function() {
|
||||
var row = $(this).closest('tr');
|
||||
var id = row.data('id');
|
||||
var faktor = row.find('.faktor').text();
|
||||
var von = row.find('.von').text();
|
||||
var bis = row.find('.bis').text();
|
||||
|
||||
$('#action').val('edit');
|
||||
$('#id').val(id);
|
||||
$('#faktor').val(faktor);
|
||||
$('#von').val(von);
|
||||
$('#bis').val(bis);
|
||||
});
|
||||
|
||||
$('#faktorTable').on('click', '.delete', function() {
|
||||
var id = $(this).closest('tr').data('id');
|
||||
|
||||
var formData = {
|
||||
id: id
|
||||
}
|
||||
deleteFaktor(formData);
|
||||
});
|
||||
|
||||
$('#faktorForm').on('submit', function(event) {
|
||||
event.preventDefault();
|
||||
var action = $('#action').val();
|
||||
var id = $('#id').val();
|
||||
|
||||
var faktor = $('#faktor').val();
|
||||
var von = $('#von').val();
|
||||
var bis = $('#bis').val();
|
||||
var lv_id = $('#lv_id').val();
|
||||
|
||||
var formData = {
|
||||
faktor: faktor,
|
||||
von: von,
|
||||
bis: bis,
|
||||
lv_id: lv_id
|
||||
};
|
||||
|
||||
if(action === 'add')
|
||||
{
|
||||
addFaktor(formData);
|
||||
}
|
||||
else
|
||||
{
|
||||
formData.id = id;
|
||||
updateFaktor(formData);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function addFaktor(formData)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: 'POST',
|
||||
url: "../../soap/lehrveranstaltung_faktor.json.php",
|
||||
data: {
|
||||
method: 'addFaktor',
|
||||
faktor: formData
|
||||
},
|
||||
success: function(data)
|
||||
{
|
||||
if (data.status === 'error')
|
||||
return alert(data.message);
|
||||
else
|
||||
{
|
||||
addRow(data);
|
||||
handleResponse('save')
|
||||
sortTable();
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error)
|
||||
{
|
||||
alert('Fehler beim Laden der Daten');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateFaktor(formData)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: 'POST',
|
||||
url: "../../soap/lehrveranstaltung_faktor.json.php",
|
||||
data: {
|
||||
method: 'updateFaktor',
|
||||
faktor: formData
|
||||
},
|
||||
success: function(data)
|
||||
{
|
||||
if (data.status === 'error')
|
||||
return alert(data.message);
|
||||
else
|
||||
{
|
||||
var row = $('#faktorTable tbody tr[data-id="' + formData.id + '"]');
|
||||
row.find('.faktor').text(formData.faktor);
|
||||
row.find('.von').text(formData.von);
|
||||
row.find('.bis').text(formData.bis);
|
||||
|
||||
handleResponse('save');
|
||||
sortTable();
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error)
|
||||
{
|
||||
alert('Fehler beim Laden der Daten');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteFaktor(formData)
|
||||
{
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: 'POST',
|
||||
url: "../../soap/lehrveranstaltung_faktor.json.php",
|
||||
data: {
|
||||
method: 'deleteFaktor',
|
||||
faktor: formData
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.status === 'error')
|
||||
return alert(data.message);
|
||||
else
|
||||
{
|
||||
var row = $('#faktorTable tbody tr[data-id="' + formData.id + '"]');
|
||||
row.remove();
|
||||
$("#faktorTable").trigger("update").trigger("applyWidgets");
|
||||
handleResponse('delete');
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
alert('Fehler beim Laden der Daten');
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function addRow(faktor)
|
||||
{
|
||||
var tr = $('<tr>')
|
||||
.attr('data-id', faktor.id);
|
||||
|
||||
var editButton = $('<button>')
|
||||
.text('Bearbeiten')
|
||||
.addClass('edit')
|
||||
|
||||
var deleteButton = $('<button>')
|
||||
.text('Loeschen')
|
||||
.addClass('delete')
|
||||
|
||||
var row = tr
|
||||
.append(
|
||||
$('<td>').text(faktor.faktor).addClass('faktor'),
|
||||
$('<td>').text(faktor.von).addClass('von'),
|
||||
$('<td>').text(faktor.bis).addClass('bis'),
|
||||
$('<td>').append(editButton).addClass('edit'),
|
||||
$('<td>').append(deleteButton).addClass('delete')
|
||||
);
|
||||
|
||||
$('#faktorTable tbody').append(row);
|
||||
}
|
||||
|
||||
function handleResponse(type)
|
||||
{
|
||||
$('#faktorForm')[0].reset();
|
||||
$('#action').val('add');
|
||||
$('#id').val('');
|
||||
|
||||
let successMessage = document.getElementById('success_message_' + type);
|
||||
successMessage.style.display = 'block';
|
||||
setTimeout(() => successMessage.style.display = 'none', 1000);
|
||||
}
|
||||
|
||||
function sortTable()
|
||||
{
|
||||
if ($("#faktorTable tbody tr").length > 0)
|
||||
{
|
||||
$("#faktorTable").tablesorter({
|
||||
sortList: [[1,1], [0,0], [2,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
|
||||
$lehrveranstaltung_id = $_GET["lehrveranstaltung_id"];
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lehrveranstaltung_id);
|
||||
|
||||
$faktor = new lehrveranstaltung_faktor();
|
||||
$faktor->loadByLV($lv->lehrveranstaltung_id);
|
||||
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester->getAll('desc');
|
||||
|
||||
|
||||
echo '
|
||||
</head>
|
||||
<body class="Background_main">
|
||||
<h2>Faktor - '. $lv->bezeichnung . ' - ' . $lv->lehrveranstaltung_id . '</h2>';
|
||||
|
||||
echo '
|
||||
<form id="faktorForm">
|
||||
<input type="hidden" id="action" value="add" />
|
||||
<input type="hidden" id="id"/>
|
||||
<input type="hidden" id="lv_id" value="'. $lv->lehrveranstaltung_id .'"/>
|
||||
<label for="faktor">Faktor</label>
|
||||
<input type="number" id="faktor" name="faktor" required />
|
||||
<label for="von">Von</label>
|
||||
<select id="von" name="von" required>
|
||||
<option value="">---keine Auswahl---</option>';
|
||||
|
||||
foreach ($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</select>
|
||||
<label for="bis">Bis</label>
|
||||
<select id="bis" name="bis">
|
||||
<option value="">---keine Auswahl---</option>';
|
||||
|
||||
foreach ($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</select>
|
||||
<button type="submit">'.$p->t('global/speichern').'</button>
|
||||
<span id="success_message_save" class="alert alert-success" style="display:none;">'. $p->t('global/erfolgreichgespeichert') . '</span>
|
||||
<span id="success_message_delete" class="alert alert-success" style="display:none;">'. $p->t('global/erfolgreichgelöscht') . '</span>
|
||||
</form>
|
||||
|
||||
<table class="tablesorter" id="faktorTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'.$p->t('lv/faktor').'</th>
|
||||
<th>'.$p->t('global/von').'</th>
|
||||
<th>'.$p->t('global/bis').'</th>
|
||||
<th>'.$p->t('global/bearbeiten').'</th>
|
||||
<th>'.$p->t('global/loeschen').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
|
||||
if(count($faktor->lv_faktoren) > 0)
|
||||
{
|
||||
foreach($faktor->lv_faktoren as $lv_faktor)
|
||||
{
|
||||
echo "<tr data-id=". $lv_faktor->lehrveranstaltung_faktor_id .">
|
||||
<td class='faktor'>".$lv_faktor->faktor."</td>
|
||||
<td class='von'>".$lv_faktor->studiensemester_kurzbz_von."</td>
|
||||
<td class='bis'>".$lv_faktor->studiensemester_kurzbz_bis."</td>
|
||||
<td><button class='edit'>".$p->t('global/bearbeiten')."</button></td>
|
||||
<td><button class='delete'>".$p->t('global/loeschen')."</button></td>
|
||||
</tr>"
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
'</tbody>
|
||||
</table>
|
||||
';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user