Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred
2022-05-11 16:41:34 +02:00
10 changed files with 270 additions and 18 deletions
+49
View File
@@ -73,4 +73,53 @@ class Konto_model extends DB_Model
return error('Failed to load Payment');
}
}
public function getLastStudienbeitrag($uid, $buchungstypen)
{
$query = 'SELECT konto.studiensemester_kurzbz
FROM public.tbl_konto konto,
public.tbl_benutzer,
public.tbl_student
WHERE tbl_benutzer.uid = \'' . $uid . '\'
AND tbl_benutzer.uid = tbl_student.student_uid
AND tbl_benutzer.person_id = konto.person_id
AND konto.studiengang_kz = tbl_student.studiengang_kz
AND konto.buchungstyp_kurzbz IN (\'' . $buchungstypen . '\')
AND 0 = (
SELECT sum(betrag)
FROM public.tbl_konto skonto
WHERE skonto.buchungsnr = konto.buchungsnr_verweis
OR skonto.buchungsnr_verweis = konto.buchungsnr_verweis
)
ORDER BY buchungsnr DESC LIMIT 1;
';
return $this->execQuery($query);
}
public function checkStudienbeitrag($uid, $stsem, $buchungstypen)
{
$query = 'SELECT tbl_konto.buchungsnr,
tbl_konto.buchungsdatum
FROM public.tbl_konto,
public.tbl_benutzer,
public.tbl_student
WHERE
tbl_konto.studiensemester_kurzbz = \'' . $stsem . '\'
AND tbl_benutzer.uid = \'' . $uid . '\'
AND tbl_benutzer.uid = tbl_student.student_uid
AND tbl_benutzer.person_id = tbl_konto.person_id
AND tbl_konto.studiengang_kz=tbl_student.studiengang_kz
AND tbl_konto.buchungstyp_kurzbz IN (\'' . $buchungstypen . '\')
AND 0 >= (
SELECT sum(betrag)
FROM public.tbl_konto skonto
WHERE skonto.buchungsnr = tbl_konto.buchungsnr_verweis
OR skonto.buchungsnr_verweis = tbl_konto.buchungsnr_verweis
)
ORDER BY buchungsnr DESC LIMIT 1
';
return $this->execQuery($query);
}
}
@@ -0,0 +1,22 @@
<?php
class Fotostatusperson_model extends DB_Model
{
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_person_fotostatus';
$this->pk = 'person_fotostatus_id';
}
public function getLastFotoStatus($person_id)
{
$this->addOrder('datum', 'DESC');
$this->addOrder('person_fotostatus_id', 'DESC');
$this->addLimit(1);
return $this->loadWhere(array('person_id' => $person_id));
}
}
+1 -1
View File
@@ -193,7 +193,7 @@ class Person_model extends DB_Model
*/
public function getByUid($uid)
{
$this->addSelect('vorname, nachname, gebdatum, person_id, bpk, matr_nr');
$this->addSelect('vorname, nachname, gebdatum, person_id, bpk, matr_nr, foto');
$this->addJoin('tbl_benutzer', 'person_id');
return $this->loadWhere(array('uid' => $uid));
@@ -55,4 +55,21 @@ class Betriebsmittelperson_model extends DB_Model
return $this->loadWhere($condition);
}
public function getBetriebsmittelZuordnung($cardIdentifier, $typ = 'Zutrittskarte', $ausgegeben = true)
{
$this->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id');
$where = 'wawi.tbl_betriebsmittel.nummer2 = \'' . $cardIdentifier . '\'
AND wawi.tbl_betriebsmittel.betriebsmitteltyp = \''. $typ .'\'
AND (retouram >= now() OR retouram IS NULL)
';
if ($ausgegeben)
$where .= 'AND ausgegebenam <= now()';
else
$where .= 'AND (ausgegebenam <= now() OR ausgegebenam IS NULL)';
return $this->loadWhere($where);
}
}
+2
View File
@@ -246,6 +246,8 @@
"afarkas/html5shiv": "3.7.*",
"chillerlan/php-qrcode": "2.0.*",
"chriskacerguis/codeigniter-restserver": "3.0.3",
"christianbach/tablesorter": "1.0.*",
"codeigniter/framework": "3.*",
Generated
+109 -10
View File
@@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "7e7441d3ba7b9b2be1f647b9bfc2c941",
"content-hash": "d59d1c1f4957fc2e3dc019cbb99b5aa2",
"hash": "6bab4617977e08b2939bf959929632d4",
"content-hash": "3e499134721f682f298dda20263ab686",
"packages": [
{
"name": "BlackrockDigital/startbootstrap-sb-admin-2",
@@ -71,6 +71,105 @@
},
"type": "library"
},
{
"name": "chillerlan/php-qrcode",
"version": "2.0.8",
"source": {
"type": "git",
"url": "https://github.com/chillerlan/php-qrcode.git",
"reference": "bf0382aaf2f79fa41c2dcb0f216675f74d633fe7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/bf0382aaf2f79fa41c2dcb0f216675f74d633fe7",
"reference": "bf0382aaf2f79fa41c2dcb0f216675f74d633fe7",
"shasum": ""
},
"require": {
"chillerlan/php-traits": "^1.1",
"php": ">=7.0.3"
},
"require-dev": {
"chillerlan/php-authenticator": "^2.0",
"phpunit/phpunit": "^6.5"
},
"type": "library",
"autoload": {
"psr-4": {
"chillerlan\\QRCode\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kazuhiko Arase",
"homepage": "https://github.com/kazuhikoarase"
},
{
"name": "Smiley",
"email": "smiley@chillerlan.net",
"homepage": "https://github.com/codemasher"
}
],
"description": "A QR code generator. PHP 7+",
"homepage": "https://github.com/chillerlan/php-qrcode",
"keywords": [
"qr code"
],
"time": "2020-04-12 07:38:35"
},
{
"name": "chillerlan/php-traits",
"version": "1.1.13",
"source": {
"type": "git",
"url": "https://github.com/chillerlan/php-traits.git",
"reference": "264759946b6aaeb427346b749fc9639b790b8e7f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/chillerlan/php-traits/zipball/264759946b6aaeb427346b749fc9639b790b8e7f",
"reference": "264759946b6aaeb427346b749fc9639b790b8e7f",
"shasum": ""
},
"require": {
"php": ">=7.0.3"
},
"require-dev": {
"phpunit/phpunit": "^6.5"
},
"type": "library",
"autoload": {
"psr-4": {
"chillerlan\\Traits\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Smiley",
"email": "smiley@chillerlan.net",
"homepage": "https://github.com/codemasher"
}
],
"description": "Some useful traits for PHP 7+",
"homepage": "https://github.com/chillerlan/php-traits",
"keywords": [
"PHP7",
"container",
"dotenv",
"helper",
"trait"
],
"abandoned": true,
"time": "2018-06-22 00:30:47"
},
{
"name": "chriskacerguis/codeigniter-restserver",
"version": "3.0.3",
@@ -1248,26 +1347,26 @@
},
{
"name": "netcarver/textile",
"version": "v3.7.6",
"version": "v3.7.7",
"source": {
"type": "git",
"url": "https://github.com/textile/php-textile.git",
"reference": "1846fd5aeace2a0dd57c4f770f693d12bcd7fa26"
"reference": "e5c32b4485741e656cfd94932da8ba7dd4a19da5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/textile/php-textile/zipball/1846fd5aeace2a0dd57c4f770f693d12bcd7fa26",
"reference": "1846fd5aeace2a0dd57c4f770f693d12bcd7fa26",
"url": "https://api.github.com/repos/textile/php-textile/zipball/e5c32b4485741e656cfd94932da8ba7dd4a19da5",
"reference": "e5c32b4485741e656cfd94932da8ba7dd4a19da5",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "2.1.*",
"phpunit/phpunit": "5.7.*",
"phpstan/phpstan": "1.6.3",
"phpunit/phpunit": "^9.5.20",
"squizlabs/php_codesniffer": "3.*",
"symfony/yaml": "2.4.*"
"symfony/yaml": "^4.4.3"
},
"type": "library",
"extra": {
@@ -1297,7 +1396,7 @@
"plaintext",
"textile"
],
"time": "2020-01-08 21:13:37"
"time": "2022-05-01 17:05:16"
},
{
"name": "nicolaskruchten/pivottable",
+32
View File
@@ -1655,5 +1655,37 @@ class mitarbeiter extends benutzer
return false;
}
/**
* Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq
* @return string $personalnummer
*/
public function getNextPersonalnummer()
{
$qry = "SELECT nextval('tbl_mitarbeiter_personalnummer_seq') ";
if ($result = $this->db_query($qry))
{
while ($row = $this->db_fetch_object())
{
if ($row->nextval != '')
{
$personalnummer = $row->nextval;
return $personalnummer;
}
else
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage!';
$return = false;
}
}
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
?>
+2 -1
View File
@@ -73,7 +73,7 @@ if(!$generateuid_addon_found)
// ****
// * Gerneriert die Mitarbeiter UID
// ****
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true)
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true, $personalnummer=null)
{
$bn = new benutzer();
$reserviert = array();
@@ -110,4 +110,5 @@ if(!$generateuid_addon_found)
}
}
}
?>
+20
View File
@@ -9532,6 +9532,26 @@ Any unusual occurrences
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
'phrase' => 'begutachter',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begutachter*in',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Assessor',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'projektarbeitsbeurteilung',
'category' => 'projektarbeitsbeurteilung',
+16 -6
View File
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Manuela Thamer <manuela.thamer@technikum-wien.at>.
*/
require_once('../../../config/vilesci.config.inc.php');
@@ -620,8 +621,16 @@ if(isset($_POST['save']))
$nachname_clean = mb_strtolower(convertProblemChars($nachname));
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
$uid='';
$mitarbeiter = new mitarbeiter();
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt);
if ($_POST['personalnummer'])
{
$personalnummer = $_POST['personalnummer'];
}
else
$personalnummer = $mitarbeiter->getNextPersonalnummer();
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt, $personalnummer);
if ($wunschUid != '')
{
@@ -872,10 +881,10 @@ if(isset($_POST['save']))
}
}
if(!$error)
if (!$error)
{
$db->db_query('COMMIT');
die("<b>MitarbeiterIn $vorname $vornamen $nachname wurde erfolgreich angelegt</b><br><br><a href='mitarbeiterimport.php'>Neue Person anlegen</a><br>");
die("<b>MitarbeiterIn $vorname $vornamen $nachname ($uid) wurde erfolgreich angelegt</b><br><br><a href='mitarbeiterimport.php'>Neue Person anlegen</a><br>");
}
else
{
@@ -925,7 +934,8 @@ echo '<tr><td>Wunsch-UID</td><td><input type="text" name="wunschUid" id="wunschU
echo '<span style="padding: 0 3px" id="checkUID"></span>';
if ($showagain)
echo '<br>';
echo '<button type="button" title="Prüft, ob die UID schon vorhanden ist. Keine Sonderzeichen, Umlaute oder Leerzeichen in der UID" href="#" onclick="checkWunschUid()"> Check UID </button> (optional, max. 32)
echo '<button type="button" title="Prüft, ob die UID schon vorhanden ist. Keine Sonderzeichen, Umlaute oder Leerzeichen in der UID"
href="#" onclick="checkWunschUid()"> Check UID </button> (optional, max. 32)
</td></tr>';
echo '<tr><td>Anrede</td><td><input type="text" id="anrede" name="anrede" maxlength="16" size="30" value="'.$anrede.'" onblur="AnredeChange()"/></td></tr>';
echo '<tr><td>Titel(Pre)</td><td><input type="text" id="titel" name="titel" maxlength="64" size="30" value="'.$titel.'" /></td></tr>';