mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
266 lines
9.6 KiB
PHP
266 lines
9.6 KiB
PHP
<?php
|
|
/* Copyright (C) 2016 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: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
|
|
*/
|
|
/**
|
|
* Script zur Vorrückung von LV-Informationen in das Folgesemester
|
|
*/
|
|
require_once('../../config/vilesci.config.inc.php');
|
|
require_once('../../include/functions.inc.php');
|
|
require_once('../../include/benutzerberechtigung.class.php');
|
|
require_once('../../include/studiensemester.class.php');
|
|
require_once('../../include/organisationseinheit.class.php');
|
|
require_once('../../include/studienplan.class.php');
|
|
|
|
$uid = get_uid();
|
|
$rechte = new benutzerberechtigung();
|
|
$rechte->getBerechtigungen($uid);
|
|
|
|
if(!$rechte->isBerechtigt('lehre/studienplan', null, 's'))
|
|
{
|
|
die($rechte->errormsg);
|
|
}
|
|
|
|
$berechtigteStgKz = $rechte->getStgKz('lehre/studienplan');
|
|
|
|
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/tablesort.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/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function()
|
|
{
|
|
$("#t1").tablesorter({
|
|
sortList: [[1,0],[2,0]],
|
|
widgets: ["zebra"],
|
|
headers: {0:{sorter:false}}
|
|
});
|
|
|
|
$("#toggle_t1").on("click", function(e) {
|
|
$("#t1").checkboxes("toggle");
|
|
e.preventDefault();
|
|
});
|
|
|
|
$("#uncheck_t1").on("click", function(e) {
|
|
$("#t1").checkboxes("uncheck");
|
|
e.preventDefault();
|
|
});
|
|
|
|
$("#t1").checkboxes("range", true);
|
|
|
|
$("#select_studiensemester_kurzbz_from").change(function()
|
|
{
|
|
var index = $(this).prop("selectedIndex");
|
|
index = index+3;
|
|
$("#select_studiensemester_kurzbz_to :nth-child("+index+")").prop("selected", true);
|
|
});
|
|
});
|
|
</script>
|
|
<title>Studienplan Semester Vorrückung</title>
|
|
</head>
|
|
<body>
|
|
<h1>Studienplan Semester Vorrückung</h1>
|
|
<p>Lädt alle Studienpläne, die für das Zielsemester noch keinen Eintrag im 1. Ausbildungssemester haben.<br>
|
|
Das Vorrücken kopiert die Semesterzuordnungen des Quellsemesters (aller Ausbildungssemester) ins Zielsemester</p>
|
|
';
|
|
|
|
$db = new basis_db();
|
|
$studiensemester_kurzbz_from = (isset($_POST['studiensemester_kurzbz_from'])?$_POST['studiensemester_kurzbz_from']:'');
|
|
$studiensemester_kurzbz_to = (isset($_POST['studiensemester_kurzbz_to'])?$_POST['studiensemester_kurzbz_to']:'');
|
|
$studienplaene = filter_input(INPUT_POST, 'studienplaene', FILTER_VALIDATE_INT, FILTER_REQUIRE_ARRAY);
|
|
$anzahl_kopiert = 0;
|
|
|
|
if($studiensemester_kurzbz_from == '')
|
|
{
|
|
$stsem = new studiensemester();
|
|
$studiensemester_kurzbz_from = $stsem->getaktorNext();
|
|
}
|
|
if($studiensemester_kurzbz_to == '')
|
|
{
|
|
$stsem = new studiensemester();
|
|
$studiensemester_kurzbz_to = $stsem->jump($studiensemester_kurzbz_from, 2);
|
|
}
|
|
|
|
echo '<form action="studienplan_vorrueckung.php" method="POST">';
|
|
|
|
echo ' Quelle: <select id="select_studiensemester_kurzbz_from" name="studiensemester_kurzbz_from" />';
|
|
|
|
$stsem = new studiensemester();
|
|
$stsem->getPlusMinus(null,10,'ende DESC');
|
|
|
|
foreach($stsem->studiensemester as $row)
|
|
{
|
|
if($row->studiensemester_kurzbz == $studiensemester_kurzbz_from)
|
|
$selected = 'selected';
|
|
else
|
|
$selected = '';
|
|
echo '<option value="'.$db->convert_html_chars($row->studiensemester_kurzbz).'" '.$selected.'>'.
|
|
$db->convert_html_chars($row->studiensemester_kurzbz).
|
|
'</option>';
|
|
}
|
|
echo '</select>';
|
|
|
|
echo ' Ziel:<select id="select_studiensemester_kurzbz_to" name="studiensemester_kurzbz_to" />';
|
|
|
|
foreach($stsem->studiensemester as $row)
|
|
{
|
|
if($row->studiensemester_kurzbz == $studiensemester_kurzbz_to)
|
|
$selected = 'selected';
|
|
else
|
|
$selected = '';
|
|
echo '<option value="'.$db->convert_html_chars($row->studiensemester_kurzbz).'" '.$selected.'>'.
|
|
$db->convert_html_chars($row->studiensemester_kurzbz).
|
|
'</option>';
|
|
}
|
|
echo '</select>';
|
|
echo '<input type="submit" value="Anzeigen" name="show" />';
|
|
echo '</form>';
|
|
|
|
if(isset($_POST['vorruecken']) && !empty($studienplaene) && $studiensemester_kurzbz_to != '')
|
|
{
|
|
if(!$rechte->isBerechtigt('lehre/studienplan', null, 'sui'))
|
|
{
|
|
die($rechte->errormsg);
|
|
}
|
|
$studienplan = new studienplan();
|
|
foreach ($studienplaene AS $studienplan_id)
|
|
{
|
|
$ausbildungssemester = $studienplan->loadAusbildungsemesterFromStudiensemester($studienplan_id, $studiensemester_kurzbz_from);
|
|
foreach ($ausbildungssemester AS $semester)
|
|
{
|
|
if ($studienplan->saveSemesterZuordnung(array(array( "studienplan_id" => $studienplan_id,
|
|
"studiensemester_kurzbz" => $studiensemester_kurzbz_to,
|
|
"ausbildungssemester" => $semester))))
|
|
{
|
|
echo '<br><span style="color: green">Eintrag für Studienplan '.$studienplan_id.', '.$studiensemester_kurzbz_to.', '.$semester.'. Semester erstellt</span>';
|
|
}
|
|
else
|
|
{
|
|
echo '<br><span class="error">Fehler beim Speichern des Eintrags für Studienplan '.$studienplan_id.', '.$studiensemester_kurzbz_to.', '.$semester.'. Semester</span>';
|
|
$studienplan->errormsg;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isset($_POST['show']) && $studiensemester_kurzbz_from != '' && $studiensemester_kurzbz_to != '')
|
|
{
|
|
$qry = " SELECT UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) AS studiengang,
|
|
studienplan.studienplan_id,
|
|
studienplan.orgform_kurzbz,
|
|
studienplan.bezeichnung,
|
|
studienplan.sprache
|
|
FROM lehre.tbl_studienplan studienplan
|
|
JOIN lehre.tbl_studienplan_semester USING (studienplan_id)
|
|
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
|
|
JOIN PUBLIC.tbl_studiengang USING (studiengang_kz)
|
|
WHERE tbl_studienplan_semester.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_from, FHC_STRING)."
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM lehre.tbl_studienplan_semester
|
|
JOIN lehre.tbl_studienplan USING (studienplan_id)
|
|
WHERE studienplan_id = studienplan.studienplan_id
|
|
AND orgform_kurzbz = studienplan.orgform_kurzbz
|
|
AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_to, FHC_STRING)."
|
|
)
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM lehre.tbl_studienplan_semester
|
|
JOIN lehre.tbl_studienplan USING (studienplan_id)
|
|
JOIN lehre.tbl_studienordnung USING (studienordnung_id)
|
|
WHERE orgform_kurzbz = studienplan.orgform_kurzbz
|
|
AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_to, FHC_STRING)."
|
|
AND studiengang_kz = sto.studiengang_kz
|
|
)
|
|
AND tbl_studiengang.typ IN ('b', 'm', 'l')
|
|
AND tbl_studiengang.studiengang_kz IN (".implode(',',$berechtigteStgKz).")
|
|
AND studienplan.onlinebewerbung_studienplan = true";
|
|
if (substr($studiensemester_kurzbz_from,0,2) == 'SS')
|
|
{
|
|
$qry .= " AND tbl_studienplan_semester.semester = 2";
|
|
}
|
|
else
|
|
{
|
|
$qry .= " AND tbl_studienplan_semester.semester = 1";
|
|
}
|
|
$qry .= " ORDER BY studiengang";
|
|
|
|
if($result = $db->db_query($qry))
|
|
{
|
|
echo '<br>Anzahl: '.$db->db_num_rows($result);
|
|
|
|
if ($db->db_num_rows($result) > 0)
|
|
{
|
|
echo '<form action="studienplan_vorrueckung.php" method="POST">';
|
|
echo '<input type="hidden" name="show">';
|
|
echo '<input type="hidden" value="'.$studiensemester_kurzbz_from.'" name="studiensemester_kurzbz_from">';
|
|
echo '<input type="hidden" value="'.$studiensemester_kurzbz_to.'" name="studiensemester_kurzbz_to">';
|
|
echo '<table id="t1" class="tablesorter" style="width: unset">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: center">
|
|
<nobr>
|
|
<a href="#" id="toggle_t1" data-toggle="checkboxes" data-action="toggle" ><img src="../../skin/images/checkbox_toggle.png" name="toggle"></a>
|
|
<a href="#" id="uncheck_t1" data-toggle="checkboxes" data-action="uncheck" ><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a>
|
|
</nobr>
|
|
</th>
|
|
<th>Studiengang</th>
|
|
<th>Organisationsform</th>
|
|
<th>Bezeichnung</th>
|
|
<th>Sprache</th>
|
|
<th>Studienplan ID</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>';
|
|
while ($row = $db->db_fetch_object($result))
|
|
{
|
|
echo '
|
|
<tr>
|
|
<td><input type="checkbox" class="chkbox" name="studienplaene[]" value="'.$row->studienplan_id.'" checked="checked"></td>
|
|
<td>'.$row->studiengang.'</td>
|
|
<td>'.$row->orgform_kurzbz.'</td>
|
|
<td>'.$row->bezeichnung.'</td>
|
|
<td>'.$row->sprache.'</td>
|
|
<td>'.$row->studienplan_id.'</td>
|
|
</tr>';
|
|
}
|
|
echo "</tbody></table>";
|
|
if ($rechte->isBerechtigt('lehre/studienplan', null, 'sui'))
|
|
{
|
|
echo '<button type="submit" name="vorruecken">Ausgewählte Studienpläne vorrücken</button>';
|
|
}
|
|
else
|
|
{
|
|
echo '<button name="vorruecken" disabled>Ausgewählte Studienpläne vorrücken</button> Keine Berechtigung zum Vorrücken von Studienplänen';
|
|
}
|
|
|
|
echo '</form>';
|
|
}
|
|
}
|
|
}
|
|
|
|
echo '</body>
|
|
</html>';
|