fix merge conflicts after merging master

This commit is contained in:
Harald Bamberger
2022-03-28 11:36:47 +02:00
98 changed files with 4052 additions and 1441 deletions
+33
View File
@@ -11,4 +11,37 @@ class Bisio_model extends DB_Model
$this->dbTable = 'bis.tbl_bisio';
$this->pk = 'bisio_id';
}
/**
* Gets duration of stay in days by bisio_id.
* @param int $bisio_id
* @return object success with number of days or error
*/
public function getAufenthaltsdauer($bisio_id)
{
// get from and to date
$this->addSelect('von, bis');
$bisioRes = $this->load($bisio_id);
if (isError($bisioRes))
return $bisioRes;
if (hasData($bisioRes))
{
$bisioData = getData($bisioRes)[0];
$avon = $bisioData->von;
$abis = $bisioData->bis;
if (is_null($avon) || is_null($abis))
return success("Von or bis date not set");
$vonDate = new DateTime($avon);
$bisDate = new DateTime($abis);
$interval = $vonDate->diff($bisDate);
return success($interval->days);
}
else
return success("Bisio not found");
}
}
+32 -27
View File
@@ -18,45 +18,50 @@ class Konto_model extends DB_Model
public function setPaid($buchungsnr)
{
// get payment
$buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
$buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
if(isSuccess($buchungResult) && hasData($buchungResult))
if (isSuccess($buchungResult) && hasData($buchungResult))
{
$buchung = getData($buchungResult)[0];
// get already paid amount
$this->addSelect('sum(betrag) as bezahlt');
$this->addGroupBy('buchungsnr_verweis');
$buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
$buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
if(isSuccess($buchungVerweisResult))
if (isSuccess($buchungVerweisResult))
{
if(hasData($buchungVerweisResult))
{
$betragBezahltResult = getData($buchungVerweisResult);
$betragBezahlt = $betragBezahltResult->bezahlt;
}
else
$betragBezahlt = 0;
$betragBezahlt = 0;
$buchung = getData($buchungResult);
$buchung = $buchung[0];
if (hasData($buchungVerweisResult))
{
$betragBezahlt = getData($buchungVerweisResult)[0]->bezahlt;
}
// calculate open amount
$betragOffen = $betragBezahlt - $buchung->betrag*(-1);
$betragOffen = $betragBezahlt - $buchung->betrag * (-1);
$data = array(
'person_id' => $buchung->person_id,
'studiengang_kz' => $buchung->studiengang_kz,
'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz,
'buchungsnr_verweis' => $buchungsnr,
'betrag' => str_replace(',','.',$betragOffen*(-1)),
'buchungsdatum' => date('Y-m-d'),
'buchungstext' => $buchung->buchungstext,
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => '',
'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz,
);
if ($betragOffen != 0)
{
$data = array(
'person_id' => $buchung->person_id,
'studiengang_kz' => $buchung->studiengang_kz,
'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz,
'buchungsnr_verweis' => $buchungsnr,
'betrag' => str_replace(',', '.', $betragOffen * (-1)),
'buchungsdatum' => date('Y-m-d'),
'buchungstext' => $buchung->buchungstext,
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => '',
'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz,
);
return $this->insert($data);
return $this->insert($data);
}
else
{
return success();
}
}
else
{
@@ -86,9 +86,10 @@ class Zeugnisnote_model extends DB_Model
* @param bool $lehre
* @param bool $offiziell
* @param bool $positiv
* @param bool $zeugnis
* @return object
*/
public function getByPerson($person_id, $studiensemester_kurzbz, $aktiv = true, $lehre = null, $offiziell = null, $positiv = null)
public function getByPerson($person_id, $studiensemester_kurzbz, $aktiv = true, $lehre = null, $offiziell = null, $positiv = null, $zeugnis = null)
{
$params = array($person_id, $studiensemester_kurzbz);
@@ -129,6 +130,12 @@ class Zeugnisnote_model extends DB_Model
$params[] = $positiv;
}
if (isset($zeugnis))
{
$qry .= ' AND lv.zeugnis = ?';
$params[] = $zeugnis;
}
$qry .= ' ORDER BY zgnisnote.benotungsdatum';
return $this->execQuery($qry, $params);
@@ -448,10 +448,11 @@ class Studiengang_model extends DB_Model
return $this->execQuery($query, array($typ));
}
/**
* Get Studiengangsleitung
* @param null $studiengang_kz
* Get Studiengangsleitung/en of Studiengang/Studiengaenge.
*
* @param null $studiengang_kz Numeric or Array
* @return array
*/
public function getLeitung($studiengang_kz = null)
@@ -460,7 +461,12 @@ class Studiengang_model extends DB_Model
$this->addJoin('public.tbl_benutzerfunktion', 'oe_kurzbz');
$this->addJoin('public.tbl_benutzer', 'uid');
$this->addJoin('public.tbl_person', 'person_id');
if (!is_numeric($studiengang_kz) && !is_array($studiengang_kz))
{
return error('Studiengangskennzahl ungültig');
}
if (is_null($studiengang_kz))
{
$condition = '
@@ -469,16 +475,21 @@ class Studiengang_model extends DB_Model
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
';
}
elseif (is_numeric($studiengang_kz))
elseif (is_numeric($studiengang_kz) || is_array($studiengang_kz))
{
if (is_array($studiengang_kz))
{
$studiengang_kz = array_map(array($this,'escape'), $studiengang_kz);
$studiengang_kz = implode(', ', $studiengang_kz);
}
$condition = '
funktion_kurzbz = \'Leitung\'
AND ( datum_von <= NOW() OR datum_von IS NULL )
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
AND studiengang_kz = ' . $this->db->escape($studiengang_kz)
AND studiengang_kz IN (' . $studiengang_kz. ')';
;
}
return $this->loadWhere($condition);
}
+56 -11
View File
@@ -165,7 +165,7 @@ class Person_model extends DB_Model
if (!hasData($person))
return success(null);
$this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
$this->KontaktModel->addSelect('kontakt_id, kontakttyp, anmerkung, kontakt, zustellung');
$this->KontaktModel->addOrder('kontakttyp');
$this->KontaktModel->addOrder('insertamum', 'DESC');
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustellung' => true) : array('person_id' => $person_id);
@@ -268,16 +268,61 @@ class Person_model extends DB_Model
public function checkDuplicate($person_id)
{
$qry = "SELECT sp.person_id
FROM public.tbl_person p
LEFT JOIN public.tbl_person sp ON p.vorname = sp.vorname
AND p.nachname = sp.nachname
AND p.gebdatum = sp.gebdatum
JOIN public.tbl_prestudent ps ON sp.person_id = ps.person_id
JOIN public.tbl_prestudentstatus pss ON ps.prestudent_id = pss.prestudent_id
WHERE p.person_id = ? AND sp.person_id != ? AND pss.status_kurzbz = ?";
$qry = "SELECT person_id
FROM public.tbl_prestudent p
JOIN
(
SELECT DISTINCT ON(prestudent_id) *
FROM public.tbl_prestudentstatus
WHERE prestudent_id IN
(
SELECT prestudent_id
FROM public.tbl_prestudent
WHERE person_id IN
(
SELECT p2.person_id
FROM public.tbl_person p
JOIN public.tbl_person p2
ON p.vorname = p2.vorname
AND p.nachname = p2.nachname
AND p.gebdatum = p2.gebdatum
AND p.person_id = ?
)
)
ORDER BY prestudent_id, datum DESC, insertamum DESC
) ps USING(prestudent_id)
JOIN public.tbl_status USING(status_kurzbz)
WHERE status_kurzbz = 'Interessent'
AND studiengang_kz IN
(
SELECT studiengang_kz
FROM public.tbl_prestudent p
JOIN
(
SELECT DISTINCT ON(prestudent_id) *
FROM public.tbl_prestudentstatus
WHERE prestudent_id IN
(
SELECT prestudent_id
FROM public.tbl_prestudent
WHERE person_id IN
(
SELECT p2.person_id
FROM public.tbl_person p
JOIN public.tbl_person p2
ON p.vorname = p2.vorname
AND p.nachname = p2.nachname
AND p.gebdatum = p2.gebdatum
AND p.person_id = ?
)
)
ORDER BY prestudent_id, datum DESC, insertamum DESC
) ps USING(prestudent_id)
JOIN public.tbl_status USING(status_kurzbz)
WHERE status_kurzbz = 'Abbrecher'
)
";
return $this->execQuery($qry, array($person_id, $person_id, 'Abbrecher'));
return $this->execQuery($qry, array($person_id, $person_id));
}
}
+39
View File
@@ -12,6 +12,45 @@ class Issue_model extends DB_Model
$this->pk = 'issue_id';
}
/**
* Gets issues which are open, i.e. not resolved.
* @param array $fehlercodes only issues for given fehler are retrieved
* @param int $person_id
* @param string $oe_kurzbz
* @param string $fehlercode_extern
* @return object success with issues or error
*/
public function getOpenIssues($fehlercodes, $person_id = null, $oe_kurzbz = null, $fehlercode_extern = null)
{
$params = array($fehlercodes);
// issue exists for a fehlercode (or fehlercode_extern), person_id, oe_kurzbz, if not verarbeitet yet
$qry = 'SELECT issue_id, fehlercode, inhalt, fehlercode_extern, inhalt_extern, person_id, oe_kurzbz,
behebung_parameter, datum, verarbeitetvon, verarbeitetamum
FROM system.tbl_issue
WHERE fehlercode IN ?
AND verarbeitetamum IS NULL';
if (!isEmptyString($fehlercode_extern))
{
$qry .= ' AND fehlercode_extern = ?';
$params[] = $fehlercode_extern;
}
if (isset($person_id))
{
$qry .= ' AND person_id = ?';
$params[] = $person_id;
}
if (isset($oe_kurzbz))
{
$qry .= ' AND oe_kurzbz = ?';
$params[] = $oe_kurzbz;
}
return $this->execQuery($qry, $params);
}
/**
* Gets number of open (non-resolved) issues.
* @param string $fehlercode unique error code