Merge branch 'master' into feature-5491/UDFWidget_add_new_features

This commit is contained in:
Paolo
2020-01-28 11:03:51 +01:00
913 changed files with 3963 additions and 3173 deletions
@@ -22,8 +22,7 @@ class Konto_model extends DB_Model
$this->addJoin('wawi.tbl_konto_kostenstelle', 'konto_id');
$konten = $this->loadWhere(array('kostenstelle_id' => $kostenstelle_id));
if ($konten->error)
return error($konten->retval);
if ($konten->error) return $konten;
return $konten;
}
@@ -60,14 +60,14 @@ class Vertrag_model extends DB_Model
{
if ($this->LehreinheitmitarbeiterModel->hasVertrag($mitarbeiter_uid, $lehreinheit_id))
{
return success(null); // Exit if Lehrauftrag already has Vertrag
return error('Lehrauftrag existiert bereits'); // Exit if Lehrauftrag already has Vertrag
}
}
elseif ($vertragstyp_kurzbz == 'Betreuung')
{
if ($this->ProjektbetreuerModel->hasVertrag($person_id, $projektarbeit_id))
{
return success(null); // Exit if Projektbetreuung already has Vertrag
return error('Lehrauftrag existiert bereits'); // Exit if Projektbetreuung already has Vertrag
}
}
@@ -52,19 +52,21 @@ class Vertragvertragsstatus_model extends DB_Model
/**
* Set Vertragsstatus for the given Vertrag and Mitarbeiter.
* @param $vertrag_id
* @param $vertragsstatus_kurzbz
* @param $mitarbeiter_uid
* @return array|null On success object, retval is true. Null if status already exist for this vertrag.
* @param integer $vertrag_id
* @param string $mitarbeiter_uid
* @param string $vertragsstatus_kurzbz
* @return object On success, return success object.
* If status already exists or earlier status is missing, return error object.
*/
public function setStatus($vertrag_id, $mitarbeiter_uid, $vertragsstatus_kurzbz){
// Check if vertrag has already this status
$result = $this->hasStatus($vertrag_id, $mitarbeiter_uid, $vertragsstatus_kurzbz);
// If status is already set, return error message
if (hasData($result))
{
return success(null); // return null if status is already set
return error('Fehler: Status bereits vorhanden.');
}
// If new status should be 'akzeptiert', the latest status has to be 'erteilt'
@@ -72,10 +74,11 @@ class Vertragvertragsstatus_model extends DB_Model
{
$result = $this->getLastStatus($vertrag_id, $mitarbeiter_uid);
$last_status = getData($result)[0]->vertragsstatus_kurzbz;
// If latest status is not 'erteilt', return error message
if ($last_status != 'erteilt')
{
return success(null); // return null if latest status is not 'erteilt'
return error('Fehler: Vor Status \'angenommen\' muss erst Status \'erteilt\' gesetzt sein.');
}
}
@@ -130,5 +133,61 @@ class Vertragvertragsstatus_model extends DB_Model
);
}
/**
* Get all contracts, where the status had been set to 'bestellt' on given date
* @param string $string_date e.g. '01.11.2019' or special Date/Time inputs like 'YESTERDAY', 'TODAY', 'NOW'
* @param bool $further_processed If true, ALL ordered contracts of that day are retrieved, even if they were
* were ALSO approved/accepted/cancelled (further processed) on that same day.
* @return array
*/
public function getOrdered_fromDate($string_date = 'TODAY', $further_processed = false)
{
$condition = '
vertragsstatus_kurzbz = \'bestellt\' AND
(datum)::date = date \''. $string_date .'\'
';
if (!$further_processed)
{
$condition .= '
AND
vertrag_id NOT IN (
SELECT vertrag_id
FROM lehre.tbl_vertrag_vertragsstatus
WHERE vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\', \'storno\')
)
';
}
return $this->loadWhere($condition);
}
/**
* Get all contracts, where the status had been set to 'erteilt' on given date
* @param string $string_date e.g. '01.11.2019' or special Date/Time inputs like 'YESTERDAY', 'TODAY', 'NOW'
* @param bool $further_processed If true, ALL contracts approved on that day are retrieved, even if they were
* were ALSO accepted/cancelled (further processed) on that same day.
* @return array
*/
public function getApproved_fromDate($string_date = 'TODAY', $further_processed = false)
{
$condition = '
vertragsstatus_kurzbz = \'erteilt\' AND
(datum)::date = date \''. $string_date .'\'
';
if (!$further_processed)
{
$condition .= '
AND
vertrag_id NOT IN (
SELECT vertrag_id
FROM lehre.tbl_vertrag_vertragsstatus
WHERE vertragsstatus_kurzbz IN (\'akzeptiert\', \'storno\')
)
';
}
return $this->loadWhere($condition);
}
}
+1 -2
View File
@@ -186,8 +186,7 @@ class Akte_model extends DB_Model
$dokumente = $this->loadWhere($where);
if($dokumente->error)
return error($dokumente->retval);
if($dokumente->error) return $dokumente;
return success($dokumente->retval);
}
+4 -4
View File
@@ -214,7 +214,7 @@ class Prestudent_model extends DB_Model
if ($lastStatus->error)
{
return error($lastStatus->retval);
return $lastStatus;
}
if (count($lastStatus->retval) > 0)
@@ -222,7 +222,7 @@ class Prestudent_model extends DB_Model
//get Studiengangname from Studienplan and -ordnung
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent($prestudent_id);
if ($studienordnung->error)
return error($studienordnung->retval);
return $studienordnung;
if (count($studienordnung->retval) > 0)
{
@@ -239,7 +239,7 @@ class Prestudent_model extends DB_Model
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
if ($language->error)
return error($language->retval);
return $language;
if (count($language->retval) > 0)
$lastStatus->retval[0]->sprachedetails = $language->retval[0];
@@ -257,7 +257,7 @@ class Prestudent_model extends DB_Model
)
);
if ($bewerbungstermin->error)
return error($bewerbungstermin->retval);
return $bewerbungstermin;
if (count($bewerbungstermin->retval) > 0)
{
@@ -123,7 +123,7 @@ class Prestudentstatus_model extends DB_Model
if ($lastStatus->error)
{
return error($lastStatus->retval);
return $lastStatus;
}
if (count($lastStatus->retval) > 0)
@@ -158,7 +158,7 @@ class Prestudentstatus_model extends DB_Model
if ($lastStatus->error)
{
return error($lastStatus->retval);
return $lastStatus;
}
if (count($lastStatus->retval) > 0)
@@ -65,7 +65,7 @@ class Lehrveranstaltung_model extends DB_Model
$result = $this->StudiensemesterModel->getAusbildungssemesterByStudiensemesterAndStudiengang($studiensemester_kurzbz, $studiengang_kz_item);
if (isError($result))
return error($result->retval);
return error(getError($result));
foreach ($result->retval as $semester)
{
@@ -104,7 +104,7 @@ class Lehrveranstaltung_model extends DB_Model
if (count($studiengang_kz_arr) > 0)
$query .= " AND tbl_lehrveranstaltung.studiengang_kz IN (". implode(", ", $studiengang_kz_arr).")";
if (count($lehrveranstaltung_id_arr) > 0)
{
$query .= " AND tbl_lehrveranstaltung.lehrveranstaltung_id IN (". implode(', ', $lehrveranstaltung_id_arr).")";
@@ -144,7 +144,7 @@ class Lehrveranstaltung_model extends DB_Model
WHERE
vw_student_lehrveranstaltung.studiensemester_kurzbz=?
AND
vw_student_lehrveranstaltung.lehrveranstaltung_id=?
vw_student_lehrveranstaltung.lehrveranstaltung_id=?
ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
return $this->execQuery($query, array($studiensemester_kurzbz, $lehrveranstaltung_id));
@@ -48,7 +48,7 @@ class Benutzerfunktion_model extends DB_Model
if (is_string($funktion_kurzbz))
{
$query .= " AND funktion_kurzbz = ".$funktion_kurzbz.")";
$query .= " AND funktion_kurzbz = '".$funktion_kurzbz."'";
}
elseif (is_array($funktion_kurzbz) && count($funktion_kurzbz) > 0)
{
+4 -6
View File
@@ -158,8 +158,7 @@ class Person_model extends DB_Model
$person = $this->load($person_id);
if($person->error)
return error($person->retval);
if($person->error) return $person;
//return null if not found
if(count($person->retval) < 1)
@@ -170,14 +169,13 @@ class Person_model extends DB_Model
$this->KontaktModel->addOrder('kontakttyp');
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustellung' => true) : array('person_id' => $person_id);
$kontakte = $this->KontaktModel->loadWhere($where);
if($kontakte->error)
return error($kontakte->retval);
if($kontakte->error) return $kontakte;
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustelladresse' => true) : array('person_id' => $person_id);
$this->AdresseModel->addSelect('public.tbl_adresse.*, bis.tbl_nation.kurztext AS nationkurztext');
$this->AdresseModel->addJoin('bis.tbl_nation', 'tbl_adresse.nation = tbl_nation.nation_code', 'LEFT');
$adressen = $this->AdresseModel->loadWhere($where);
if($adressen->error)
return error($adressen->retval);
if($adressen->error) return $adressen;
$stammdaten = $person->retval[0];
$stammdaten->kontakte = $kontakte->retval;
@@ -11,7 +11,7 @@ class Benutzerrolle_model extends DB_Model
$this->dbTable = 'system.tbl_benutzerrolle';
$this->pk = 'benutzerberechtigung_id';
}
/**
* Checks if the given user is an admin
*/
@@ -19,9 +19,9 @@ class Benutzerrolle_model extends DB_Model
{
// Join with the table tbl_benutzer
$this->addJoin('public.tbl_benutzer', 'uid');
$result = $this->loadWhere(array('person_id' => $person_id, 'rolle_kurzbz' => 'admin'));
if (!isError($result))
{
if (hasData($result))
@@ -33,25 +33,35 @@ class Benutzerrolle_model extends DB_Model
$result = success(false);
}
}
return $result;
}
/**
* Get user who are authorized with berechtigung and, if given, authorized for the specific organisational unit.
* @param $berechtigung_kurzbz
* @param null $oe_kurzbz
* @return array
*/
public function getBenutzerByBerechtigung($berechtigung_kurzbz, $oe_kurzbz = null){
/**
* Get user who are authorized with berechtigung and, if given, authorized for the specific organisational unit.
* @param $berechtigung_kurzbz
* @param null $oe_kurzbz
* @return array
*/
public function getBenutzerByBerechtigung($berechtigung_kurzbz, $oe_kurzbz = null)
{
$params = array();
$query = '
SELECT
*
FROM
system.vw_berechtigung_nichtrekursiv
WHERE
berechtigung_kurzbz = ?';
$condition = array('berechtigung_kurzbz' => $berechtigung_kurzbz);
$params[] = $berechtigung_kurzbz;
if (is_string($oe_kurzbz))
{
$condition['oe_kurzbz'] = $oe_kurzbz;
}
if (!is_null($oe_kurzbz))
{
$query .= ' AND oe_kurzbz = ?';
$params[] = $oe_kurzbz;
}
return $this->loadWhere($condition);
}
}
return $this->execQuery($query, $params);
}
}
+24 -108
View File
@@ -37,17 +37,7 @@ class MessageToken_model extends DB_Model
WHERE r.token = ?
LIMIT 1';
$result = $this->db->query($sql, array(MSG_STATUS_DELETED, $token));
// If no errors occurred
if ($result)
{
return success($result->result());
}
else
{
return error($this->db->error());
}
return $this->execQuery($sql, array(MSG_STATUS_DELETED, $token));
}
/**
@@ -74,25 +64,24 @@ class MessageToken_model extends DB_Model
WHERE r.token = ?
LIMIT 1';
$msgs = $this->db->query($sql, array(MSG_STATUS_ARCHIVED, $token));
$msgsResult = $this->execQuery($sql, array(MSG_STATUS_ARCHIVED, $token));
// If no errors occurred
if ($msgs)
if (isSuccess($msgsResult))
{
$msgs_result = $msgs->result();
// If at least a record is present
if (count($msgs_result) > 0)
if (hasData($msgsResult))
{
$msg = $msgs_result[0];
$msg = getData($msgsResult)[0];
$msgStatusResult = error();
$msgStatusResult = false; // pessimistic expectation
$this->load->model('system/MsgStatus_model', 'MsgStatusModel');
// If the status of the message is unread
if ($msg->status == MSG_STATUS_UNREAD)
{
// Insert the read status
$msgStatusResult = $this->db->insert(
'public.tbl_msg_status',
$msgStatusResult = $this->MsgStatusModel->insert(
array(
'message_id' => $msg->message_id,
'person_id' => $msg->receiver_id,
@@ -108,31 +97,23 @@ class MessageToken_model extends DB_Model
// If the status of the message is read
else if ($msg->status == MSG_STATUS_READ)
{
// Update updateamum to current date
$this->db->set('updateamum', 'NOW()');
$this->db->where('message_id', $msg->message_id);
$this->db->where('person_id', $msg->receiver_id);
$this->db->where('status', MSG_STATUS_READ);
$msgStatusResult = $this->db->update('public.tbl_msg_status');
$msgStatusResult = $this->MsgStatusModel->update(
array(
'message_id' => $msg->message_id,
'person_id' => $msg->receiver_id,
'status' => MSG_STATUS_READ
),
array('updateamum' => 'NOW()')
);
}
// If some of the previous DB manipulation (update or insert) has failed
if (!$msgStatusResult)
{
return error($this->db->error());
}
return $msgStatusResult;
}
return success($msgs_result);
}
else
{
return error($this->db->error());
return $msgsResult;
}
return success($result->result());
}
/**
@@ -152,17 +133,7 @@ class MessageToken_model extends DB_Model
LEFT JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid)
WHERE p.person_id = ?';
$result = $this->db->query($sql, array($person_id));
// If no errors occurred
if ($result)
{
return success($result->result());
}
else
{
return error($this->db->error());
}
return $this->execQuery($sql, array($person_id));
}
/**
@@ -180,17 +151,7 @@ class MessageToken_model extends DB_Model
FROM public.tbl_person
WHERE person_id %s ?';
$result = $this->db->query(sprintf($sql, is_array($person_id) ? 'IN' : '='), array($person_id));
// If no errors occurred
if ($result)
{
return success($result->result());
}
else
{
return error($this->db->error());
}
return $this->execQuery(sprintf($sql, is_array($person_id) ? 'IN' : '='), array($person_id));
}
/**
@@ -200,35 +161,12 @@ class MessageToken_model extends DB_Model
{
$sql = 'SELECT m.mitarbeiter_uid
FROM public.tbl_person p
LEFT JOIN public.tbl_benutzer b USING(person_id)
LEFT JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid)
JOIN public.tbl_benutzer b USING(person_id)
JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid)
WHERE p.person_id = ?
AND b.aktiv = TRUE';
$result = $this->db->query($sql, array($person_id));
// If no errors occurred
if ($result)
{
// If data are present
if (is_array($result->result()) && count($result->result()) > 0)
{
$personresults = $result->result();
$person = $personresults[0];
// If it is an employee
if ($person->mitarbeiter_uid != null)
{
return true;
}
}
return false;
}
else
{
return error($this->db->error());
}
return $this->execQuery($sql, array($person_id));
}
/**
@@ -254,28 +192,6 @@ class MessageToken_model extends DB_Model
LIMIT 1
';
$result = $this->db->query($sql, array($oe_kurzbz));
if ($result) // If no errors occurred
{
$result_arr = $result->result();
// If data are present
if (is_array($result_arr)
&& count($result_arr) > 0
&& is_object($result_arr[0])
&& isset($result_arr[0]->oe_kurzbz))
{
return success($result_arr[0]->oe_kurzbz);
}
else
{
return error();
}
}
else
{
return error($this->db->error());
}
return $result;
return $this->execQuery($sql, array($oe_kurzbz));
}
}
@@ -29,8 +29,7 @@ class PersonLock_model extends DB_Model
$result = $this->loadWhere($lockdata);
if ($result->error)
return error($result->retval);
if ($result->error) return $result;
if (count($result->retval) > 0)
return success($result->retval);
@@ -49,8 +48,7 @@ class PersonLock_model extends DB_Model
{
$locked = $this->checkIfLocked($person_id, $app);
if ($locked->error)
return error($locked->retval);
if ($locked->error) return $locked;
//insert only if not already locked
if ($locked->retval === null)
@@ -77,8 +75,7 @@ class PersonLock_model extends DB_Model
foreach ($locks->retval as $lock)
{
$result = $this->delete($lock->lock_id);
if ($result->error)
return error($result->retval);
if ($result->error) return $result;
$deleted[] = $lock;
}
@@ -27,7 +27,7 @@ class Variablenname_model extends DB_Model
/**
* Gets defaults for user variables.
* If no default value present in table, SQL can be executed for retrieving the value.
* @param null $names optionally get only defaults for certain variables
* @param $names optionally get only defaults for certain variables
* @return array
*/
public function getDefaults($names = null)
@@ -36,13 +36,13 @@ class Variablenname_model extends DB_Model
$qry = "SELECT name, defaultwert FROM public.tbl_variablenname";
if (isset($names) && is_array($names))
if (!isEmptyArray($names))
{
$qry .= " WHERE name IN ('".implode(',', $names)."')";
$qry .= " WHERE name IN ?";
}
$qry .= ";";
$defaultsres = $this->execQuery($qry);
$defaultsres = $this->execQuery($qry, array('name' => $names));
if (hasData($defaultsres))
{