Merge branch 'master' into feature-54920/DB_Model_encrypted_columns_spaltenname_enthaelt_anderen_spaltennamen

This commit is contained in:
Harald Bamberger
2024-12-11 11:54:23 +01:00
8 changed files with 208 additions and 17 deletions
@@ -29,6 +29,7 @@ class Gruppenmanagement extends Auth_Controller
$this->load->model('person/benutzer_model', 'BenutzerModel');
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
$this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel');
$this->load->model('person/gruppe_manager_model', 'GruppemanagerModel');
$this->load->model('system/Log_model', 'LogModel');
$this->load->library('WidgetLib');
@@ -117,6 +118,27 @@ class Gruppenmanagement extends Auth_Controller
$result = error('Uid missing');
else
{
$this->GruppemanagerModel->addSelect('1');
$isManagerRes = $this->GruppemanagerModel->loadWhere(
array(
'uid' => $this->_uid,
'gruppe_kurzbz' => $gruppe_kurzbz
)
);
if (isError($isManagerRes))
{
$this->outputJsonError(getError($isManagerRes));
return;
}
if (!hasData($isManagerRes))
{
$this->outputJsonError($this->p->t('gruppenmanagement', 'nichtZumEditierenDerGruppeBerechtigt'));
return;
}
$this->BenutzergruppeModel->addSelect('1');
$benutzerExistsRes = $this->BenutzergruppeModel->loadWhere(
array(
'uid' => $uid,
@@ -170,6 +192,26 @@ class Gruppenmanagement extends Auth_Controller
$result = error('Uid missing');
else
{
$this->GruppemanagerModel->addSelect('1');
$isManagerRes = $this->GruppemanagerModel->loadWhere(
array(
'uid' => $this->_uid,
'gruppe_kurzbz' => $gruppe_kurzbz
)
);
if (isError($isManagerRes))
{
$this->outputJsonError(getError($isManagerRes));
return;
}
if (!hasData($isManagerRes))
{
$this->outputJsonError($this->p->t('gruppenmanagement', 'nichtZumEditierenDerGruppeBerechtigt'));
return;
}
$result = $this->BenutzergruppeModel->delete(
array(
'uid' => $uid,
@@ -0,0 +1,14 @@
<?php
class Gruppe_manager_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_gruppe_manager';
$this->pk = 'gruppe_manager_id';
}
}
@@ -7,6 +7,7 @@
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$LOGDATA_DELETED_BY_USER = '\'% deleted by user\'';
$POSTPONE_STATUS_PARKED = '\'parked\'';
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
@@ -283,6 +284,7 @@
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.logdata->>\'message\' NOT LIKE ('.$LOGDATA_DELETED_BY_USER.')
AND l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
+1
View File
@@ -208,6 +208,7 @@ else
<menupopup id="student-filter-menu-popup" >
<menuitem id="student-toolbar-filter-dokumente" label="fehlende Dokumente" oncommand="InteressentDokumenteFilter()" disabled="false" tooltiptext="Liste aller Studenten mit Fehlenden Dokumenten"/>
<menuitem id="student-toolbar-filter-offenebuchungen" label="offene Buchungen" oncommand="StudentKontoFilterStudenten('konto')" disabled="false" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
<menuitem id="student-toolbar-filter-ueberfaelligebuchungen" label="überfällige Buchungen" oncommand="StudentKontoFilterStudenten('ueberfaelligebuchungen')" disabled="false" tooltiptext="Liste aller Studenten mit überfälligen Buchungen"/>
<menuitem id="student-toolbar-filter-studiengebuehr" label="nicht gebuchte Studiengebuehr" oncommand="StudentKontoFilterStudenten('studiengebuehr')" disabled="false" tooltiptext="Liste aller Studenten die noch nicht mit der Studiengebühr belastet wurden" />
<menuitem id="student-toolbar-filter-erhoehte-studiengebuehr" label="erhöhten Studienbeitrag" oncommand="StudentKontoFilterStudenten('StudiengebuehrErhoeht')" disabled="false" tooltiptext="Liste aller Studenten denen der erhöhte Studienbeitrag eingebucht wurde" />
<menuitem id="student-toolbar-filter-zgvohnedatum" label="ZGV eingetragen ohne Datum" oncommand="StudentKontoFilterStudenten('zgvohnedatum')" disabled="false" tooltiptext="Liste aller Studenten die ZGV eingetragen haben bei denen aber kein ZGV Datum gesetzt ist" />
+19
View File
@@ -190,6 +190,25 @@ function checkfilter($row, $filter2, $buchungstyp = null)
: false;
return $filtered;
}
else if ($filter2 === 'ueberfaelligebuchungen')
{
$qry = "SELECT sum(betrag) as summe
FROM tbl_konto
WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER) ."
AND buchungsdatum < NOW()
"
;
if($kontofilterstg=='true')
$qry.=" AND studiengang_kz=".$db->db_add_param($row->studiengang_kz);
if($buchungstyp != null && $buchungstyp != "alle")
$qry.=" AND buchungstyp_kurzbz=".$db->db_add_param($buchungstyp);
if($db->db_query($qry))
if($row_filter = $db->db_fetch_object())
if($row_filter->summe=='0.00' || $row_filter->summe=='' || $row_filter->summe=='0')
return false;
}
return true;
}
+21 -1
View File
@@ -37196,8 +37196,28 @@ array(
'insertvon' => 'system'
)
)
)
),
// CIS4 phrases from legacy code end
array(
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'nichtZumEditierenDerGruppeBerechtigt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Nicht zum Editieren der Gruppe berechtigt",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "No authorization for editing the group",
'description' => '',
'insertvon' => 'system'
)
)
)
);
+93 -9
View File
@@ -23,12 +23,12 @@ require_once("../../config/vilesci.config.inc.php");
require_once("../../include/functions.inc.php");
require_once("../../include/benutzerberechtigung.class.php");
require_once("../../include/datum.class.php");
require_once("../../include/studiengang.class.php");
require_once("../../include/studiensemester.class.php");
require_once("../../include/studienjahr.class.php");
require_once("../../include/student.class.php");
require_once("../../include/konto.class.php");
require_once("../../include/bankverbindung.class.php");
// Get the uid of the logged user
$user = get_uid();
@@ -71,7 +71,7 @@ $fileTmpName = null;
$fileMimeType = null;
// Constants
$L_CSV_N_COLS = 6; // Number of columns of the CSV file
$L_CSV_N_COLS = 10; // Number of columns of the CSV file
$L_ERROR = "Error";
$L_WARNING = "Warning";
$L_INFO = "Info";
@@ -246,15 +246,19 @@ if (!$errorOccurred && $dataPosted)
// Checks if character encoding is UTF-8
if (mb_detect_encoding(implode(";", $fileRow), "UTF-8", true))
{
$rowName = $fileRow[0];
$rowSurname = $fileRow[1];
$rowCode = $fileRow[2]; // uid or matrikelnr
$rowStudiengang = $fileRow[3];
$rowAmount = $fileRow[4];
$rowDate = $fileRow[5];
$rowSurname = $fileRow[0];
$rowName = $fileRow[1];
$rowGebdat = $fileRow[2];
$rowCode = $fileRow[3]; // uid or matrikelnr
$rowStudiengang = $fileRow[4];
$rowAmount = $fileRow[5];
$rowIBAN = $fileRow[6];
$rowBIC = $fileRow[7];
$rowBank = $fileRow[8];
$rowDate = date('Y-m-d');
// If this row is not the header
if (strtolower($rowName) != "nachname")
if (strtolower($rowSurname) != "nachname")
{
// If $rowCode is a matrikelnr gets the uid
if (($uid = $student->getUidFromMatrikelnummer($rowCode)) === false)
@@ -293,6 +297,12 @@ if (!$errorOccurred && $dataPosted)
// Inserting positive amount
if ($konto->save(true) === true)
{
lAddToLogArray(
$L_INFO,
$lineNumber,
"Added!!!"
);
/* Keine Gegenbuchung erstellen
lDebit($konto); // Negative amount
if ($konto->save(true) === true) // Inserting negative amount
{
@@ -310,6 +320,7 @@ if (!$errorOccurred && $dataPosted)
"This file row has been discarted because an error has occurred while inserting in DB"
);
}
*/
}
else
{
@@ -321,6 +332,79 @@ if (!$errorOccurred && $dataPosted)
}
}
// Bankverbindung hinterlegen
$bank = new bankverbindung();
$found = false;
if($bank->load_pers($student->person_id))
{
foreach($bank->result as $row_bank)
{
if(str_replace(' ', '', $row_bank->iban) == str_replace(' ', '', $rowIBAN))
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"Bank IBAN already found for PersonID ".$student->person_id
);
$found = true;
// Update Datum aktualisieren damit Update in Fremdsystem getriggert wird
$row_bank->new=false;
$row_bank->updateamum = date('Y-m-d H:i:s');
$row_bank->updatevon = 'Leistungsimport';
if($row_bank->save())
{
lAddToLogArray(
$L_INFO,
$lineNumber,
"Bank Date Update for PersonID ".$student->person_id
);
}
else
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"Bank Date Update Failed for PersonID ".$student->person_id
);
}
break;
}
}
}
if(!$found)
{
$bank = new bankverbindung();
$bank->new = true;
$bank->iban = $rowIBAN;
$bank->person_id = $student->person_id;
$bank->bic = $rowBIC;
$bank->name = $rowBank;
$bank->typ = 'p';
$bank->verrechnung = true;
$bank->insertamum = date('Y-m-d H:i:s');
$bank->insertvon = 'Leistungsimport';
$bank->updateamum = date('Y-m-d H:i:s');
$bank->updatevon = 'Leistungsimport';
if($bank->save())
{
lAddToLogArray(
$L_INFO,
$lineNumber,
"Bankdaten hinzugefügt"
);
}
else
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"Failed to Add Bankdata".$bank->errormsg
);
}
}
}
else
{
+16 -7
View File
@@ -2411,12 +2411,13 @@ else
});
}
}
function prueflingEntSperren(person_id, name, art)
function prueflingEntSperren(element)
{
if (art === true)
var text = "sperren";
else if (art === false)
var text = "entsperren";
var person_id = element.getAttribute("data-person-id");
var name = element.getAttribute("data-person-name");
var art = element.getAttribute("data-art") === "true";
let text = art ? "sperren" : "entsperren";
if (confirm("Wollen Sie den Studenten "+ name + " wirklich " + text + "?"))
{
@@ -3279,10 +3280,18 @@ else
echo "<td class='textcentered ".$inaktiv ."'>
<a href='#' class='prueflingsperren_".$erg->person_id . ((isset($gesperrt_arr[$erg->person_id]) && $gesperrt_arr[$erg->person_id]->gesperrt === true) ? " hidden" : "") ."' onclick='prueflingEntSperren(" . $erg->person_id . ", \"" . $erg->vorname . " " . $erg->nachname ."\"" .", true)'>
<a href='#' class='prueflingsperren_".$erg->person_id . ((isset($gesperrt_arr[$erg->person_id]) && $gesperrt_arr[$erg->person_id]->gesperrt === true) ? " hidden" : "") ."'
data-person-id='".$erg->person_id."'
data-person-name='".htmlspecialchars($erg->vorname . " " . $erg->nachname, ENT_QUOTES, 'UTF-8')."'
data-art='true'
onclick='prueflingEntSperren(this)'>
<span class='glyphicon glyphicon-remove'></span>
</a>
<a href='#' class='prueflingentsperren_".$erg->person_id . ((isset($gesperrt_arr[$erg->person_id]) && $gesperrt_arr[$erg->person_id]->gesperrt !== true ? " hidden" : "")) . "' onclick='prueflingEntSperren(" . $erg->person_id . ", \"" . $erg->vorname . " " . $erg->nachname ."\"" .", false);'>
<a href='#' class='prueflingentsperren_".$erg->person_id . ((isset($gesperrt_arr[$erg->person_id]) && $gesperrt_arr[$erg->person_id]->gesperrt !== true ? " hidden" : "")) . "'
data-person-id='".$erg->person_id."'
data-person-name='".htmlspecialchars($erg->vorname . " " . $erg->nachname, ENT_QUOTES, 'UTF-8')."'
data-art='false'
onclick='prueflingEntSperren(this)'>
<span class='glyphicon glyphicon-ok'></span>
</a>
</td>";