mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Merge branch 'master' into feature-10450/DVUH_requestMatrikelnummer
This commit is contained in:
@@ -580,6 +580,35 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($person_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get latest ZGV Bezeichnung of Prestudent.
|
||||
*
|
||||
* @param $prestudent_id
|
||||
*/
|
||||
public function getLatestZGVBezeichnung($prestudent_id)
|
||||
{
|
||||
if (!is_numeric($prestudent_id))
|
||||
{
|
||||
show_error('Prestudent_id is not numeric.');
|
||||
}
|
||||
|
||||
$language_index = getUserLanguage() == 'German' ? 0 : 1;
|
||||
|
||||
$this->addSelect('
|
||||
COALESCE(
|
||||
array_to_json(zgvmaster.bezeichnung::varchar[])->>' . $language_index . ',
|
||||
array_to_json(zgv.bezeichnung::varchar[])->>' . $language_index . '
|
||||
) AS bezeichnung'
|
||||
);
|
||||
|
||||
$this->addJoin('bis.tbl_zgv zgv', 'zgv_code', 'LEFT');
|
||||
$this->addJoin('bis.tbl_zgvmaster zgvmaster', 'zgvmas_code', 'LEFT');
|
||||
|
||||
return $this->loadWhere(array(
|
||||
'prestudent_id' => $prestudent_id
|
||||
));
|
||||
}
|
||||
|
||||
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
<?php
|
||||
class Anrechnung_model extends DB_Model
|
||||
{
|
||||
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
|
||||
|
||||
const ANRECHNUNGSTATUS_APPROVED = 'approved';
|
||||
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -12,6 +16,55 @@ class Anrechnung_model extends DB_Model
|
||||
$this->pk = 'anrechnung_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates new Anrechnungsantrag.
|
||||
* Saves new Anrechnung and sets Anrechnungstatus for the new Anrechnung.
|
||||
*
|
||||
* @param $prestudent_id
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $begruendung_id
|
||||
* @param $dms_id DMS ID of uploaded Nachweisdokument
|
||||
* @param null $anmerkung_student = Herkunft der Kenntnisse
|
||||
* @return array
|
||||
*/
|
||||
public function createAnrechnungsantrag(
|
||||
$prestudent_id, $studiensemester_kurzbz, $lehrveranstaltung_id,
|
||||
$begruendung_id, $dms_id, $anmerkung_student = null
|
||||
)
|
||||
{
|
||||
// Start DB transaction
|
||||
$this->db->trans_start(false);
|
||||
|
||||
// Save Anrechnung
|
||||
$result = $this->AnrechnungModel->insert(array(
|
||||
'prestudent_id' => $prestudent_id,
|
||||
'lehrveranstaltung_id' => $lehrveranstaltung_id,
|
||||
'begruendung_id' => $begruendung_id,
|
||||
'dms_id' => $dms_id,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'anmerkung_student' => $anmerkung_student,
|
||||
'insertvon' => $this->_uid
|
||||
));
|
||||
|
||||
// Store just inserted Anrechnung ID
|
||||
$lastInsert_anrechnung_id = $result->retval;
|
||||
|
||||
// Save Anrechnungstatus
|
||||
$this->AnrechnungModel->saveAnrechnungstatus($lastInsert_anrechnung_id, self::ANRECHNUNGSTATUS_PROGRESSED_BY_STGL);
|
||||
|
||||
// Transaction complete
|
||||
$this->db->trans_complete();
|
||||
|
||||
if ($this->db->trans_status() === false)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
return error('Failed inserting Anrechnung', EXIT_ERROR);
|
||||
}
|
||||
|
||||
return success($lastInsert_anrechnung_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save Anrechnungstatus.
|
||||
* @param $anrechnung_id
|
||||
@@ -83,4 +136,68 @@ class Anrechnung_model extends DB_Model
|
||||
|
||||
return $this->execQuery($qry, array($anrechnung_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Anrechnungstatus.
|
||||
*
|
||||
* @param $anrechnungstatus_id
|
||||
*/
|
||||
public function deleteAnrechnungstatus($anrechnungstatus_id){
|
||||
|
||||
$qry = '
|
||||
DELETE FROM lehre.tbl_anrechnung_anrechnungstatus
|
||||
WHERE anrechnungstatus_id = ?
|
||||
';
|
||||
|
||||
return $this->execQuery($qry, array($anrechnungstatus_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete last status approved / rejected.
|
||||
* If last status is 'approved', Genehmigung is resetted.
|
||||
*
|
||||
* @param $anrechnung_id
|
||||
* @return array
|
||||
*/
|
||||
public function withdrawApprovement($anrechnung_id)
|
||||
{
|
||||
// Get last Anrechnungstatus
|
||||
if (!$result = getData($this->AnrechnungModel->getLastAnrechnungstatus($anrechnung_id))[0])
|
||||
{
|
||||
return error('Failed loading Anrechnung');
|
||||
}
|
||||
|
||||
$last_status = $result->status_kurzbz;
|
||||
$anrechnungstatus_id = $result->anrechnungstatus_id;
|
||||
|
||||
// Exit, if last status is not approved / rejected
|
||||
if ($last_status != self::ANRECHNUNGSTATUS_APPROVED && $last_status != self::ANRECHNUNGSTATUS_REJECTED)
|
||||
{
|
||||
return error('Nothing to withdraw. Application is still in progress');
|
||||
}
|
||||
|
||||
// Start DB transaction
|
||||
$this->db->trans_start(false);
|
||||
|
||||
// If Anrechnung was approved
|
||||
if ($last_status == self::ANRECHNUNGSTATUS_APPROVED)
|
||||
{
|
||||
// Reset Genehmigung
|
||||
$this->AnrechnungModel->update($anrechnung_id, array('genehmigt_von' => NULL));
|
||||
}
|
||||
|
||||
// Delete last status approved / rejected
|
||||
$this->AnrechnungModel->deleteAnrechnungstatus($anrechnungstatus_id);
|
||||
|
||||
// Transaction complete
|
||||
$this->db->trans_complete();
|
||||
|
||||
if ($this->db->trans_status() === false)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
return error('Failed withdrawing Genehmigung', EXIT_ERROR);
|
||||
}
|
||||
return success();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
|
||||
class Anrechnungbegruendung_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'lehre.tbl_anrechnung_begruendung';
|
||||
$this->pk = 'begruendung_id';
|
||||
}
|
||||
}
|
||||
@@ -20,8 +20,8 @@ class Geschaeftsjahr_model extends DB_Model
|
||||
{
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_geschaeftsjahr
|
||||
WHERE start <= now()
|
||||
AND ende >= now()
|
||||
WHERE start <= CURRENT_DATE
|
||||
AND ende >= CURRENT_DATE
|
||||
ORDER BY start DESC
|
||||
LIMIT 1';
|
||||
|
||||
|
||||
@@ -475,7 +475,7 @@ class Studiengang_model extends DB_Model
|
||||
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, FHC_INTEGER)
|
||||
AND studiengang_kz = ' . $this->db->escape($studiengang_kz)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user