mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
1d63b8de44
betriebsmittel einschraenkung ueber prop moeglich (nur anzeige)
159 lines
3.9 KiB
PHP
159 lines
3.9 KiB
PHP
<?php
|
|
class Betriebsmittelperson_model extends DB_Model
|
|
{
|
|
/**
|
|
* Constructor
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->dbTable = 'wawi.tbl_betriebsmittelperson';
|
|
$this->pk = 'betriebsmittelperson_id';
|
|
}
|
|
|
|
/**
|
|
* Get Betriebsmittel by person.
|
|
* @param string $person_id
|
|
* @param string $betriebsmitteltyp
|
|
* @param bool $isRetourniert False to retrieve only active Betriebsmittel.
|
|
* @return array|bool
|
|
*/
|
|
public function getBetriebsmittel($person_id, $betriebsmitteltyp = null, $isRetourniert = null, $onlyAktiveBenutzer=false)
|
|
{
|
|
if (!is_numeric($person_id))
|
|
{
|
|
$this->errormsg = 'Person_id type is not valid.';
|
|
return false;
|
|
}
|
|
|
|
$this->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id');
|
|
|
|
if( $onlyAktiveBenutzer ) {
|
|
$this->addJoin('public.tbl_benutzer b', 'b.uid = wawi.tbl_betriebsmittelperson.uid AND b.aktiv = \'t\'');
|
|
}
|
|
|
|
$condition = '
|
|
wawi.tbl_betriebsmittelperson.person_id = '. $this->escape($person_id). '
|
|
';
|
|
|
|
if (is_string($betriebsmitteltyp)) {
|
|
$condition .= '
|
|
AND betriebsmitteltyp = ' . $this->escape($betriebsmitteltyp);
|
|
}
|
|
|
|
if ($isRetourniert === true) {
|
|
$condition .= '
|
|
AND retouram IS NOT NULL'; // return date is given
|
|
}
|
|
elseif ($isRetourniert === false)
|
|
{
|
|
$condition .= '
|
|
AND retouram IS NULL'; // default
|
|
}
|
|
|
|
$this->addOrder('ausgegebenam', 'DESC'); // default
|
|
|
|
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);
|
|
}
|
|
|
|
public function getBetriebsmittelByUid($uid, $betriebsmitteltyp = null, $isRetourniert = false)
|
|
{
|
|
$this->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id');
|
|
|
|
$condition = ' wawi.tbl_betriebsmittelperson.uid = '. $this->escape($uid);
|
|
|
|
if (is_string($betriebsmitteltyp))
|
|
{
|
|
$condition .= ' AND betriebsmitteltyp = ' . $this->escape($betriebsmitteltyp);
|
|
}
|
|
|
|
if ($isRetourniert === true) {
|
|
$condition .= ' AND retouram IS NOT NULL';
|
|
}
|
|
elseif ($isRetourniert === false)
|
|
{
|
|
$condition .= ' AND retouram IS NULL';
|
|
}
|
|
|
|
$this->addOrder('ausgegebenam', 'DESC');
|
|
|
|
return $this->loadWhere($condition);
|
|
}
|
|
|
|
public function getBetriebsmittelData($id, $type_id, $betriesmitteltypes = null)
|
|
{
|
|
switch ($type_id) {
|
|
case 'person_id':
|
|
$cond = 'bmp.person_id';
|
|
break;
|
|
case 'uid':
|
|
$cond = 'bmp.uid';
|
|
break;
|
|
case 'betriebsmittelperson_id':
|
|
$cond = 'bmp.betriebsmittelperson_id';
|
|
break;
|
|
default:
|
|
return error("ID nicht gültig");
|
|
}
|
|
|
|
$cond .= " = ? ";
|
|
$params[] = $id;
|
|
|
|
if ($betriesmitteltypes && !isEmptyArray($betriesmitteltypes))
|
|
{
|
|
$cond .= " AND bm.betriebsmitteltyp IN ?";
|
|
$params[] = $betriesmitteltypes;
|
|
}
|
|
|
|
$query = "
|
|
SELECT
|
|
bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung,
|
|
bmp.retouram,
|
|
bmp.ausgegebenam,
|
|
bm.beschreibung, bmp.uid, bmp.kaution,
|
|
bm.betriebsmittel_id, bmp.betriebsmittelperson_id,
|
|
bm.inventarnummer, bm.nummer2
|
|
FROM
|
|
wawi.tbl_betriebsmittelperson bmp
|
|
JOIN
|
|
wawi.tbl_betriebsmittel bm ON (bmp.betriebsmittel_id = bm.betriebsmittel_id)
|
|
WHERE
|
|
" . $cond;
|
|
|
|
return $this->execQuery($query, $params);
|
|
}
|
|
|
|
/**
|
|
* Perform a loadWhere on the vw_betriebsmittelperson DB View
|
|
*
|
|
* @param array $where
|
|
*
|
|
* @return stdClass
|
|
*/
|
|
public function loadViewWhere($where)
|
|
{
|
|
$table = $this->dbTable;
|
|
$this->dbTable = 'public.vw_betriebsmittelperson';
|
|
$result = $this->loadWhere($where);
|
|
$this->dbTable = $table;
|
|
return $result;
|
|
}
|
|
}
|