diff --git a/application/controllers/jobs/ReihungstestJob.php b/application/controllers/jobs/ReihungstestJob.php
index 9b2532b4b..6dd214fbb 100644
--- a/application/controllers/jobs/ReihungstestJob.php
+++ b/application/controllers/jobs/ReihungstestJob.php
@@ -821,7 +821,7 @@ class ReihungstestJob extends JOB_Controller
JOIN lehre.tbl_studienordnung USING (studienordnung_id)
JOIN PUBLIC.tbl_studiengang ON (tbl_studienordnung.studiengang_kz = tbl_studiengang.studiengang_kz)
WHERE get_rolle_prestudent (tbl_prestudent.prestudent_id, ?) IN ('Aufgenommener','Bewerber','Wartender','Abgewiesener')
- AND studiensemester_kurzbz = ?
+ AND studiensemester_kurzbz = ?
AND tbl_studiengang.typ IN ('b', 'm')
)
SELECT * FROM prst
@@ -861,7 +861,7 @@ class ReihungstestJob extends JOB_Controller
{
// Alle niedrigeren Prios laden
$qryNiedrPrios = "
- SELECT DISTINCT
+ SELECT DISTINCT ON(prestudent_id)
get_rolle_prestudent (tbl_prestudent.prestudent_id, '".$row_ps->studiensemester_kurzbz."') AS laststatus,
tbl_studienplan.orgform_kurzbz,
tbl_person.nachname,
@@ -880,7 +880,7 @@ class ReihungstestJob extends JOB_Controller
AND studiensemester_kurzbz = '".$row_ps->studiensemester_kurzbz."'
AND tbl_studiengang.typ IN ('b', 'm')
AND priorisierung > ".$row_ps->priorisierung."
- ORDER BY studiengang_kz, laststatus
+ ORDER BY prestudent_id, studiengang_kz, laststatus, tbl_prestudentstatus.datum DESC
";
// Wenn der letzte Status "Aufgenommener" ist, alle niedrigeren Prios auf "Abgewiesen" setzen
@@ -976,7 +976,7 @@ class ReihungstestJob extends JOB_Controller
FROM public.tbl_konto
WHERE person_id = " . $row_ps->person_id . "
AND studiensemester_kurzbz = '" . $row_ps->studiensemester_kurzbz . "'
- AND buchungstyp_kurzbz = 'StudiengebuehrAnzahlung'";
+ AND buchungstyp_kurzbz IN ('StudiengebuehrAnzahlung','KautionDrittStaat')";
$resultKautionExists = $db->execReadOnlyQuery($qryKautionExists);
if (hasdata($resultKautionExists))
diff --git a/public/js/plugin/FhcAlert.js b/public/js/plugin/FhcAlert.js
index 07c13dde7..6b4d780e3 100644
--- a/public/js/plugin/FhcAlert.js
+++ b/public/js/plugin/FhcAlert.js
@@ -13,7 +13,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
- *
+ *
* @usage:
* Preperations:
* Be sure to have PrimeVue loaded with the toast and confirmdialog
@@ -23,44 +23,51 @@
* Use:
* In your component you can call now the global property $fhcAlert
* which has the following functions:
- *
+ *
* alertSuccess
* ------------
* Displays a success message
* @param string message
* @return void
- *
+ *
* alertInfo
* ---------
* Displays an info message
* @param string message
* @return void
- *
+ *
* alertWarning
* ------------
* Displays a warning
* @param string message
* @return void
- *
+ *
* alertError
* ----------
* Displays an error
* @param string message
* @return void
- *
+ *
* alertSystemError
* ----------------
* Displays an alert with the error details and a button to mail
* the error to the Support Team
* @param string message
* @return void
- *
+ *
* confirmDelete
* -------------
* Displays a confirmation dialog and returns a Promise which resolves
* with true or false depending und the pressed button.
* @return Promise
- *
+ *
+ * confirm
+ * ------------
+ * Displays a confirmation dialog and returns a Promise which resolves
+ * with true or false depending und the pressed button.
+ * @param string message
+ * @return Promise
+ *
* alertDefault
* ------------
* Displays an alert
@@ -69,7 +76,7 @@
* @param string message
* @param boolean sticky (optional) defaults to false
* @return void
- *
+ *
* alertMultiple
* -------------
* Displays multiple alerts
@@ -78,14 +85,14 @@
* @param string title (optional) defaults to 'Info'
* @param boolean sticky (optional) defaults to false
* @return void
- *
+ *
* handleSystemError
* -----------------
* Automatiticly determine how to display an system error and display it.
* This would be used in a catch block of an ajax call.
* @param mixed error
* @return void
- *
+ *
* handleSystemMessage
* -------------------
* Automatiticly determine how to display a message and display it.
@@ -248,7 +255,7 @@ export default {
},
alertDefault(severity, title, message, sticky = false) {
let options = { severity: severity, summary: title, detail: message};
-
+
if (!sticky)
options.life = 3000;
@@ -266,7 +273,7 @@ export default {
// don't show an error message to the user if the error was an aborted request
if(error.hasOwnProperty('name') && error.name.toLowerCase() === "AbortError".toLowerCase())
return;
-
+
// Error is string
if (typeof error === 'string')
return $fhcAlert.alertSystemError(error);
@@ -278,7 +285,7 @@ export default {
// Error has been handled already
if (error.hasOwnProperty('handled') && error.handled)
return;
-
+
// Error is object
if (typeof error === 'object' && error !== null) {
let errMsg = '';
@@ -294,7 +301,7 @@ export default {
if (error.hasOwnProperty('stack'))
errMsg += 'Error Stack: ' + error.stack + '\r\n';
-
+
// Fallback object error message
if (errMsg == '')
errMsg = 'Error Message: ' + JSON.stringify(error) + '\r\n';
@@ -368,7 +375,7 @@ export default {
// NOTE(chris): reset form validation
$fhcAlert.resetFormValidation(form);
-
+
// NOTE(chris): set form input validation
const notFound = Object.entries(errors).filter(([key, detail]) => {
const input = form.querySelector('[data-fhc-form-validate="' + key + '"]');
@@ -421,4 +428,4 @@ export default {
app.config.globalProperties.$fhcAlert = $fhcAlert;
app.provide('$fhcAlert', app.config.globalProperties.$fhcAlert);
}
-}
\ No newline at end of file
+}
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index d007c04f6..190cc3850 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -61,6 +61,7 @@ require_once('dbupdate_3.4/41134_C4_bookmark_dashboardWidget.php');
require_once('dbupdate_3.4/28575_softwarebereitstellung.php');
require_once('dbupdate_3.4/41150_oe-pfad_db_view.php');
require_once('dbupdate_3.4/44031_stv_favorites.php');
+require_once('dbupdate_3.4/37620_reihungslisten.php');
require_once('dbupdate_3.4/40896_kennzeichnung_unruly_person.php');
require_once('dbupdate_3.4/39911_tabulator_in_contentmittitel.php');
require_once('dbupdate_3.4/25999_C4_permission.php');
@@ -72,6 +73,7 @@ require_once('dbupdate_3.4/53903_valorisierung.php');
require_once('dbupdate_3.4/55968_index_anrechnung.php');
require_once('dbupdate_3.4/25999_locale_update.php');
require_once('dbupdate_3.4/55289_pep_fine_tuning.php');
+require_once('dbupdate_3.4/55614_perm_verwaltetoe.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '
Pruefe Tabellen und Attribute!
';
diff --git a/system/dbupdate_3.4/37620_reihungslisten.php b/system/dbupdate_3.4/37620_reihungslisten.php
new file mode 100644
index 000000000..950d6af0e
--- /dev/null
+++ b/system/dbupdate_3.4/37620_reihungslisten.php
@@ -0,0 +1,13 @@
+db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchungstyp_kurzbz = 'KautionDrittStaat';"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext, standardbetrag) VALUES ('KautionDrittStaat', 'Kaution', 'Deposit for application, third countries', '-250');";
+ if (!$db->db_query($qry))
+ echo 'public.tbl_buchungstyp '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_buchungstyp: Added buchungstyp "KautionDrittStaat"
';
+ }
+}
\ No newline at end of file
diff --git a/system/dbupdate_3.4/55614_perm_verwaltetoe.php b/system/dbupdate_3.4/55614_perm_verwaltetoe.php
new file mode 100644
index 000000000..4b31b48a6
--- /dev/null
+++ b/system/dbupdate_3.4/55614_perm_verwaltetoe.php
@@ -0,0 +1,41 @@
+,
+ *
+ * Beschreibung:
+ * Permission basis/verwaltet_oe
+ */
+if (! defined('DB_NAME')) exit('No direct script access allowed');
+
+// Add permission: basis/gehaelter
+if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'basis/verwaltet_oe';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/verwaltet_oe', 'Rechteinhaberin hat etwas mit der Verwaltung der OE zu tun.');";
+
+ if(!$db->db_query($qry))
+ {
+ echo 'system.tbl_berechtigung '.$db->db_last_error().'
';
+ }
+ else
+ {
+ echo 'system.tbl_berechtigung: Added permission "basis/verwaltet_oe"
';
+ }
+ }
+}
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index d1305c9f1..f74a00b5e 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -40411,7 +40411,7 @@ array(
)
)
),
- array(
+ array(
'app' => 'core',
'category' => 'mobility',
'phrase' => 'mobility_bearbeiten',
@@ -40512,6 +40512,108 @@ array(
)
)
// FHC4 Phrases Mobility End
+ // feature-55614 begin
+ array(
+ 'app' => 'core',
+ 'category' => 'kvp',
+ 'phrase' => 'lvdev_uebersichten',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'LV-Weiterentwicklung Übersichten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Course Development Overviews',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'kompetenzfeld',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kompetenzfeld',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'competence field',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'expand_all',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'alle ausklappen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'expand all',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'collapse_all',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'alle einklappen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'collapse all',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'quellkurs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Quellkurs',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Source Course',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ // feature-55614 end
);
diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php
index 8d928dacf..561c19460 100644
--- a/vilesci/stammdaten/auswertung_fhtw.php
+++ b/vilesci/stammdaten/auswertung_fhtw.php
@@ -1220,6 +1220,7 @@ $reihungstest = isset($_REQUEST['reihungstest']) ? $_REQUEST['reihungstest'] : '
$studiengang = isset($_REQUEST['studiengang']) ? $_REQUEST['studiengang'] : '';
$semester = isset($_REQUEST['semester']) ? $_REQUEST['semester'] : '';
$prestudent_id = isset($_REQUEST['prestudent_id']) ? $_REQUEST['prestudent_id'] : '';
+$prestudent_ids = isset($_REQUEST['prestudent_ids']) ? $_REQUEST['prestudent_ids'] : '';
$orgform_kurzbz = isset($_REQUEST['orgform_kurzbz']) ? $_REQUEST['orgform_kurzbz'] : '';
$format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : '');
$stgtyp = (isset($_REQUEST['stgtyp']) ? $_REQUEST['stgtyp'] : '');
@@ -1259,7 +1260,7 @@ if ($prestudent_id != '' && !is_numeric($prestudent_id))
{
die('PrestudentID ist ungueltig');
}
-if (isset($_POST['rtauswsubmit']) && $reihungstest == '' && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '')
+if (isset($_POST['rtauswsubmit']) && $reihungstest == '' && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '' && $prestudent_ids == '')
{
die('Waehlen Sie bitte mindestens eine der Optionen aus');
}
@@ -1378,6 +1379,10 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
{
$query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER);
}
+ if ($prestudent_ids != '')
+ {
+ $query .= " AND ps.prestudent_id IN (" .$db->db_implode4SQL(explode(',', $prestudent_ids)) . ")";
+ }
if ($orgform_kurzbz != '' && $studiengang != '')
{
$query .= " AND (tbl_ablauf.studienplan_id=(
@@ -1611,6 +1616,10 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
{
$query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER);
}
+ if ($prestudent_ids != '')
+ {
+ $query .= " AND ps.prestudent_id IN (" .$db->db_implode4SQL(explode(',',$prestudent_ids)) . ")";
+ }
if ($orgform_kurzbz != '')
{
//$query .= " AND tbl_prestudentstatus.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz);
@@ -2891,7 +2900,7 @@ else
$selectedrtstr = '';
$checkbxstr = '';
$first = true;
- $noparamsselected = $prestudent_id == '' && $reihungstest == '' && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == '';
+ $noparamsselected = $prestudent_id == '' && $reihungstest == '' && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == '' && $prestudent_ids == '';
//$maxeachline = 1;
foreach ($rtest as $rt)
{
@@ -3007,6 +3016,9 @@ else
echo '';
echo '| ';
echo 'PrestudentIn: ';
+ echo ' |
';
+ echo '| ';
+ echo 'PrestudentIn (Mehrfachauswahl): ';
echo ' |
';
echo '
';
@@ -3015,6 +3027,7 @@ else
&datum_von=' . $datum_von . '
&datum_bis=' . $datum_bis . '
&prestudent_id=' . $prestudent_id . '
+ &' . http_build_query(array('prestudent_ids' => $prestudent_ids)) . '
&' . http_build_query(array('reihungstest' => $reihungstest)) . '
&orgform_kurzbz=' . $orgform_kurzbz . '
&stgtyp=' . $stgtyp . '
@@ -3068,6 +3081,7 @@ else
datum_von=' . $datum_von . '&
datum_bis=' . $datum_bis . '&
prestudent_id=' . $prestudent_id . '&
+ &' . http_build_query(array('prestudent_ids' => $prestudent_ids)) . '
&' . http_build_query(array('reihungstest' => $reihungstest)) . '">
|