diff --git a/.gitignore b/.gitignore
index 247c57d2e..de95987a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ application/models/extensions/
application/views/extensions/
application/widgets/extensions/
application/logs/
+public/extensions/
tests/codeception/_output/*
!/tests/codeception/_output/.placeholder
tests/codeception/codeception.yml
diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php
index 15c5d8be0..dfb690278 100644
--- a/application/config/fhcomplete.php
+++ b/application/config/fhcomplete.php
@@ -236,6 +236,13 @@ $config['fhc_acl'] = array
'wawi.tbl_rechnungstyp' => 'basis/rechnungstyp',
'wawi.tbl_zahlungstyp' => 'basis/zahlungstyp',
+ // Temporary
+ 'extension.tbl_budgetantrag' => 'basis/kostenstelle',
+ 'extension.tbl_budgetposition' => 'basis/kostenstelle',
+ 'extension.tbl_budgetstatus' => 'basis/kostenstelle',
+ 'extension.tbl_budgetantrag_status' => 'basis/kostenstelle',
+ 'extension.tbl_dsms_anonymisierung' => 'dsms/export',
+
DMS_PATH => 'fs/dms',
'PhrasesLib.getPhrase' => 'system/PhrasesLib'
diff --git a/application/config/navigation.php b/application/config/navigation.php
index 6e1c711ed..abb5338b6 100644
--- a/application/config/navigation.php
+++ b/application/config/navigation.php
@@ -1,18 +1,8 @@
array(
- 'FH-Complete' => base_url('index.ci.php/'),
- 'Vilesci' => base_url('/vilesci'),
- 'CIS' => CIS_ROOT
- ),
- 'system/infocenter/InfoCenter/index' => array(
- 'FH-Complete' => base_url('index.ci.php/'),
- 'Vilesci' => base_url('/vilesci'),
- 'CIS' => CIS_ROOT
- ),
- 'system/infocenter/InfoCenter/showDetails' => array(
- 'FH-Complete' => base_url('index.ci.php/'),
+ '*' => array(
+ 'FH-Complete' => site_url(''),
'Vilesci' => base_url('/vilesci'),
'CIS' => CIS_ROOT
)
@@ -39,7 +29,7 @@ $config['navigation_menu']['Vilesci/index'] = array(
'expand' => true
),
'Infocenter' => array(
- 'link' => base_url('index.ci.php/system/infocenter/InfoCenter'),
+ 'link' => site_url('/system/infocenter/InfoCenter'),
'icon' => 'info',
'description' => 'Infocenter',
'expand' => true
@@ -59,16 +49,10 @@ $config['navigation_menu']['Vilesci/index'] = array(
'expand' => true
),
'Extensions' => array(
- 'link' => base_url('index.ci.php/system/extensions/Manager'),
+ 'link' => site_url('/system/extensions/Manager'),
'icon' => 'cubes',
'description' => 'Extensions Manager',
'expand' => true
- ),
- 'Datenschutz' => array(
- 'link' => base_url('index.ci.php/extensions/FHC-Core-DSMS/export'),
- 'description' => 'Datenschutz',
- 'icon' => 'legal',
- 'expand' => true
)
)
)
diff --git a/application/controllers/system/Navigation.php b/application/controllers/system/Navigation.php
index 037a7d0f4..65f311c66 100644
--- a/application/controllers/system/Navigation.php
+++ b/application/controllers/system/Navigation.php
@@ -10,20 +10,23 @@ class Navigation extends VileSci_Controller
const SESSION_NAME = 'NAVIGATION_MENU';
/**
- *
+ * Constructor
*/
public function __construct()
- {
- parent::__construct();
+ {
+ parent::__construct();
$this->config->load('navigation');
- // Load session library
- $this->load->library('session');
- }
+ // Load session library
+ $this->load->library('session');
+ $this->load->library('ExtensionsLib');
+ }
/**
- *
+ * This function creates the left Menu for each Page
+ * @param navigation_widget_called GET Parameter witch holds the currently called Page
+ * @return JSON object with the Menu Entries
*/
public function menu()
{
@@ -32,16 +35,33 @@ class Navigation extends VileSci_Controller
if (isset($navigation_widget_called))
{
+ // Get Menu Entries of the Core
$navigationMenuArray = $this->config->item('navigation_menu');
+ $json = $this->wildcardsearch($navigationMenuArray, $navigation_widget_called);
- if (isset($navigationMenuArray) && is_array($navigationMenuArray))
+ // Load Menu Entries of Extensions
+ $extensions = $this->extensionslib->getInstalledExtensions();
+ if(hasData($extensions))
{
- if (isset($navigationMenuArray[$navigation_widget_called]))
+ $json_extension = array();
+ foreach($extensions->retval as $ext)
{
- $json = $navigationMenuArray[$navigation_widget_called];
+ $filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/navigation.php';
+ if (file_exists($filename))
+ {
+ unset($config);
+ include($filename);
+ if(isset($config['navigation_menu']) && is_array($config['navigation_menu']))
+ {
+ $json_extension = array_merge_recursive($json_extension, $this->wildcardsearch($config['navigation_menu'], $navigation_widget_called));
+ }
+ }
}
+ // Merge Extension Menuentries with the Core Entries
+ $json = array_merge_recursive($json, $json_extension);
}
+ // Load dynamic Menu Entries from Session
if (isset($_SESSION['navigation_menu']))
{
$navigationMenuSessionArray = $_SESSION['navigation_menu'];
@@ -50,7 +70,7 @@ class Navigation extends VileSci_Controller
{
if (isset($navigationMenuSessionArray[$navigation_widget_called]))
{
- $json = array_merge($json, $navigationMenuSessionArray[$navigation_widget_called]);
+ $json = array_merge_recursive($json, $navigationMenuSessionArray[$navigation_widget_called]);
}
}
}
@@ -60,7 +80,9 @@ class Navigation extends VileSci_Controller
}
/**
- *
+ * This function creates the Top Menu for each Page
+ * @param navigation_widget_called GET Parameter witch holds the currently called Page
+ * @return JSON object with the Menu Entries
*/
public function header()
{
@@ -69,16 +91,32 @@ class Navigation extends VileSci_Controller
if (isset($navigation_widget_called))
{
+ // Load Header Entries of Core
$navigationHeaderArray = $this->config->item('navigation_header');
+ $json = $this->wildcardsearch($navigationHeaderArray, $navigation_widget_called);
- if (isset($navigationHeaderArray) && is_array($navigationHeaderArray))
+ // Load Header Entries of Extensions
+ $extensions = $this->extensionslib->getInstalledExtensions();
+ if(hasData($extensions))
{
- if (isset($navigationHeaderArray[$navigation_widget_called]))
+ $json_extension = array();
+ foreach($extensions->retval as $ext)
{
- $json = $navigationHeaderArray[$navigation_widget_called];
+ $filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/navigation.php';
+ if (file_exists($filename))
+ {
+ unset($config);
+ include($filename);
+ if(isset($config['navigation_header']) && is_array($config['navigation_header']))
+ {
+ $json_extension = array_merge_recursive($json_extension, $this->wildcardsearch($config['navigation_header'], $navigation_widget_called));
+ }
+ }
}
+ $json = array_merge_recursive($json, $json_extension);
}
+ // Load dynamic Header Entries from Session
if (isset($_SESSION['navigation_header']))
{
$navigationHeaderSessionArray = $_SESSION['navigation_header'];
@@ -87,7 +125,8 @@ class Navigation extends VileSci_Controller
{
if (isset($navigationHeaderSessionArray[$navigation_widget_called]))
{
- $json = array_merge($json, $navigationHeaderSessionArray[$navigation_widget_called]);
+ $jsontmp = $this->wildcardsearch($navigationHeaderSessionArray, $navigation_widget_called);
+ $json = array_merge_recursive($json, $jsontmp);
}
}
}
@@ -95,4 +134,47 @@ class Navigation extends VileSci_Controller
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
+
+ /**
+ * Searches a Menuentry. If there is no exact entry it searches for Wildcard Entries with a Star
+ * Example:
+ * Searching for /system/foo/index will Match the following Menuentries:
+ * /system/foo/index
+ * /system/foo/*
+ * /system/*
+ * *
+ *
+ * @param $navigationArray Array to Search in.
+ * @param $navigation_widget_called Navigation to search for.
+ * @return Navigation Array if found, empty array otherwise
+ */
+ private function wildcardsearch($navigationArray, $navigation_widget_called)
+ {
+ // Sort Navigation to have them in correct order
+ krsort($navigationArray);
+
+ // 100% match found
+ if(isset($navigationArray[$navigation_widget_called]))
+ {
+ return $navigationArray[$navigation_widget_called];
+ }
+ else
+ {
+ foreach($navigationArray as $key=>$row)
+ {
+ // Search for * Entries
+ if(mb_strpos($key, '*') === 0 || mb_strpos($key, '*') === mb_strlen($key) - 1)
+ {
+ // Take * Entry if Matches
+ $search = mb_substr($key, 0, -1);
+ if($search == '' || mb_strpos($navigation_widget_called, $search) === 0)
+ {
+ return $row;
+ }
+ }
+ }
+ }
+
+ return array();
+ }
}
diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php
index 5b13ce76d..23b4972c2 100644
--- a/application/controllers/system/infocenter/InfoCenter.php
+++ b/application/controllers/system/infocenter/InfoCenter.php
@@ -559,11 +559,6 @@ class InfoCenter extends VileSci_Controller
{
$toPrint = "%s=%s";
- if ($this->router->method != 'index')
- {
-
- }
-
$tofill['children'][] = array(
'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filter_id'), $filterId),
'description' => $description,
@@ -896,7 +891,7 @@ class InfoCenter extends VileSci_Controller
//parse freigabe html email template, wordwrap wraps text so no display errors
$email = wordwrap($this->parser->parse('templates/mailtemplates/interessentFreigabe', $data, true), 70);
- $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' freigegeben';
+ $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' für '.$prestudent->studiengangbezeichnung.$orgform.' freigegeben';
$receiver = $prestudent->studiengangmail;
diff --git a/application/libraries/ExtensionsLib.php b/application/libraries/ExtensionsLib.php
index 25e9c666a..26f1c5247 100644
--- a/application/libraries/ExtensionsLib.php
+++ b/application/libraries/ExtensionsLib.php
@@ -723,6 +723,7 @@ class ExtensionsLib
);
if (!$_addSoftLinks)
{
+ log_message('error','Failed to create Symlink to '.$extensionPath.$targetDirectory);
break;
}
}
diff --git a/application/libraries/VorlageLib.php b/application/libraries/VorlageLib.php
index 7ea3de93d..ea96f3e18 100644
--- a/application/libraries/VorlageLib.php
+++ b/application/libraries/VorlageLib.php
@@ -114,6 +114,8 @@ class VorlageLib
$queryParameters["sprache"] = $sprache;
}
+ $this->ci->VorlageStudiengangModel->addOrder('version', 'DESC');
+
$vorlage = $this->ci->VorlageStudiengangModel->loadWhere($queryParameters);
// If the searched template was not found
if (!hasData($vorlage))
diff --git a/application/models/accounting/Konto_model.php b/application/models/accounting/Konto_model.php
index d041909cd..d76b2bd46 100644
--- a/application/models/accounting/Konto_model.php
+++ b/application/models/accounting/Konto_model.php
@@ -11,4 +11,20 @@ class Konto_model extends DB_Model
$this->dbTable = 'wawi.tbl_konto';
$this->pk = 'konto_id';
}
+
+ /**
+ * Gets all Konten connected for a Kostenstelle
+ * @param $kostenstelle_id
+ * @return array
+ */
+ public function getKontenForKostenstelle($kostenstelle_id)
+ {
+ $this->addJoin('wawi.tbl_konto_kostenstelle', 'konto_id');
+ $konten = $this->loadWhere(array('kostenstelle_id' => $kostenstelle_id));
+
+ if ($konten->error)
+ return error($konten->retval);
+
+ return $konten;
+ }
}
diff --git a/application/models/accounting/Kostenstelle_model.php b/application/models/accounting/Kostenstelle_model.php
index 489286306..fd064125c 100644
--- a/application/models/accounting/Kostenstelle_model.php
+++ b/application/models/accounting/Kostenstelle_model.php
@@ -11,4 +11,52 @@ class Kostenstelle_model extends DB_Model
$this->dbTable = 'wawi.tbl_kostenstelle';
$this->pk = 'kostenstelle_id';
}
+
+ /**
+ * Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
+ * @param $geschaeftsjahr
+ * @return array|null
+ */
+ public function getActiveKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
+ {
+ $this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
+
+ if ($geschaeftsjahr === null)
+ {
+ $lgj = $this->GeschaeftsjahrModel->getLastGeschaeftsjahr();
+
+ if ($lgj->error)
+ return error($lgj->retval);
+
+ if (count($lgj->retval) < 1)
+ return success(array());
+
+ $geschaeftsjahr = $lgj->retval[0]->geschaeftsjahr_kurzbz;
+ }
+
+ $this->GeschaeftsjahrModel->addSelect('start, ende');
+ $gj = $this->GeschaeftsjahrModel->load($geschaeftsjahr);
+
+ if ($gj->error)
+ return error($gj->retval);
+
+ if (count($gj->retval) < 1)
+ return success(array());
+
+ $gjstart = $gj->retval[0]->start;
+
+ $query = 'SELECT kostenstelle_id, kostenstelle_nr, kurzbz, wawi.tbl_kostenstelle.bezeichnung, kgjvon.start, kgjbis.ende
+ FROM wawi.tbl_kostenstelle
+ LEFT JOIN public.tbl_geschaeftsjahr kgjvon on wawi.tbl_kostenstelle.geschaeftsjahrvon = kgjvon.geschaeftsjahr_kurzbz
+ LEFT JOIN public.tbl_geschaeftsjahr kgjbis on wawi.tbl_kostenstelle.geschaeftsjahrbis = kgjbis.geschaeftsjahr_kurzbz
+ WHERE
+ (wawi.tbl_kostenstelle.geschaeftsjahrbis IS NULL AND wawi.tbl_kostenstelle.geschaeftsjahrvon IS NULL)
+ OR
+ (DATE ? >= kgjvon.start AND (DATE ? < kgjbis.ende OR wawi.tbl_kostenstelle.geschaeftsjahrbis IS NULL))
+ OR
+ (DATE ? < kgjbis.ende AND (DATE ? >= kgjvon.start OR wawi.tbl_kostenstelle.geschaeftsjahrvon IS NULL))
+ ORDER BY wawi.tbl_kostenstelle.bezeichnung';
+
+ return $this->execQuery($query, array($gjstart, $gjstart, $gjstart, $gjstart));
+ }
}
diff --git a/application/models/organisation/Geschaeftsjahr_model.php b/application/models/organisation/Geschaeftsjahr_model.php
index e3c0e9fb2..d475b8142 100644
--- a/application/models/organisation/Geschaeftsjahr_model.php
+++ b/application/models/organisation/Geschaeftsjahr_model.php
@@ -11,4 +11,20 @@ class Geschaeftsjahr_model extends DB_Model
$this->dbTable = 'public.tbl_geschaeftsjahr';
$this->pk = 'geschaeftsjahr_kurzbz';
}
+
+ /**
+ * Gets latest Geschaeftsjahr, as determined by its start date
+ * @return array|null
+ */
+ public function getLastGeschaeftsjahr()
+ {
+ $query = 'SELECT *
+ FROM public.tbl_geschaeftsjahr
+ WHERE start = (
+ SELECT max(start)
+ FROM public.tbl_geschaeftsjahr
+ )';
+
+ return $this->execQuery($query);
+ }
}
diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php
index 0c7c169bb..790f1b4db 100644
--- a/application/models/person/Person_model.php
+++ b/application/models/person/Person_model.php
@@ -111,10 +111,13 @@ class Person_model extends DB_Model
$this->addJoin('public.tbl_prestudent', 'person_id');
+ $this->addJoin('public.tbl_benutzer', 'person_id');
+
$result = $this->loadTree(
'public.tbl_person',
array(
- 'public.tbl_prestudent'
+ 'public.tbl_prestudent',
+ 'public.tbl_benutzer'
),
'EXISTS (
SELECT
@@ -129,7 +132,8 @@ class Person_model extends DB_Model
AND datum <= '.$this->escape($bis).'
)',
array(
- 'prestudenten'
+ 'prestudenten',
+ 'benutzer'
)
);
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
old mode 100644
new mode 100755
index 663e69ca6..8360867b6
--- a/application/views/system/infocenter/infocenterData.php
+++ b/application/views/system/infocenter/infocenterData.php
@@ -9,10 +9,12 @@
p.vorname AS "Vorname",
p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum",
+ p.staatsbuergerschaft AS "Nation",
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
+ AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -21,6 +23,7 @@
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
+ AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -79,15 +82,17 @@
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
+ AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
- SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
+ SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
+ JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
@@ -98,9 +103,53 @@
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
+ AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
LIMIT 1
),\', \'
) AS "StgAbgeschickt",
+ array_to_string(
+ (
+ SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
+ FROM
+ public.tbl_prestudentstatus pss
+ INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ JOIN lehre.tbl_studienplan using (studienplan_id)
+ WHERE pss.status_kurzbz = \'Interessent\'
+ AND (pss.bewerbung_abgeschicktamum IS NULL)
+ AND pss.bestaetigtam IS NULL
+ AND ps.person_id = p.person_id
+ AND tbl_studiengang.typ in(\'b\')
+ AND studiensemester_kurzbz IN (
+ SELECT studiensemester_kurzbz
+ FROM public.tbl_studiensemester
+ WHERE ende >= NOW()
+ )
+ AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
+ LIMIT 1
+ ),\', \'
+ ) AS "StgNichtAbgeschickt",
+ array_to_string(
+ (
+ SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
+ FROM
+ public.tbl_prestudentstatus pss
+ INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ JOIN lehre.tbl_studienplan using (studienplan_id)
+ WHERE pss.status_kurzbz in (\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\')
+ AND (pss.bewerbung_abgeschicktamum IS NULL)
+ AND ps.person_id = p.person_id
+ AND tbl_studiengang.typ in(\'b\')
+ AND studiensemester_kurzbz IN (
+ SELECT studiensemester_kurzbz
+ FROM public.tbl_studiensemester
+ WHERE start >= NOW()
+ )
+ AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
+ LIMIT 1
+ ),\', \'
+ ) AS "StgAktiv",
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
FROM public.tbl_person p
@@ -137,12 +186,10 @@
)
ORDER BY "LastAction" ASC
',
- 'hideHeader' => false,
- 'hideSave' => false,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
- 'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Letzte Aktion','Letzter Bearbeiter',
- 'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
+ 'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation', 'Letzte Aktion','Letzter Bearbeiter',
+ 'StSem','GesendetAm','NumAbgeschickt','StgSent','StgNotSent','StgAktiv', 'Sperrdatum','GesperrtVon'),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
@@ -186,7 +233,19 @@
if ($datasetRaw->{'StgAbgeschickt'} == null)
{
- $datasetRaw->{'StgAbgeschickt'} = 'N/A';
+ $datasetRaw->{'StgAbgeschickt'} = '-';
+ }
+ if ($datasetRaw->{'StgNichtAbgeschickt'} == null)
+ {
+ $datasetRaw->{'StgNichtAbgeschickt'} = '-';
+ }
+ if ($datasetRaw->{'StgAktiv'} == null)
+ {
+ $datasetRaw->{'StgAktiv'} = '-';
+ }
+ if ($datasetRaw->{'Nation'} == null)
+ {
+ $datasetRaw->{'Nation'} = '-';
}
return $datasetRaw;
diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php
index b309f4a22..cbf20b0ec 100755
--- a/application/views/templates/FHC-Header.php
+++ b/application/views/templates/FHC-Header.php
@@ -2,6 +2,10 @@
if (! defined('BASEPATH')) exit('No direct script access allowed');
+// Retrives the URL path of the called controller + controller method
+// NOTE: placed here because it doesn't work inside functions
+$calledFrom = $this->router->directory.$this->router->class.'/'.$this->router->method;
+
// By default set the parameters to null
$title = isset($title) ? $title : null;
$customCSSs = isset($customCSSs) ? $customCSSs : null;
@@ -55,6 +59,26 @@ function _generateCSSsInclude($CSSs)
}
}
+/**
+ * Generates global JS-Object to pass parms to other javascripts
+ */
+function _generateJSDataStorageObject($calledFrom)
+{
+ $toPrint = "\n";
+ $toPrint .= '';
+ $toPrint .= "\n\n";
+
+ echo $toPrint;
+}
+
/**
* Generates tags for the javascripts you want to include, the parameter could by a string or an array of strings
*/
@@ -78,13 +102,25 @@ function _generateJSsInclude($JSs)
}
/**
- * Generates global JS-Object to pass parms to addon-js-functions
+ * Generates all the includes needed by the Addons
*/
-function _generateAddonDataStorageObject()
+function _generateAddonsJSsInclude($calledFrom)
{
- echo '\n";
+ $aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
+
+ foreach ($aktive_addons as $addon)
+ {
+ $hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
+ if (file_exists($hookfile))
+ {
+ include($hookfile);
+ if (key_exists($calledFrom, $js_hooks))
+ {
+ foreach ($js_hooks[$calledFrom] as $js_file)
+ _generateJSsInclude('addons/'.$addon.'/'.$js_file);
+ }
+ }
+ }
}
?>
@@ -102,16 +138,20 @@ function _generateAddonDataStorageObject()
// jQuery UI CSS
if ($jqueryui === true) _generateCSSsInclude('vendor/components/jqueryui/themes/base/jquery-ui.min.css');
+
// bootstrap CSS
if ($bootstrap === true) _generateCSSsInclude('vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
+
// font awesome CSS
if ($fontawesome === true) _generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
+
// Table sorter CSS
if ($tablesorter === true)
{
_generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
_generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
}
+
// sb admin template CSS
if ($sbadmintemplate === true)
{
@@ -125,8 +165,13 @@ function _generateAddonDataStorageObject()
// --------------------------------------------------------------------------------------------------------
// Javascripts
+ // Generates the global object to pass useful parms to the other javascripts
+ // NOTE: must be called before any other JS include
+ _generateJSDataStorageObject($calledFrom);
+
// JQuery V3
if ($jquery === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
+
// JQuery UI
if ($jqueryui === true)
{
@@ -134,8 +179,10 @@ function _generateAddonDataStorageObject()
//datepicker german language file
_generateJSsInclude('vendor/components/jqueryui/ui/i18n/datepicker-de.js');
}
+
// bootstrap JS
if ($bootstrap === true) _generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
+
// Table sorter JS
if ($tablesorter === true)
{
@@ -143,6 +190,7 @@ function _generateAddonDataStorageObject()
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js');
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
}
+
//tinymce JS
if($tinymce === true) _generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js') ;
@@ -153,27 +201,8 @@ function _generateAddonDataStorageObject()
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
}
- // load addon hooks JS
- if ($addons === true)
- {
- _generateAddonDataStorageObject();
-
- $aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
- $called_from = $this->router->directory.$this->router->class.'/'.$this->router->method;
- foreach ($aktive_addons as $addon)
- {
- $hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
- if (file_exists($hookfile))
- {
- include($hookfile);
- if (key_exists($called_from, $js_hooks))
- {
- foreach ($js_hooks[$called_from] as $js_file)
- _generateJSsInclude('addons/'.$addon.'/'.$js_file);
- }
- }
- }
- }
+ // Load addon hooks JS
+ if ($addons === true) _generateAddonsJSsInclude($calledFrom);
// Eventually required JS
_generateJSsInclude($customJSs);
diff --git a/application/views/widgets/filter/filter.php b/application/views/widgets/filter/filter.php
index 606d19b60..669fb914d 100644
--- a/application/views/widgets/filter/filter.php
+++ b/application/views/widgets/filter/filter.php
@@ -1,5 +1,11 @@
diff --git a/application/views/widgets/filter/saveFilter.php b/application/views/widgets/filter/saveFilter.php
index 1fd9c57af..99f5f5d9d 100644
--- a/application/views/widgets/filter/saveFilter.php
+++ b/application/views/widgets/filter/saveFilter.php
@@ -30,12 +30,19 @@
+
+
+
+ Filter description:
+
- Filter description:
+
+
+
diff --git a/application/views/widgets/filter/selectFields.php b/application/views/widgets/filter/selectFields.php
index 57edda25e..18d5cac02 100644
--- a/application/views/widgets/filter/selectFields.php
+++ b/application/views/widgets/filter/selectFields.php
@@ -232,7 +232,7 @@
-
+
Add field:
diff --git a/application/views/widgets/filter/selectFilters.php b/application/views/widgets/filter/selectFilters.php
index f79a1e449..9f775a826 100644
--- a/application/views/widgets/filter/selectFilters.php
+++ b/application/views/widgets/filter/selectFilters.php
@@ -29,28 +29,6 @@
});
- $(".remove-filter").click(function(event) {
-
- $.ajax({
- url: "",
- method: "POST",
- data: {
- fieldName: $(this).attr('filterToRemove')
- }
- })
- .done(function(data, textStatus, jqXHR) {
-
- resetSelectedFilters();
- renderSelectedFilters();
-
- renderTableDataset();
-
- }).fail(function(jqXHR, textStatus, errorThrown) {
- alert(textStatus);
- });
-
- });
-
$(".select-filter-operation").change(function() {
if ($(this).val() == "set" || $(this).val() == "nset")
@@ -116,6 +94,23 @@
});
});
+
+ $(".remove-selected-filter").click(function(event) {
+ $.ajax({
+ url: "",
+ method: "POST",
+ data: {
+ fieldName: $(this).attr('filterToRemove')
+ }
+ })
+ .done(function(data, textStatus, jqXHR) {
+ resetSelectedFilters();
+ renderSelectedFilters();
+ }).fail(function(jqXHR, textStatus, errorThrown) {
+ alert(textStatus);
+ });
+ });
+
}
function renderSelectedFilterFields(metaData, activeFilters, activeFiltersOperation, activeFiltersOption)
@@ -125,7 +120,7 @@
if (metaData.type.toLowerCase().indexOf("int") >= 0)
{
html = '';
- html += ' ';
html += '';
- html += ' ';
+ html += ' ';
html += '';
}
- if (metaData.type.toLowerCase().indexOf('varchar') >= 0)
+ if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text')
{
html = '';
- html += ' ';
+ html += ' ';
html += ' ';
html += ' ';
html += ' ';
html += '';
html += '';
- html += ' ';
+ html += ' ';
html += '';
}
if (metaData.type.toLowerCase().indexOf('bool') >= 0)
{
html = '';
- html += ' ';
+ html += ' ';
html += ' ';
html += ' ';
html += ' ';
html += '';
html += '';
- html += ' ';
+ html += ' ';
html += '';
}
if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0)
{
- var classOperation = 'select-filter-operation-value form-control';
- var classOption = 'select-filter-option form-control';
+ var classOperation = 'form-control select-filter-operation-value';
+ var classOption = 'form-control select-filter-option';
var disabled = "";
if (activeFiltersOperation == "set" || activeFiltersOperation == "nset")
@@ -174,7 +169,7 @@
}
html = '';
- html += ' ';
+ html += ' ';
html += ' ';
html += ' ';
html += ' ';
@@ -220,7 +215,7 @@
{
var selectedFilters = '';
- selectedFilters += '';
+ selectedFilters += '';
selectedFilters += data.selectedFiltersAliases[i];
selectedFilters += '';
@@ -232,7 +227,7 @@
);
selectedFilters += '';
- selectedFilters += '';
+ selectedFilters += '';
selectedFilters += '';
selectedFilters += '
';
@@ -277,10 +272,12 @@
+
+
-
+
Add filter:
@@ -289,6 +286,6 @@
-
+
diff --git a/application/views/widgets/navigationMenu.php b/application/views/widgets/navigationMenu.php
index 1fdb4b6b3..427fecf2e 100644
--- a/application/views/widgets/navigationMenu.php
+++ b/application/views/widgets/navigationMenu.php
@@ -139,7 +139,7 @@
{
// Hiding/showing navigation menu - works only with sb admin 2 template!!
- $("#side-menu").prepend('');
+ $("#side-menu").html('');
$("#collapseicon").click(function() {
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
diff --git a/cis/private/open_grp.php b/cis/private/open_grp.php
index 2973ac7cd..aca6272d4 100644
--- a/cis/private/open_grp.php
+++ b/cis/private/open_grp.php
@@ -87,16 +87,62 @@ echo '
'.$p->t('mailverteiler/oeffnenEinesVerteilers').'
+
';
if (isset($_REQUEST['token']) && isset($_REQUEST['grp']))
{
echo '
-
-
-
-
-
';
+ '.$p->t('mailverteiler/oeffnenEinesVerteilers').'
';
/* Generate an random String */
$mail_id = mail_id_generator();
@@ -116,30 +162,18 @@ if (isset($_REQUEST['token']) && isset($_REQUEST['grp']))
fwrite($filet, $message, mb_strlen($message));
fclose($filet);
- echo "
-
- | ".$db->convert_html_chars($_REQUEST['desc'])." |
- ".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.") |
-
-
- |
- ".$p->t('mailverteiler/klickenZumSchicken')."
-
- ".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."
- |
-
- ";
+ echo '
+ '.$p->t('mailverteiler/geoeffnet',$db->convert_html_chars($_REQUEST['desc'])).'
+ Code: '.$mail_id.'
+ Adresse: '.$_REQUEST["grp"].$mail_id.'@'.DOMAIN.'
+ '.$p->t('mailverteiler/klickenZumSchicken').'
+ '.$p->t('mailverteiler/infoBenutzung').'
';
}
else
{
echo '
-
- |
- '.$p->t('mailverteiler/oeffnenFehlgeschlagen').'
- |
-
';
+ '.$p->t('mailverteiler/oeffnenFehlgeschlagen').'
';
}
- echo '
';
}
else
{
@@ -149,7 +183,9 @@ else
}
else
{
- echo $p->t('mailverteiler/bestaetigeOeffnen',array($_REQUEST['grp']))." : convert_html_chars($_REQUEST['desc'])."&token=1\">".$p->t('mailverteiler/bestaetige')."";
+ echo ''.$p->t('mailverteiler/oeffnenEinesVerteilers').'
';
+ echo $p->t('mailverteiler/bestaetigeOeffnen').':';
+ echo '';
}
}
diff --git a/cis/private/profile/index.php b/cis/private/profile/index.php
index 6961ddf11..40cefd67b 100644
--- a/cis/private/profile/index.php
+++ b/cis/private/profile/index.php
@@ -47,7 +47,7 @@ $p=new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
-$uid=get_uid();
+$uid = get_uid();
$datum_obj = new datum();
@@ -129,11 +129,11 @@ echo '
-
-
-
-
-
+
+
+
+
+
t('tools/ampelsystem') ?>
@@ -346,7 +342,7 @@ $(document).ready(function(){
' . $p->t('tools/ampelsystem') . '';
+ echo '' . $p->t('tools/ampelsystem') . '
';
//title in popup for mandatory ampeln
if ($is_popup)
@@ -402,10 +398,33 @@ $(document).ready(function(){
$cnt = 1; //counter to set iterative id's
$cnt_inactive = 1; //counter to set only one heading line for inactive ampeln
+ $cnt_active = 0;
+
+ //show panel "no actual ampeln" if there are no active ampeln
+ foreach ($user_ampel_arr as $user_ampel)
+ {
+ if ($user_ampel['active'] == true)
+ $cnt_active++;
+ }
+
+ if ($cnt_active == 0)
+ {
+ echo '
+
+
+
+
' . $p->t('tools/ampelKeineAktuellen'). '
+ ' . $p->t('tools/ampelKeineAktuellenTxt'). '
+
+
+
';
+
+ }
//fill panel with ampeln
foreach ($user_ampel_arr as $user_ampel)
{
+
//use only ampeln that are not overdue
if ($user_ampel['show_ampel'] == true)
{
@@ -416,7 +435,7 @@ $(document).ready(function(){
-
' . $p->t('tools/ampelAbgelaufenTitel'). '
+ ' . $p->t('tools/ampelAbgelaufenTitel'). '
' . $p->t('tools/ampelAbgelaufenTxt'). '
@@ -428,12 +447,12 @@ $(document).ready(function(){
-
-
+
-
+
>t('global/faelligAm') . ' '; echo date('d.m.Y', strtotime($user_ampel['deadline'])) ?>
@@ -465,7 +484,7 @@ $(document).ready(function(){
-
+
';
+}
+
?>
diff --git a/content/statistik/bewerberstatistik.php b/content/statistik/bewerberstatistik.php
index be5aeda56..252a565e5 100644
--- a/content/statistik/bewerberstatistik.php
+++ b/content/statistik/bewerberstatistik.php
@@ -229,7 +229,7 @@ if (isset($_GET['excel']))
$maxlength[$i] = 3;
//Tabellenzeilen
- $stgs = $rechte->getStgKz();
+ $stgs = $rechte->getStgKz('assistenz');
if ($stgs[0] == '')
$stgwhere = '';
@@ -756,7 +756,7 @@ if (isset($_GET['excel']))
//zweites Blatt mit Statistik des Vorjahres zum gleichen Datum
if (!$mail)
{
- $stgs = $rechte->getStgKz();
+ $stgs = $rechte->getStgKz('assistenz');
if ($stgs[0] == '')
$stgwhere = '';
@@ -824,7 +824,12 @@ if (isset($_GET['excel']))
person_id=tbl_prestudent.person_id
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
- AND anmeldungreihungstest<=".$db->db_add_param($datum)."
+ AND (
+ anmeldedatum<=".$db->db_add_param($datum)."
+ OR
+ (anmeldedatum is null
+ AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
+ )
)
) AS interessentenrtanmeldung,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
@@ -841,7 +846,11 @@ if (isset($_GET['excel']))
person_id=tbl_prestudent.person_id
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
- AND anmeldungreihungstest<=".$db->db_add_param($datum)."
+ AND (anmeldedatum<=".$db->db_add_param($datum)."
+ OR
+ (anmeldedatum is null
+ AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
+ )
)
) AS interessentenrtanmeldung_m,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
@@ -858,7 +867,11 @@ if (isset($_GET['excel']))
person_id=tbl_prestudent.person_id
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
- AND anmeldungreihungstest<=".$db->db_add_param($datum)."
+ AND (anmeldedatum<=".$db->db_add_param($datum)."
+ OR
+ (anmeldedatum is null
+ AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
+ )
)
) AS interessentenrtanmeldung_w,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
@@ -1451,7 +1464,7 @@ else
{
if (!$mail)
{
- $stgs = $rechte->getStgKz();
+ $stgs = $rechte->getStgKz('assistenz');
if ($stgs[0] == '')
$stgwhere = '';
@@ -1838,7 +1851,7 @@ else
// Bewerberstatistik fuer Vorjahr (selbes Datum)
if (!$mail)
{
- $stgs = $rechte->getStgKz();
+ $stgs = $rechte->getStgKz('assistenz');
if ($stgs[0] == '')
$stgwhere = '';
@@ -1908,7 +1921,11 @@ else
person_id=tbl_prestudent.person_id
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
- AND anmeldungreihungstest<=".$db->db_add_param($datum)."
+ AND (anmeldedatum<=".$db->db_add_param($datum)."
+ OR
+ (anmeldedatum is null
+ AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
+ )
)
) AS interessentenrtanmeldung,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
@@ -1925,7 +1942,11 @@ else
person_id=tbl_prestudent.person_id
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
- AND anmeldungreihungstest<=".$db->db_add_param($datum)."
+ AND (anmeldedatum<=".$db->db_add_param($datum)."
+ OR
+ (anmeldedatum is null
+ AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
+ )
)
) AS interessentenrtanmeldung_m,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
@@ -1942,7 +1963,11 @@ else
person_id=tbl_prestudent.person_id
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
- AND anmeldungreihungstest<=".$db->db_add_param($datum)."
+ AND (anmeldedatum<=".$db->db_add_param($datum)."
+ OR
+ (anmeldedatum is null
+ AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
+ )
)
) AS interessentenrtanmeldung_w,
@@ -2208,7 +2233,7 @@ function generateMischformenQuery($orgform_arr, $stsem, $ausgeschieden, $stgwher
foreach ($orgform_arr as $row_orgform)
{
- $qry .= " (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
+ $qry .= " (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
AND orgform_kurzbz=".$db->db_add_param($row_orgform).") AS interessenten_".$row_orgform.",";
$qry .= " (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php
index b776cade1..3a754f915 100644
--- a/content/statistik/lehrauftragsliste_mail.xls.php
+++ b/content/statistik/lehrauftragsliste_mail.xls.php
@@ -475,7 +475,7 @@ if($result_stg = $db->db_query($qry_stg))
$worksheet->setInputEncoding('utf-8');
$qry = "SELECT
studiensemester_kurzbz, nachname, vorname, sum(stunden) AS stunden, titelpre,
- sum(tbl_projektbetreuer.stundensatz*stunden*tbl_projektbetreuer.faktor)::numeric(6,2) AS euro, person_id
+ sum(tbl_projektbetreuer.stundensatz*stunden*tbl_projektbetreuer.faktor)::numeric(8,2) AS euro, person_id
FROM
public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
@@ -496,7 +496,7 @@ if($result_stg = $db->db_query($qry_stg))
";
$i=0;
$gesamtkosten=0;
-
+
$worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' Betreuerstunden', $format_bold);
//Ueberschriften
//$worksheet->write(2,$i,"Studiengang", $format_bold);
diff --git a/content/student/interessentdokumenteoverlay.xul.php b/content/student/interessentdokumenteoverlay.xul.php
index d932eae61..8746d88ee 100644
--- a/content/student/interessentdokumenteoverlay.xul.php
+++ b/content/student/interessentdokumenteoverlay.xul.php
@@ -53,7 +53,7 @@ echo '';
-
+
';
context="interessent-dokumente-tree-nichtabgegeben-popup"
>
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
@@ -128,8 +128,8 @@ echo '';
+
-
@@ -156,7 +156,7 @@ echo '';
-
+
';
>
-
@@ -179,7 +179,7 @@ echo '';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#datumhochgeladen" onclick="InteressentDokumenteAbgegebenTreeSort()"/>
-
@@ -195,15 +195,11 @@ echo '';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
-
-
-
-
@@ -211,7 +207,11 @@ echo '';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#titel_intern" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
-
+
+
@@ -234,9 +234,9 @@ echo '';
-
+
diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index 8ad4b5ec0..50d3a7612 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -2199,6 +2199,8 @@ if(!$error)
$akte->anmerkung_intern = $_POST['anmerkung_intern'];
$akte->titel_intern = $_POST['titel_intern'];
$akte->dokument_kurzbz = $_POST['dokument_kurzbz'];
+ $akte->updateamum = date('Y-m-d H:i:s');
+ $akte->updatevon = $user;
if(!$akte->save())
{
@@ -2251,6 +2253,29 @@ if(!$error)
$error=true;
$errormsg='Fehler beim Loeschen des Dokuments';
}
+ else
+ {
+ // Log schreiben
+ $logdata_dms = (array)$dms;
+ $logdata = var_export($logdata_dms, true);
+ $log = new log();
+ $log->executetime = date('Y-m-d H:i:s');
+ $log->mitarbeiter_uid = $user;
+ $log->beschreibung = "Löschen der DMS_ID ".$akte->dms_id;
+ $log->sql = 'LogData:'.$logdata;
+ $log->sqlundo = '';
+ $log->save(true);
+ }
+ // Log schreiben
+ $logdata_akte = (array)$akte;
+ $logdata = var_export($logdata_akte, true);
+ $log = new log();
+ $log->executetime = date('Y-m-d H:i:s');
+ $log->mitarbeiter_uid = $user;
+ $log->beschreibung = "Löschen der Akte '".$akte->dokument_kurzbz."' ID '".$akte_id."'";
+ $log->sql = 'DELETE FROM public.tbl_akte WHERE akte_id='.$db->db_add_param($akte_id, FHC_INTEGER).'; LogData:'.$logdata;
+ $log->sqlundo = '';
+ $log->save(true);
}
else
{
diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php
index da5da869c..96687018e 100644
--- a/content/student/studentdetailoverlay.xul.php
+++ b/content/student/studentdetailoverlay.xul.php
@@ -52,8 +52,6 @@ echo '';
-
-
@@ -68,6 +66,10 @@ echo '';
+
+
+
+
@@ -534,7 +536,7 @@ echo '';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#bestaetigt_Am" />
-
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index 3c5d7f248..76c8eed6c 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -133,10 +133,14 @@ else
echo '';
}
}
+ function sortGruende($a, $b)
+ {
+ return strcasecmp($a['bezeichnung'], $b['bezeichnung']);
+ }
// Statusgruende laden
$statusgrund = new statusgrund();
$statusgrund->getAll(true);
- $gruende=array();
+ $gruende = array();
foreach($statusgrund->result as $row)
{
$gruende[$row->status_kurzbz][] = array(
@@ -144,6 +148,7 @@ else
'bezeichnung'=>$row->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE],
'beschreibung'=>$row->beschreibung[DEFAULT_LANGUAGE]
);
+ usort($gruende[$row->status_kurzbz], "sortGruende");
}
printStatuswechselMenuitem($gruende, 'Abbrecher', 'student-toolbar-abbrecher', 'Abbrecher', "StudentAddRolle('Abbrecher','0',undefined,'STATUSGRUNDID')");
diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php
index 2868853e9..a615729f4 100644
--- a/include/benutzerberechtigung.class.php
+++ b/include/benutzerberechtigung.class.php
@@ -650,7 +650,7 @@ class benutzerberechtigung extends basis_db
foreach ($this->berechtigungen as $b)
{
- if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
+ if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
{
if($b->negativ)
@@ -671,7 +671,9 @@ class benutzerberechtigung extends basis_db
{
$childoes = $oe->getChilds($b->oe_kurzbz);
foreach($childoes as $row)
+ {
$in .= "'".$this->db_escape($row)."',";
+ }
}
else
{
@@ -728,7 +730,7 @@ class benutzerberechtigung extends basis_db
foreach ($this->berechtigungen as $b)
{
- if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
+ if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
{
if($b->negativ)
@@ -801,7 +803,7 @@ class benutzerberechtigung extends basis_db
$oe = new organisationseinheit();
foreach ($this->berechtigungen as $b)
{
- if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
+ if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
{
if($b->negativ)
@@ -828,9 +830,9 @@ class benutzerberechtigung extends basis_db
{
if(!is_null($b->oe_kurzbz))
{
- $childoes = $oe->getChilds($b->oe_kurzbz);
- foreach($childoes as $row)
- $oe_kurzbz[] = $row;
+ $childoes = $oe->getChilds($b->oe_kurzbz);
+ foreach($childoes as $row)
+ $oe_kurzbz[] = $row;
}
else
{
@@ -874,7 +876,7 @@ class benutzerberechtigung extends basis_db
if(!mb_strstr($b->berechtigung_kurzbz,'wawi/'))
continue;
- if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
+ if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
{
if($b->negativ)
@@ -1065,6 +1067,7 @@ class benutzerberechtigung extends basis_db
*
* @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen
* @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt
+ * @param string $oe_kurzbz Organisationseinheit
* @return boolean true wenn ok, false im Fehlerfall
*/
public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true, $oe_kurzbz = null)
@@ -1073,6 +1076,7 @@ class benutzerberechtigung extends basis_db
benutzerberechtigung_id,
rolle_kurzbz,
funktion_kurzbz,
+ oe_kurzbz,
uid,
art,
berechtigung_kurzbz,
@@ -1095,6 +1099,7 @@ class benutzerberechtigung extends basis_db
rolle_kurzbz,
NULL,
NULL,
+ NULL,
art,
berechtigung_kurzbz,
NULL,
@@ -1118,6 +1123,7 @@ class benutzerberechtigung extends basis_db
$obj->uid = $row->uid;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->art = $row->art;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
$obj->start = $row->start;
$obj->ende = $row->ende;
diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php
index 8bfdee7d7..6cec84f7b 100644
--- a/include/betriebsmittel.class.php
+++ b/include/betriebsmittel.class.php
@@ -1,1445 +1,1458 @@
-
- * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
- * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
- * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
- */
-
-/**
- * Klasse Betriebsmittel
- * @create 22-01-2007
- */
-require_once(dirname(__FILE__).'/basis_db.class.php');
-
-class betriebsmittel extends basis_db
-{
- public $default_afa_jahre=5;
-
- public $debug=false; // boolean
- public $new; // boolean
- public $result;
-
- //Tabellenspalten
- public $betriebsmittel_id; // integer
- public $betriebsmitteltyp; // string
- public $nummer; // string
- public $inventarnummer; // string
- public $reservieren; // boolean
- public $ort_kurzbz; // string
- public $ext_id; // integer
- public $insertamum; // timestamp
- public $insertvon; // string
- public $updateamum; // timestamp
- public $updatevon; // string
- public $beschreibung; // string
- public $oe_kurzbz; // string
- public $hersteller; // string
-
- public $seriennummer; // string
- public $bestellung_id; // integer
- public $bestelldetail_id; // integer
- public $afa; // string
- public $verwendung; // string
- public $anmerkung; // string
- public $leasing_bis; // date
-
- public $inventuramum; // timestamp
- public $inventurvon; // string
-
- public $anschaffungswert;
- public $anschaffungsdatum;
- public $hoehe;
- public $breite;
- public $tiefe;
- public $verplanen=false;
-
- public $nummer2;
-
- /**
- * Konstruktor
- * @param $betriebsmittel_id ID des Betrtiebsmittels, das geladen werden soll (Default=null)
- */
- public function __construct($betriebsmittel_id=null)
- {
- parent::__construct();
-
- if(!is_null($betriebsmittel_id))
- $this->load($betriebsmittel_id);
- }
-
- /**
- * Laedt das Betriebsmittel mit der ID $betriebsmittel_id
- * @param $betriebsmittel_id ID des zu ladenden Betriebsmittel
- * @return true wenn ok, false im Fehlerfall
- */
- public function load($betriebsmittel_id)
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
-
- if(!is_numeric($betriebsmittel_id))
- {
- $this->errormsg = 'Betriebsmittel_id ist ungueltig';
- return false;
- }
-
- $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id=".$this->db_add_param($betriebsmittel_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->betriebsmittel_id = $row->betriebsmittel_id;
- $this->beschreibung = $row->beschreibung;
- $this->betriebsmitteltyp = $row->betriebsmitteltyp;
- $this->nummer = $row->nummer;
- $this->inventarnummer = $row->inventarnummer;
- $this->reservieren = $this->db_parse_bool($row->reservieren);
- $this->ort_kurzbz = $row->ort_kurzbz;
- $this->updateamum = $row->updateamum;
- $this->updatevon = $row->updatevon;
- $this->insertvon = $row->insertvon;
- $this->insertamum = $row->insertamum;
- $this->ext_id = $row->ext_id;
- $this->beschreibung = $row->beschreibung;
- $this->oe_kurzbz = $row->oe_kurzbz;
- $this->hersteller = $row->hersteller;
- $this->seriennummer = $row->seriennummer;
- $this->bestellung_id = $row->bestellung_id;
- $this->bestelldetail_id = $row->bestelldetail_id;
- $this->afa = $row->afa;
- $this->verwendung = $row->verwendung;
- $this->anmerkung = $row->anmerkung;
- $this->leasing_bis = $row->leasing_bis;
- $this->inventuramum = $row->inventuramum;
- $this->inventurvon = $row->inventurvon;
- $this->anschaffungsdatum = $row->anschaffungsdatum;
- $this->anschaffungswert = $row->anschaffungswert;
- $this->hoehe = $row->hoehe;
- $this->breite = $row->breite;
- $this->tiefe = $row->tiefe;
- $this->nummer2 = $row->nummer2;
- $this->anschaffungsdatum = $row->anschaffungsdatum;
- $this->anschaffungswert = $row->anschaffungswert;
- $this->verplanen = $this->db_parse_bool($row->verplanen);
-
- return true;
- }
- else
- {
- $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
- /**
- * Prueft die Daten vor dem Speichern
- * auf Gueltigkeit
- */
- protected function validate()
- {
- return true;
- }
-
- /**
- *
- * Sucht Betriebsmittel anhand der inventarnummer und filter
- * @param $filter, ein teil oder die ganze inventarnummer
- */
- public function searchBetriebsmittel($filter)
- {
- $qry = "SELECT * FROM wawi.tbl_betriebsmittel where inventarnummer LIKE '%".$this->db_escape($filter)."%'";
-
- $this->result = array();
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $bm = new betriebsmittel();
-
- $bm->betriebsmittel_id = $row->betriebsmittel_id;
- $bm->beschreibung = $row->beschreibung;
- $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
- $bm->nummer = $row->nummer;
- $bm->inventarnummer = $row->inventarnummer;
- $bm->reservieren = $row->reservieren;
- $bm->ort_kurzbz = $row->ort_kurzbz;
- $bm->updateamum = $row->updateamum;
- $bm->updatevon = $row->updatevon;
- $bm->insertamum = $row->insertamum;
- $bm->insertvon = $row->insertvon;
- $bm->beschreibung = $row->beschreibung;
- $bm->oe_kurzbz = $row->oe_kurzbz;
- $bm->hersteller = $row->hersteller;
- $bm->seriennummer = $row->seriennummer;
- $bm->bestellung_id = $row->bestellung_id;
- $bm->bestelldetail_id = $row->bestelldetail_id;
- $bm->afa = $row->afa;
- $bm->verwendung = $row->verwendung;
- $bm->anmerkung = $row->anmerkung;
- $bm->leasing_bis = $row->leasing_bis;
- $bm->inventuramum = $row->inventuramum;
- $bm->inventurvon = $row->inventurvon;
- $bm->anschaffungswert = $row->anschaffungswert;
- $bm->anschaffungsdatum = $row->anschaffungsdatum;
-
- $this->result[] = $bm;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Prueft ob die Inventarnummer schon existiert
- *
- * @param $inventarnummer
- * @param $betriebsmittel_id
- * @return boolean
- */
- public function inventarnummer_exists($inventarnummer, $betriebsmittel_id=null)
- {
- $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE inventarnummer=".$this->db_add_param($this->inventarnummer);
- if($betriebsmittel_id!='')
- $qry.=" AND betriebsmittel_id<>".$this->db_add_param($this->betriebsmittel_id, FHC_INTEGER);
- if($result = $this->db_query($qry))
- {
- if($this->db_num_rows($result)>0)
- return true;
- else
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
- /**
- * Speichert den aktuellen Datensatz in die Datenbank
- * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
- * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id aktualisiert
- * @return true wenn ok, false im Fehlerfall
- */
- public function save($new=null)
- {
- if($new==null)
- $new=$this->new;
-
- if(!$this->validate())
- return false;
- if ($this->nummer)
- $this->nummer=trim($this->nummer);
-
- $this->inventarnummer = str_replace('`','+',$this->inventarnummer);
-
- if($this->inventarnummer_exists($this->inventarnummer,($new?null:$this->betriebsmittel_id)))
- {
- $this->errormsg = 'Diese Inventarnummer existiert bereits';
- return false;
- }
-
- //bei Zutrittskarten sicherstellen, dass die Nummer richtig kodiert ist
- if($this->betriebsmitteltyp=='Zutrittskarte')
- {
- $this->nummer = $this->transform_kartennummer($this->nummer);
- }
- $this->afa=(!isset($this->afa) || empty($this->afa)?$this->default_afa_jahre:$this->afa);
- if($new)
- {
- //Neuen Datensatz einfuegen
- $qry='INSERT INTO wawi.tbl_betriebsmittel (beschreibung, betriebsmitteltyp, nummer
- , inventarnummer, reservieren, ort_kurzbz
- , insertamum, insertvon, updateamum, updatevon,oe_kurzbz,hersteller,seriennummer
- ,bestellung_id,bestelldetail_id,afa,verwendung,anmerkung,leasing_bis, inventuramum, inventurvon,
- anschaffungsdatum, anschaffungswert, hoehe, breite, tiefe, nummer2,verplanen) VALUES('.
- $this->db_add_param($this->beschreibung).', '.
- $this->db_add_param($this->betriebsmitteltyp).', '.
- $this->db_add_param($this->nummer).', '.
- $this->db_add_param($this->inventarnummer).', '.
- $this->db_add_param($this->reservieren, FHC_BOOLEAN).', '.
- $this->db_add_param($this->ort_kurzbz).', '.
- ($this->insertamum?$this->db_add_param($this->insertamum):'now()').', '.
- $this->db_add_param($this->insertvon).', '.
- ($this->updateamum?$this->db_add_param($this->updateamum):'now()').', '.
- $this->db_add_param((empty($this->updatevon)?$this->updatevon:$this->insertvon)).', '.
- $this->db_add_param($this->oe_kurzbz).', '.
- $this->db_add_param($this->hersteller).', '.
- $this->db_add_param($this->seriennummer).', '.
- $this->db_add_param($this->bestellung_id).', '.
- $this->db_add_param($this->bestelldetail_id).', '.
- $this->db_add_param($this->afa).', '.
- $this->db_add_param($this->verwendung).', '.
- $this->db_add_param($this->anmerkung) .', '.
- ($this->leasing_bis?$this->db_add_param($this->leasing_bis):'null') .', '.
- $this->db_add_param($this->inventuramum) .', '.
- $this->db_add_param($this->inventurvon) .', '.
- $this->db_add_param($this->anschaffungsdatum).', '.
- $this->db_add_param($this->anschaffungswert).', '.
- $this->db_add_param($this->hoehe).', '.
- $this->db_add_param($this->breite).', '.
- $this->db_add_param($this->tiefe).','.
- $this->db_add_param($this->nummer2).','.
- $this->db_add_param($this->verplanen, FHC_BOOLEAN).');' ;
- }
- else
- {
- if(!is_numeric($this->betriebsmittel_id))
- {
- $this->errormsg = 'Betriebsmittel_id muss eine gueltige Zahl sein';
- return false;
- }
-
- $qry='UPDATE wawi.tbl_betriebsmittel SET '.
- 'betriebsmitteltyp='.$this->db_add_param($this->betriebsmitteltyp).', '.
- 'beschreibung='.$this->db_add_param($this->beschreibung).', '.
- 'nummer='.$this->db_add_param($this->nummer).', '.
- 'inventarnummer='.$this->db_add_param($this->inventarnummer).', '.
- 'reservieren='.$this->db_add_param($this->reservieren,FHC_BOOLEAN).', '.
- 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '.
- 'updateamum='.($this->updateamum?$this->db_add_param($this->updateamum):'now()').', '.
- 'updatevon='.$this->db_add_param($this->updatevon).', '.
- 'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
- 'hersteller='.$this->db_add_param($this->hersteller).', '.
- 'seriennummer='.$this->db_add_param($this->seriennummer).', '.
- 'bestellung_id='.$this->db_add_param($this->bestellung_id).', '.
- 'bestelldetail_id='.$this->db_add_param($this->bestelldetail_id).', '.
- 'afa='.($this->afa && is_numeric($this->afa)?$this->afa:$this->default_afa_jahre).', '.
- 'verwendung='.$this->db_add_param($this->verwendung).', '.
- 'anmerkung='.$this->db_add_param($this->anmerkung).', '.
- 'leasing_bis='.($this->leasing_bis?$this->db_add_param($this->leasing_bis):'null').', '.
- 'inventuramum='.$this->db_add_param($this->inventuramum).', '.
- 'inventurvon='.$this->db_add_param($this->inventurvon).', '.
- 'anschaffungsdatum='.$this->db_add_param($this->anschaffungsdatum).', '.
- 'anschaffungswert='.$this->db_add_param($this->anschaffungswert).', '.
- 'hoehe='.$this->db_add_param($this->hoehe).', '.
- 'breite='.$this->db_add_param($this->breite).', '.
- 'tiefe='.$this->db_add_param($this->tiefe).', '.
- 'verplanen='.$this->db_add_param($this->verplanen, FHC_BOOLEAN).','.
- 'nummer2='.$this->db_add_param($this->nummer2).' '.
- 'WHERE betriebsmittel_id='.$this->db_add_param($this->betriebsmittel_id).';';
- }
-
- if($this->db_query($qry))
- {
- if($new)
- {
- $qry = "SELECT currval('wawi.tbl_betriebsmittel_betriebsmittel_id_seq') as id;";
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->betriebsmittel_id = $row->id;
- }
- else
- {
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- return $this->betriebsmittel_id;
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern des Betriebsmittel-Datensatzes';
- return false;
- }
- }
-
- /**
- * Loescht den Datenensatz mit der ID die uebergeben wird
- * @param $betriebsmittel_id ID die geloescht werden soll
- * @return true wenn ok, false im Fehlerfall
- */
- public function delete($betriebsmittel_id)
- {
- if(!is_numeric($betriebsmittel_id))
- {
- $this->errormsg = 'Betriebsmittel_id ist ungueltig';
- return false;
- }
- $qry = "DELETE FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id=".$this->db_add_param($betriebsmittel_id, FHC_INTEGER);
- if($this->db_query($qry))
- return true;
- else
- {
- $this->errormsg = 'Fehler beim Loeschen der Daten';
- return false;
- }
- }
-
- /**
- * Laedt die Betriebsmittel
- *
- * @param $betriebsmitteltyp
- * @param $nummer
- * @return boolean
- */
- public function getBetriebsmittel($betriebsmitteltyp, $nummer)
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
-
- $qry= 'SELECT * ';
- $qry.= ' FROM wawi.tbl_betriebsmittel ';
- $qry.= " WHERE betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp)." AND nummer=".$this->db_add_param($nummer);
- $qry.= ' ORDER BY updateamum DESC';
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $bm = new betriebsmittel();
-
- $bm->betriebsmittel_id = $row->betriebsmittel_id;
- $bm->beschreibung = $row->beschreibung;
- $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
- $bm->nummer = $row->nummer;
- $bm->inventarnummer = $row->inventarnummer;
- $bm->reservieren = $row->reservieren;
- $bm->ort_kurzbz = $row->ort_kurzbz;
- $bm->updateamum = $row->updateamum;
- $bm->updatevon = $row->updatevon;
- $bm->insertamum = $row->insertamum;
- $bm->insertvon = $row->insertvon;
- $bm->beschreibung = $row->beschreibung;
- $bm->oe_kurzbz = $row->oe_kurzbz;
- $bm->hersteller = $row->hersteller;
- $bm->seriennummer = $row->seriennummer;
- $bm->bestellung_id = $row->bestellung_id;
- $bm->bestelldetail_id = $row->bestelldetail_id;
- $bm->afa = $row->afa;
- $bm->verwendung = $row->verwendung;
- $bm->anmerkung = $row->anmerkung;
- $bm->leasing_bis = $row->leasing_bis;
- $bm->inventuramum = $row->inventuramum;
- $bm->inventurvon = $row->inventurvon;
- $bm->nummer2 = $row->nummer2;
- $bm->anschaffungsdatum = $row->anschaffungsdatum;
- $bm->anschaffungswert = $row->anschaffungswert;
-
- $this->result[] = $bm;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt ALLE Betriebsmittel
- *
- * @return boolean
- */
- public function getALL()
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
-
- $qry= 'SELECT * FROM wawi.tbl_betriebsmittel ORDER BY nummer';
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $bm = new betriebsmittel();
-
- $bm->betriebsmittel_id = $row->betriebsmittel_id;
- $bm->beschreibung = $row->beschreibung;
- $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
- $bm->nummer = $row->nummer;
- $bm->inventarnummer = $row->inventarnummer;
- $bm->reservieren = $row->reservieren;
- $bm->ort_kurzbz = $row->ort_kurzbz;
- $bm->updateamum = $row->updateamum;
- $bm->updatevon = $row->updatevon;
- $bm->insertamum = $row->insertamum;
- $bm->insertvon = $row->insertvon;
- $bm->oe_kurzbz = $row->oe_kurzbz;
- $bm->hersteller = $row->hersteller;
- $bm->seriennummer = $row->seriennummer;
- $bm->bestellung_id = $row->bestellung_id;
- $bm->bestelldetail_id = $row->bestelldetail_id;
- $bm->afa = $row->afa;
- $bm->verwendung = $row->verwendung;
- $bm->anmerkung = $row->anmerkung;
- $bm->leasing_bis = $row->leasing_bis;
- $bm->inventuramum = $row->inventuramum;
- $bm->inventurvon = $row->inventurvon;
- $bm->nummer2 = $row->nummer2;
- $bm->anschaffungsdatum = $row->anschaffungsdatum;
- $bm->anschaffungswert = $row->anschaffungswert;
-
- $this->result[] = $bm;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt die Betriebsmittel Anhand der Nummer
- * @param $nummer Nummer des zu ladenden Betriebsmittel
- * @return true wenn ok, false im Fehlerfall
- */
- public function load_nummer($nummer)
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
-
- $qry=' SELECT * FROM wawi.tbl_betriebsmittel WHERE nummer='.$this->db_add_param($nummer);
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $obj = new betriebsmittel();
-
- $obj->betriebsmittel_id = $row->betriebsmittel_id;
- $obj->beschreibung = $row->beschreibung;
- $obj->betriebsmitteltyp = $row->betriebsmitteltyp;
- $obj->nummer = $row->nummer;
- $obj->inventarnummer = $row->inventarnummer;
- $obj->reservieren = $this->db_parse_bool($row->reservieren);
- $obj->ort_kurzbz = $row->ort_kurzbz;
- $obj->updateamum = $row->updateamum;
- $obj->updatevon = $row->updatevon;
- $obj->insertvon = $row->insertvon;
- $obj->insertamum = $row->insertamum;
- $obj->ext_id = $row->ext_id;
- $obj->beschreibung = $row->beschreibung;
- $obj->oe_kurzbz = $row->oe_kurzbz;
- $obj->hersteller = $row->hersteller;
- $obj->seriennummer = $row->seriennummer;
- $obj->bestellung_id = $row->bestellung_id;
- $obj->bestelldetail_id = $row->bestelldetail_id;
- $obj->afa = $row->afa;
- $obj->verwendung = $row->verwendung;
- $obj->anmerkung = $row->anmerkung;
- $obj->leasing_bis = $row->leasing_bis;
- $obj->inventuramum = $row->inventuramum;
- $obj->inventurvon = $row->inventurvon;
- $obj->nummer2 = $row->nummer2;
- $obj->anschaffungsdatum = $row->anschaffungsdatum;
- $obj->anschaffungswert = $row->anschaffungswert;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt die Betriebsmittel Anhand der Invenatrnummer
- * @param $inventarnummer Inventarnummer des zu ladenden Betriebsmittel
- * @return true wenn ok, false im Fehlerfall
- */
- public function load_inventarnummer($inventarnummer)
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
- $inventarnummer = mb_str_replace('`','+',$inventarnummer);
- $qry=' SELECT * FROM wawi.tbl_betriebsmittel WHERE inventarnummer='.$this->db_add_param($inventarnummer);
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->betriebsmittel_id = $row->betriebsmittel_id;
- $this->beschreibung = $row->beschreibung;
- $this->betriebsmitteltyp = $row->betriebsmitteltyp;
- $this->nummer = $row->nummer;
- $this->inventarnummer = $row->inventarnummer;
- $this->reservieren = $this->db_parse_bool($row->reservieren);
- $this->ort_kurzbz = $row->ort_kurzbz;
- $this->updateamum = $row->updateamum;
- $this->updatevon = $row->updatevon;
- $this->insertvon = $row->insertvon;
- $this->insertamum = $row->insertamum;
- $this->ext_id = $row->ext_id;
- $this->beschreibung = $row->beschreibung;
- $this->oe_kurzbz = $row->oe_kurzbz;
- $this->hersteller = $row->hersteller;
- $this->seriennummer = $row->seriennummer;
- $this->bestellung_id = $row->bestellung_id;
- $this->bestelldetail_id = $row->bestelldetail_id;
- $this->afa = $row->afa;
- $this->verwendung = $row->verwendung;
- $this->anmerkung = $row->anmerkung;
- $this->leasing_bis = $row->leasing_bis;
- $this->inventuramum = $row->inventuramum;
- $this->inventurvon = $row->inventurvon;
- $this->anschaffungsdatum = $row->anschaffungsdatum;
- $this->anschaffungswert = $row->anschaffungswert;
-
- return true;
- }
- else
- {
- $this->errormsg = 'Es wurde kein Betriebsmittel mit dieser Inventarnummer gefunden';
- return false;
- }
-
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt die Organisation des Betriebsmittels $bestellung_id
- * Wenn keine Organisationseinheit zugeteilt ist, dann wird die Organisationseinheit der zugeteilten Person
- * geladen
- * @param $bestellung_id Bestellnummer des zu ladenden Betriebsmittel
- * @return true wenn ok, false im Fehlerfall
- */
- public function load_betriebsmittel_oe($betriebsmittel_id)
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
-
- if(!is_numeric($betriebsmittel_id))
- {
- $this->errormsg = 'Betriebsmittel_id ist ungueltig';
- return false;
- }
-
- $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id=".$this->db_add_param($betriebsmittel_id, FHC_INTEGER);
-
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $this->betriebsmittel_id = $row->betriebsmittel_id;
- $this->beschreibung = $row->beschreibung;
- $this->betriebsmitteltyp = $row->betriebsmitteltyp;
- $this->nummer = $row->nummer;
- $this->inventarnummer = $row->inventarnummer;
- $this->reservieren = $this->db_parse_bool($row->reservieren);
- $this->ort_kurzbz = $row->ort_kurzbz;
- $this->updateamum = $row->updateamum;
- $this->updatevon = $row->updatevon;
- $this->insertvon = $row->insertvon;
- $this->insertamum = $row->insertamum;
- $this->ext_id = $row->ext_id;
- $this->beschreibung = $row->beschreibung;
- $this->hersteller = $row->hersteller;
- $this->seriennummer = $row->seriennummer;
- $this->bestellung_id = $row->bestellung_id;
- $this->bestelldetail_id = $row->bestelldetail_id;
- $this->afa = $row->afa;
- $this->verwendung = $row->verwendung;
- $this->anmerkung = $row->anmerkung;
- $this->leasing_bis = $row->leasing_bis;
- $this->oe_kurzbz = trim($row->oe_kurzbz);
- $this->inventuramum = $row->inventuramum;
- $this->inventurvon = $row->inventurvon;
- $this->nummer2 = $row->nummer2;
-
- if (empty($this->oe_kurzbz))
- {
- $qry="SELECT vw_benutzer.uid ";
- $qry.=" FROM wawi.tbl_betriebsmittel ";
- $qry.=" JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id) ";
- $qry.=" JOIN campus.vw_benutzer USING(person_id) ";
-
- $qry.=" WHERE tbl_betriebsmittel.betriebsmittel_id=".$this->db_add_param($this->betriebsmittel_id, FHC_INTEGER)." ";
- $qry.=" ORDER BY retouram asc limit 1 ";
-
- $qry1 = "SELECT
- *, tbl_benutzerfunktion.oe_kurzbz as oe_kurzbz, tbl_organisationseinheit.bezeichnung as oe_bezeichnung,
- tbl_benutzerfunktion.semester, tbl_benutzerfunktion.bezeichnung as bf_bezeichnung
- FROM
- public.tbl_benutzerfunktion
- JOIN public.tbl_funktion USING(funktion_kurzbz)
- JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
- WHERE
- uid=($qry)
- AND tbl_organisationseinheit.aktiv
- AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
- AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
- limit 1
- ";
- if($res1=$this->db_query($qry1))
- {
- $rows =array();
- if($rows = $this->db_fetch_object($res1))
- $this->oe_kurzbz = $rows->oe_kurzbz;
- $row->oe_kurzbz=$this->oe_kurzbz;
- }
- }
- return $this->result=$row;
- }
- else
- {
- $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
-
- /**
- * Laedt das Betriebsmittel mit der Bestell ID des Betriebsmittels $bestellung_id
- * @param $bestellung_id Bestellnummer des zu ladenden Betriebsmittel
- * @param $bestelldetail_id Bestellposition des zu ladenden Betriebsmittel
- * @return true wenn ok, false im Fehlerfall
- */
- public function load_bestellung_id($bestellung_id,$bestelldetail_id=null)
- {
- // Initialisieren
- $this->result=array();
- $this->errormsg = '';
-
- $qry='SELECT * FROM wawi.tbl_betriebsmittel WHERE bestellung_id='.$this->db_add_param($bestellung_id, FHC_INTEGER);
-
- if (!is_null($bestelldetail_id) && !empty($bestelldetail_id) && is_numeric($bestelldetail_id) )
- $qry.=' AND bestelldetail_id='.$this->db_add_param($bestelldetail_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->betriebsmittel_id = $row->betriebsmittel_id;
- $this->beschreibung = $row->beschreibung;
- $this->betriebsmitteltyp = $row->betriebsmitteltyp;
- $this->nummer = $row->nummer;
- $this->inventarnummer = $row->inventarnummer;
- $this->reservieren = $this->db_parse_bool($row->reservieren);
- $this->ort_kurzbz = $row->ort_kurzbz;
- $this->updateamum = $row->updateamum;
- $this->updatevon = $row->updatevon;
- $this->insertvon = $row->insertvon;
- $this->insertamum = $row->insertamum;
- $this->ext_id = $row->ext_id;
- $this->beschreibung = $row->beschreibung;
- $this->oe_kurzbz = $row->oe_kurzbz;
- $this->hersteller = $row->hersteller;
- $this->seriennummer = $row->seriennummer;
- $this->bestellung_id = $row->bestellung_id;
- $this->bestelldetail_id = $row->bestelldetail_id;
- $this->afa = $row->afa;
- $this->verwendung = $row->verwendung;
- $this->anmerkung = $row->anmerkung;
- $this->leasing_bis = $row->leasing_bis;
- $this->inventuramum = $row->inventuramum;
- $this->inventurvon = $row->inventurvon;
- $this->anschaffungsdatum = $row->anschaffungsdatum;
- $this->anschaffungswert = $row->anschaffungswert;
-
- return $this->result=$row;
- }
- else
- {
- $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt INVENTARTABELLE
- * @param order_by SQL Sortierung der Abfrage
- * @param nummer ID eines Inventars
- * @param ort_kurzbz ort_kurzbz eines Inventars
- * @param betriebsmitteltyp ort_kurzbz eines Inventars
- * @param betriebsmittelstatus_kurzbz STATUS eines Inventars
- * @param nummer Datensatzid eines Inventars
- * @param bestellnr WAWI Bestellnummer des Inventars
- * @param bestellung_id WAWI Rechnungsnummer des Inventars
- * @param afa AfA Datum
- * @param Jahr_Monat der WAWI Bestellerfassung
- * @param firma_id der WAWI Bestellerfassung
-
- * @param inventur_jahr der Status Jahr - Status = inventur
- * @param beschreibung der Inventarbeschreibung
- * @param oe_kurzbz der Organisatzion
-
- * @return Daten Objekt wenn ok, false im Fehlerfall
- */
- function betriebsmittel_inventar($order=null,$inventarnummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null,$anlage_jahr_monat=null)
- {
- // Init
- $this->errormsg='';
- $this->result=array();
-
- $inventarnummer=trim($inventarnummer);
- $ort_kurzbz=trim($ort_kurzbz);
- $firma_id=trim($firma_id);
-
- $qry='SELECT distinct on(tbl_betriebsmittel.betriebsmittel_id) tbl_betriebsmittel.inventarnummer ';
- $qry.=',tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id ';
- $qry.=',tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ';
- $qry.=',tbl_betriebsmittel_betriebsmittelstatus.datum as betriebsmittelstatus_datum ';
- $qry.=',tbl_betriebsmittelstatus.beschreibung as betriebsmittelstatus_beschreibung ';
- $qry.=',tbl_betriebsmitteltyp.beschreibung as betriebsmitteltyp_beschreibung ';
- $qry.=', CASE WHEN EXISTS(SELECT retouram FROM wawi.tbl_betriebsmittelperson WHERE betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id AND retouram is NULL) THEN \'t\' ELSE \'f\' END ausgegeben';
- $qry.=', tbl_betriebsmittel.*, tbl_bestellung.titel as titel';
- $qry.=', tbl_bestellung.bestell_nr as bestellnr, tbl_firma.name as firmenname, tbl_firma.firma_id as firma_id';
-
- //AfA Datum ermitteln
- $qry.=", trim(to_char(date_part('year', anschaffungsdatum) + tbl_betriebsmittel.afa , '9999')
- || '-' ||
- to_char(anschaffungsdatum , 'MM-DD')) as betriebsmittelstatus_datum_afa ";
- $qry.=' FROM wawi.tbl_betriebsmittel';
-
- $qry.=' LEFT JOIN wawi.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
- $qry.=' LEFT JOIN wawi.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
- $qry.=' LEFT JOIN wawi.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
- $qry.=' LEFT JOIN public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
- $qry.=' LEFT JOIN wawi.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
- $qry.=' LEFT JOIN wawi.tbl_bestellung USING(bestellung_id)
- LEFT JOIN public.tbl_firma ON(tbl_firma.firma_id=tbl_bestellung.firma_id )';
-
- $qry.=" WHERE not tbl_betriebsmittel.betriebsmittel_id is null ";
- $where=$this->betriebsmittel_inventar_get_where($inventarnummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer,$person_id,$betriebsmittel_id,$anlage_jahr_monat);
- if ($where!='' && !$where)
- return $this->result;
-
- if($order=='')
- $order = 'tbl_betriebsmittel.betriebsmittel_id, betriebsmittelstatus_datum DESC, betriebsmittelbetriebsmittelstatus_id DESC';
- $order = ' ORDER BY '.$order;
- // Select und Bedingung zusammen fuehren zu SQL Abfrage
- $qry.=$where.$order; //.(!$where?' limit 100 ':' limit 300 ');
- //echo $qry;
- if(!$result=$this->db_query($qry))
- {
- $this->errormsg ='Probleme beim Lesen der Betriebsmittel';
- return false;
- }
- while($row = $this->db_fetch_object($result))
- $this->result[]=$row;
-
- return $this->result;
- }
-
- /**
- * Laedt INVENTARTABELLE BESTELLUNG_ID
- * @param inventarnummer ID eines Inventars
- * @param ort_kurzbz ort_kurzbz eines Inventars
- * @param betriebsmitteltyp ort_kurzbz eines Inventars
- * @param betriebsmittelstatus_kurzbz STATUS eines Inventars
- * @param nummer Datensatzid eines Inventars
- * @param bestellnr WAWI Bestellnummer des Inventars
- * @param bestellung_id WAWI Rechnungsnummer des Inventars
- * @param afa AfA Datum
- * @param Jahr_Monat der WAWI Bestellerfassung
- * @param firma_id der WAWI Bestellerfassung
-
- * @param inventur_jahr der Status Jahr - Status = inventur
- * @param beschreibung der Inventarbeschreibung
- * @param oe_kurzbz der Organisatzion
-
- * @return Daten Objekt wenn ok, false im Fehlerfall
- */
- function betriebsmittel_inventar_bestellung_id($order=null,$inventarnummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null)
- {
- // Init
- $this->errormsg='';
- $this->result=array();
-
- $ort_kurzbz=trim($ort_kurzbz);
- $qry='';
- $qry.='select distinct(tbl_betriebsmittel.bestellung_id) ';
- $qry.=' from wawi.tbl_betriebsmittel';
-
- $qry.=' left outer join wawi.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
- $qry.=' left outer join wawi.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
- $qry.=' left outer join wawi.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
- $qry.=' left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
- $qry.=' left outer join wawi.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
- $qry.=' left outer join wawi.tbl_bestellung using(bestellung_id)';
- $qry.=' left outer join public.tbl_firma using(firma_id)';
-
- $qry.=" where not tbl_betriebsmittel.bestellung_id is null ";
- $where='';
- $where=$this->betriebsmittel_inventar_get_where($inventarnummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer);
-
- // Select und Bedingung zusammen fuehren zu SQL Abfrage
- if (is_null($order) || empty($order) )
- $order='tbl_betriebsmittel.bestellung_id';
-
- $qry.=$where.(!is_null($order) && !empty($order)?' ORDER BY '. $order:'').(!$where?' limit 20 ':' limit 50 ');
-
- if(!$result=$this->db_query($qry))
- {
- $this->errormsg ='Probleme beim lesen der Betriebsmittel';
- return false;
- }
- while($row = $this->db_fetch_object($result))
- {
- $this->result[]=$row;
- }
-
- return $this->result;
- }
-
- /**
- * Laedt Inventartabelle
- *
- * @param $inventarnummer
- * @param $ort_kurzbz
- * @param $betriebsmittelstatus_kurzbz
- * @param $betriebsmitteltyp
- * @param $bestellung_id
- * @param $bestelldetail_id
- * @param $bestellnr
- * @param $hersteller
- * @param $afa
- * @param $jahr_monat
- * @param $firma_id
- * @param $inventur_jahr
- * @param $beschreibung
- * @param $oe_kurzbz
- * @param $seriennummer
- * @param $person_id
- * @param $betriebsmittel_id
- * @return unknown
- */
- public function betriebsmittel_inventar_get_where($inventarnummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null,$anlage_jahr_monat=null)
- {
- $where='';
- // Inventarnummer oder Betriebsmittelnummer
- if (!is_null($inventarnummer) && !empty($inventarnummer) )
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' ','`'),'%',trim($inventarnummer)));
- $where.=" AND UPPER(trim(tbl_betriebsmittel.inventarnummer)) like '".$this->db_escape($matchcode)."' " ;
- }
- if (!is_null($betriebsmittel_id) && !empty($betriebsmittel_id) )
- $where.=" AND tbl_betriebsmittel.betriebsmittel_id = ".$this->db_add_param(trim($betriebsmittel_id));
-
- // Inventarnummer oder Betriebsmittelnummer
- if (!is_null($seriennummer) && !empty($seriennummer) )
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($seriennummer)));
- $where.=" AND UPPER(trim(tbl_betriebsmittel.seriennummer)) like '%".$this->db_escape($matchcode)."%' ";
- }
-
- if (!is_null($hersteller) && $hersteller!='' )
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($hersteller)));
- $where.=" AND UPPER(trim(tbl_betriebsmittel.hersteller)) like '%".$this->db_escape($matchcode)."%' ";
- }
-
- if (!is_null($beschreibung) && $beschreibung!='' )
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($beschreibung)));
- $where.=" AND ( UPPER(trim(tbl_betriebsmittel.beschreibung)) like '%".$this->db_escape($matchcode)."%' ";
- $where.=" or UPPER(trim(tbl_betriebsmittel.verwendung)) like '%".$this->db_escape($matchcode)."%' ";
- if ( $bestellnr || $firma_id || $beschreibung )
- $where.=" or UPPER(trim(tbl_bestellung.titel)) like '%". $this->db_escape($matchcode) ."%' " ;
- $where.=" or UPPER(trim(tbl_betriebsmittel.anmerkung)) like '%".$this->db_escape($matchcode)."%' ) ";
- }
-
- if (!is_null($bestellung_id) && $bestellung_id!='' && is_numeric($bestellung_id))
- $where.=" AND tbl_betriebsmittel.bestellung_id=".$this->db_add_param(trim($bestellung_id));
- elseif (!is_null($bestellung_id) && $bestellung_id!='')
- $where.=" AND UPPER(trim(to_char(tbl_betriebsmittel.bestellung_id,'999999999'))) like '".$this->db_escape(mb_strtoupper(str_replace(array('*',';',' ',"'",'"'),'%',trim($bestellung_id))))."%' " ;
-
- if (!is_null($bestelldetail_id) && $bestelldetail_id!='' && is_numeric($bestelldetail_id))
- $where.=" AND tbl_betriebsmittel.bestelldetail_id=".$this->db_add_param(trim($bestelldetail_id));
- elseif (!is_null($bestelldetail_id) && $bestelldetail_id!='')
- $where.=" AND UPPER(trim(to_char(tbl_betriebsmittel.bestelldetail_id,'999999999'))) like '".$this->db_escape(mb_strtoupper(str_replace(array('*',';',' ',"'",'"'),'%',trim($bestelldetail_id)))) ."%' " ;
-
- if (!is_null($person_id) && $person_id!='' )
- {
- $pWhere='';
- if (is_numeric($person_id) )
- $pWhere.=" AND ( tbl_betriebsmittelperson.person_id=".$this->db_add_param(trim($person_id));
- else
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($person_id)));
- $pWhere.=" AND ( tbl_betriebsmittelperson.person_id in (select person_id from campus.vw_benutzer where aktiv ";
- $pWhere.=" and (UPPER(trim(uid)) like '%".$this->db_escape($matchcode)."%' ";
- $pWhere.=" or UPPER(trim(to_char(person_id,'999999999'))) like '%".$this->db_escape($matchcode)."%' ";
- $pWhere.=" or UPPER(trim(nachname)) like '%".$this->db_escape($matchcode)."%' ";
- $pWhere.=" or UPPER(trim(vorname)) like '%".$this->db_escape($matchcode)."%' ";
- $pWhere.=" or UPPER(trim(nachname || ' ' || vorname)) like '%".$this->db_escape($matchcode)."%' ";
- $pWhere.=" or UPPER(trim(vorname || ' ' || nachname)) like '%".$this->db_escape($matchcode)."%' ) )";
- }
- $pWhere.=" AND retouram is null";
- $where.=$pWhere;
-
- if (!is_null($oe_kurzbz) && $oe_kurzbz!='')
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($oe_kurzbz)));
- $where.=" AND ( upper(trim(tbl_betriebsmittel.oe_kurzbz)) like '%". $this->db_escape($matchcode)."%' " ;
- $where.=" or tbl_betriebsmittelperson.person_id in ( SELECT distinct vw_benutzer.person_id
- FROM public.tbl_benutzerfunktion JOIN campus.vw_benutzer USING(uid)
- where not funktion_kurzbz=null
- and oe_kurzbz IN(
- WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
- (
- SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
- WHERE upper(trim(oe_kurzbz)) like '".$this->db_escape($matchcode)."'
- UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
- WHERE o.oe_parent_kurzbz=oes.oe_kurzbz
- )
- SELECT oe_kurzbz
- FROM oes
- GROUP BY oe_kurzbz ))
- )";
- }
- $where.=" )";
- }
- // Organisation
- else if (!is_null($oe_kurzbz) && $oe_kurzbz!='')
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($oe_kurzbz)));
- $where.=" AND ( upper(trim(tbl_betriebsmittel.oe_kurzbz)) like '".$this->db_escape($matchcode)."' " ;
- $where.=" or tbl_betriebsmittelperson.person_id in ( SELECT distinct vw_benutzer.person_id
- FROM public.tbl_benutzerfunktion JOIN campus.vw_benutzer USING(uid)
- where not funktion_kurzbz=null
- and oe_kurzbz IN(
- WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
- (
- SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
- WHERE upper(trim(oe_kurzbz)) like '".$this->db_escape($matchcode)."'
- UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
- WHERE o.oe_parent_kurzbz=oes.oe_kurzbz
- )
- SELECT oe_kurzbz
- FROM oes
- GROUP BY oe_kurzbz ))
- )";
- }
-
- // Ort
- if (!is_null($ort_kurzbz) && $ort_kurzbz!='')
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($ort_kurzbz)));
- $where.=" AND ( upper(trim(tbl_betriebsmittel.ort_kurzbz)) like '%".$this->db_escape($matchcode)."%' " ;
- $where.=" OR upper(trim(tbl_ort.bezeichnung)) like '%".$this->db_escape($matchcode)."%' )" ;
- }
-
- if (!is_null($betriebsmitteltyp) && !empty($betriebsmitteltyp) )
- $where.=" AND upper(trim(tbl_betriebsmittel.betriebsmitteltyp)) = ".$this->db_add_param(mb_strtoupper(trim($betriebsmitteltyp)));
-
- // Datum Check
- if (!is_null($afa) && $afa!='')
- {
- $afa=mb_strtoupper(trim(str_replace(array('-',',',';','.','/','*','%',"'",'"'),'',trim($afa))));
- if (!empty($afa) && is_numeric($afa) && strlen($afa)>4)
- $where.=" and not afa is null and trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa , '9999') || to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'MM')) = ".$this->db_add_param(substr($afa,0,6));
- else if (!empty($afa) && is_numeric($afa) && strlen($afa)>2)
- $where.=" and not afa is null and trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa ,'9999')) = ".$this->db_add_param(substr($afa,0,4));
- else
- $where.=" and not afa is null and trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa ,'9999')) <= ".$this->db_add_param(Date('Y'));
- if (is_null($betriebsmittelstatus_kurzbz) || $betriebsmittelstatus_kurzbz=='' )
- $betriebsmittelstatus_kurzbz=mb_strtoupper('vorhanden');
- $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus ".($betriebsmittelstatus_kurzbz?" where not betriebsmittelbetriebsmittelstatus_id is null and upper(tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz) = ".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id ) ";
-
- }
- elseif (!is_null($inventur_jahr) && $inventur_jahr!='')
- {
- $inventur_jahr=mb_strtoupper(trim(str_replace(array('.','/','*','%',"'",'"'),'',trim($inventur_jahr))));
- if ($inventur_jahr>0)
- {
- $where.=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY') = ".$this->db_add_param($inventur_jahr);
- $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null
- and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY')='".$inventur_jahr."' ".($betriebsmittelstatus_kurzbz?" and upper(trim(betriebsmittelstatus_kurzbz))=".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id) ";
- }
- else
- {
- $inventur_jahr=($inventur_jahr * -1);
- $where.=" and not tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null
- and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY')=".$this->db_add_param($inventur_jahr)." ".($betriebsmittelstatus_kurzbz?" and upper(trim(betriebsmittelstatus_kurzbz))=".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id) ";
- $betriebsmittelstatus_kurzbz='vorhanden';
- }
- }
- elseif (!is_null($jahr_monat) && $jahr_monat!='')
- {
- $jahr_monat=mb_strtoupper(trim(str_replace(array('-','.','/','*','%',"'",'"'),'',trim($jahr_monat))));
- $jm='';
- if (!empty($jahr_monat) && is_numeric($jahr_monat) && strlen($jahr_monat)>6)
- $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYYMMDD') = ".$this->db_add_param($jahr_monat)." ";
- elseif (!empty($jahr_monat) && is_numeric($jahr_monat) && strlen($jahr_monat)>4)
- $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYYMM') = ".$this->db_add_param($jahr_monat)." ";
- elseif (!is_null($jahr_monat) && !empty($jahr_monat))
- $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY') = ".$this->db_add_param($jahr_monat)." ";
- $where.=$jm;
- $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null ". $jm ." group by betriebsmittel_id) ";
- }
- elseif (!is_null($anlage_jahr_monat) && $anlage_jahr_monat!='')
- {
- $anlage_jahr_monat=mb_strtoupper(trim(str_replace(array('-','.','/','*','%',"'",'"'),'',trim($anlage_jahr_monat))));
- $jm='';
- if (!empty($anlage_jahr_monat) && is_numeric($anlage_jahr_monat) && strlen($anlage_jahr_monat)>6)
- $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYYMMDD') = ".$this->db_add_param($anlage_jahr_monat)." ";
- elseif (!empty($anlage_jahr_monat) && is_numeric($anlage_jahr_monat) && strlen($anlage_jahr_monat)>4)
- $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYYMM') = ".$this->db_add_param($anlage_jahr_monat)." ";
- elseif (!is_null($anlage_jahr_monat) && !empty($anlage_jahr_monat))
- $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYY') = ".$this->db_add_param($anlage_jahr_monat)." ";
- $where.=$jm;
- $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null ". $jm ." group by betriebsmittel_id) ";
- }
- else if (!is_null($betriebsmittelstatus_kurzbz) && $betriebsmittelstatus_kurzbz!='')
- $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null group by betriebsmittel_id) ";
-
- // Bestellnummer
- if (!is_null($bestellnr) && !empty($bestellnr) )
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($bestellnr)));
- $where.=" AND UPPER(trim(tbl_bestellung.bestell_nr)) like '%".$this->db_escape($matchcode)."%' " ;
- }
- // Lieferant
- if (!is_null($firma_id) && $firma_id!='' && is_numeric($firma_id))
- {
- $where.=" AND tbl_bestellung.firma_id=".$this->db_add_param(trim($firma_id));
- }
- elseif (!is_null($firma_id) && $firma_id!='' )
- {
- $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($firma_id)));
- $where.=" AND UPPER(trim(tbl_firma.name)) like '%".$this->db_escape($matchcode)."%' " ;
- }
-
- if (!is_null($betriebsmittelstatus_kurzbz) && !empty($betriebsmittelstatus_kurzbz) )
- $where.=" and upper(trim(tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz)) = ".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))) ;
-
- return $where;
- }
-
- /**
- * Es sind mehrere Kartenlesegeraete im Umlauf
- * Manche Geraete liefern die Kartennummer hexcodiert zurueck.
- * Diese muessen erst in das richtige Format transformiert werden
- * zusaetzlich werden die fuehrenden nullen entfernt
- *
- * @param $kartennummer
- * @return $kartennummer
- */
- function transform_kartennummer($kartennummer)
- {
- $kartennummer = trim($kartennummer);
- //Kartennummern die im Hex-Format sind werden umgewandelt
- if (!is_numeric($kartennummer))
- {
- $kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2);
- $kartennummer=hexdec( $kartennummer);
- }
-
- //Fuehrende nullen entfernen
- $kartennummer = preg_replace("/^0*/", "", $kartennummer);
- return $kartennummer;
- }
-
- /**
- * Überprüft ob die Zutrittskarte zur übergerbenen uid schon ausgedruckt worden ist
- * @param type $uid
- */
- public function zutrittskartePrinted($uid)
- {
- $qry ="SELECT * FROM wawi.tbl_betriebsmittelperson
- JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
- WHERE uid = ".$this->db_add_param($uid, FHC_STRING)."
- and betriebsmitteltyp = 'Zutrittskarte'
- AND nummer2 is not null";
-
- if($result = $this->db_query($qry))
- {
- if($this->db_num_rows($result) > 0)
- {
- if($row = $this->db_fetch_object($result))
- {
- $this->insertamum = $row->insertamum;
- }
- return true;
- }
- else
- return false;
- }
- }
-
- /**
- * Überprüft ob die Zutrittskarte schon ausgegeben worden ist -> ausgegeben an == null und retouram != null
- * @param $uid
- * @return boolean
- */
- public function zutrittskarteAusgegeben($uid)
- {
- $qry ="SELECT * FROM wawi.tbl_betriebsmittelperson WHERE uid =".$this->db_add_param($uid, FHC_STRING)."
- AND betriebsmittel_id IN(
- SELECT betriebsmittel_id
- FROM wawi.tbl_betriebsmittelperson
- JOIN wawi.tbl_betriebsmittel USING (betriebsmittel_id) where uid=".$this->db_add_param($uid,FHC_STRING)."
- AND betriebsmitteltyp='Zutrittskarte' and nummer2 is not null)
- AND ausgegebenam is not null AND retouram is null";
-
- if($result = $this->db_query($qry))
- {
- if($this->db_num_rows($result)>0)
- return true;
- else
- return false;
- }
- }
-
- /**
- * Liefert die Betriebsmittelzuordnungen zu Stundenplaneintraegen
- * @param $stundenplan_ids Array mit StundenplanIDs
- * @return boolean
- */
- public function getBetriebsmittelStundenplan($stundenplan_ids)
- {
- if(count($stundenplan_ids)>0)
- {
- $qry = "SELECT
- tbl_stundenplan_betriebsmittel.stundenplan_betriebsmittel_id, tbl_stundenplan_betriebsmittel.anmerkung,
- tbl_betriebsmittel.betriebsmittel_id, tbl_betriebsmittel.beschreibung, tbl_stundenplandev.stunde
- FROM
- lehre.tbl_stundenplan_betriebsmittel
- JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
- JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
- WHERE
- tbl_stundenplan_betriebsmittel.stundenplandev_id in( ".$this->db_implode4SQL($stundenplan_ids).")";
-
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $obj = new stdclass();
-
- $obj->betriebsmittel_id = $row->betriebsmittel_id;
- $obj->beschreibung = $row->beschreibung;
- $obj->stundenplan_betriebsmittel_id=$row->stundenplan_betriebsmittel_id;
- $obj->anmerkung = $row->anmerkung;
- $obj->stunde = $row->stunde;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
- else
- return true;
- }
-
- /**
- * Liefert die Betriebsmittel die zum angegebenen Datum und den Stunden frei und verplanbar ist
- * @param $datum Datum
- * @param $stunden array mit stunden
- * @return boolean
- */
- public function getVerplanbar($datum, $stunden)
- {
- $qry = "SELECT
- *
- FROM
- wawi.tbl_betriebsmittel
- WHERE
- verplanen=true
- AND NOT EXISTS(SELECT 1 FROM lehre.tbl_stundenplan_betriebsmittel
- JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
- WHERE
- betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id
- AND tbl_stundenplandev.datum=".$this->db_add_param($datum)."
- AND tbl_stundenplandev.stunde in(".$this->db_implode4SQL($stunden)."))";
-
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $bm = new betriebsmittel();
-
- $bm->betriebsmittel_id = $row->betriebsmittel_id;
- $bm->beschreibung = $row->beschreibung;
- $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
- $bm->nummer = $row->nummer;
- $bm->inventarnummer = $row->inventarnummer;
- $bm->reservieren = $row->reservieren;
- $bm->ort_kurzbz = $row->ort_kurzbz;
- $bm->updateamum = $row->updateamum;
- $bm->updatevon = $row->updatevon;
- $bm->insertamum = $row->insertamum;
- $bm->insertvon = $row->insertvon;
- $bm->beschreibung = $row->beschreibung;
- $bm->oe_kurzbz = $row->oe_kurzbz;
- $bm->hersteller = $row->hersteller;
- $bm->seriennummer = $row->seriennummer;
- $bm->bestellung_id = $row->bestellung_id;
- $bm->bestelldetail_id = $row->bestelldetail_id;
- $bm->afa = $row->afa;
- $bm->verwendung = $row->verwendung;
- $bm->anmerkung = $row->anmerkung;
- $bm->leasing_bis = $row->leasing_bis;
- $bm->inventuramum = $row->inventuramum;
- $bm->inventurvon = $row->inventurvon;
- $bm->nummer2 = $row->nummer2;
- $bm->anschaffungsdatum = $row->anschaffungsdatum;
- $bm->anschaffungswert = $row->anschaffungswert;
-
- $this->result[] = $bm;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Loescht eine Zuordnung
- * @param $stundenplan_betriebsmittel_id
- * @return boolean
- */
- function deleteStundenplanBetriebsmittel($stundenplan_betriebsmittel_id)
- {
- $qry = "DELETE FROM lehre.tbl_stundenplan_betriebsmittel WHERE stundenplan_betriebsmittel_id=".$this->db_add_param($stundenplan_betriebsmittel_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- return true;
- }
- else
- {
- $this->errormsg ='Fehler beim Loeschen';
- return false;
- }
- }
-
- /**
- * Speichert die Zuordnung von Betriebsmitteln zu Stundenplaneintraegen
- * @return boolean
- */
- function saveStundenplanBetriebsmittel()
- {
- if($this->new)
- {
- $qry = "INSERT INTO lehre.tbl_stundenplan_betriebsmittel(betriebsmittel_id, stundenplandev_id, anmerkung, insertamum, insertvon) VALUES(".
- $this->db_add_param($this->betriebsmittel_id).','.
- $this->db_add_param($this->stundenplandev_id).','.
- $this->db_add_param($this->anmerkung).','.
- $this->db_add_param($this->insertamum).','.
- $this->db_add_param($this->insertvon).');';
- }
- else
- {
- $qry = "UPDATE lehre.tbl_stundenplan_betriebsmittel SET
- anmerkung=".$this->db_add_param($this->anmerkung)."
- WHERE stundenplan_betriebsmittel_id=".$this->db_add_param($this->stundenplan_betriebsmittel_id, FHC_INTEGER);
- }
-
- if($this->db_query($qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern der Daten:'.$qry.$this->db_last_error();;
- return false;
- }
- }
-
- /**
- * Laedt die Betriebsmittel-Stundenplan Zuordnung
- * @param $stundenplan_betriebsmittel_id
- * @return boolean
- */
- function loadBetriebsmittelStundenplan($stundenplan_betriebsmittel_id)
- {
- $qry = "SELECT
- tbl_stundenplan_betriebsmittel.*,
- tbl_betriebsmittel.beschreibung as bm_beschreibung
- FROM
- lehre.tbl_stundenplan_betriebsmittel
- JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
- WHERE stundenplan_betriebsmittel_id=".$this->db_add_param($stundenplan_betriebsmittel_id, FHC_INTEGER);
-
- if($result = $this->db_query($qry))
- {
- if($row = $this->db_fetch_object($result))
- {
- $this->stundenplan_betriebsmittel_id = $row->stundenplan_betriebsmittel_id;
- $this->betriebsmittel_id = $row->betriebsmittel_id;
- $this->stundenplandev_id = $row->stundenplandev_id;
- $this->anmerkung = $row->anmerkung;
- $this->insertamum = $row->insertamum;
- $this->insertvon = $row->insertvon;
- $this->beschreibung = $row->bm_beschreibung;
- return true;
- }
- else
- {
- $this->errormsg = 'Eintrag wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-}
-?>
+
+ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
+ * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
+ * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
+ */
+
+/**
+ * Klasse Betriebsmittel
+ * @create 22-01-2007
+ */
+require_once(dirname(__FILE__).'/basis_db.class.php');
+
+class betriebsmittel extends basis_db
+{
+ public $default_afa_jahre=5;
+
+ public $debug=false; // boolean
+ public $new; // boolean
+ public $result;
+
+ //Tabellenspalten
+ public $betriebsmittel_id; // integer
+ public $betriebsmitteltyp; // string
+ public $nummer; // string
+ public $inventarnummer; // string
+ public $reservieren; // boolean
+ public $ort_kurzbz; // string
+ public $ext_id; // integer
+ public $insertamum; // timestamp
+ public $insertvon; // string
+ public $updateamum; // timestamp
+ public $updatevon; // string
+ public $beschreibung; // string
+ public $oe_kurzbz; // string
+ public $hersteller; // string
+
+ public $seriennummer; // string
+ public $bestellung_id; // integer
+ public $bestelldetail_id; // integer
+ public $afa; // string
+ public $verwendung; // string
+ public $anmerkung; // string
+ public $leasing_bis; // date
+
+ public $inventuramum; // timestamp
+ public $inventurvon; // string
+
+ public $anschaffungswert;
+ public $anschaffungsdatum;
+ public $hoehe;
+ public $breite;
+ public $tiefe;
+ public $verplanen=false;
+
+ public $nummer2;
+
+ /**
+ * Konstruktor
+ * @param $betriebsmittel_id ID des Betrtiebsmittels, das geladen werden soll (Default=null)
+ */
+ public function __construct($betriebsmittel_id=null)
+ {
+ parent::__construct();
+
+ if(!is_null($betriebsmittel_id))
+ $this->load($betriebsmittel_id);
+ }
+
+ /**
+ * Laedt das Betriebsmittel mit der ID $betriebsmittel_id
+ * @param $betriebsmittel_id ID des zu ladenden Betriebsmittel
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load($betriebsmittel_id)
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+
+ if(!is_numeric($betriebsmittel_id))
+ {
+ $this->errormsg = 'Betriebsmittel_id ist ungueltig';
+ return false;
+ }
+
+ $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id=".$this->db_add_param($betriebsmittel_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->betriebsmittel_id = $row->betriebsmittel_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $this->nummer = $row->nummer;
+ $this->inventarnummer = $row->inventarnummer;
+ $this->reservieren = $this->db_parse_bool($row->reservieren);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ $this->insertvon = $row->insertvon;
+ $this->insertamum = $row->insertamum;
+ $this->ext_id = $row->ext_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->oe_kurzbz = $row->oe_kurzbz;
+ $this->hersteller = $row->hersteller;
+ $this->seriennummer = $row->seriennummer;
+ $this->bestellung_id = $row->bestellung_id;
+ $this->bestelldetail_id = $row->bestelldetail_id;
+ $this->afa = $row->afa;
+ $this->verwendung = $row->verwendung;
+ $this->anmerkung = $row->anmerkung;
+ $this->leasing_bis = $row->leasing_bis;
+ $this->inventuramum = $row->inventuramum;
+ $this->inventurvon = $row->inventurvon;
+ $this->anschaffungsdatum = $row->anschaffungsdatum;
+ $this->anschaffungswert = $row->anschaffungswert;
+ $this->hoehe = $row->hoehe;
+ $this->breite = $row->breite;
+ $this->tiefe = $row->tiefe;
+ $this->nummer2 = $row->nummer2;
+ $this->anschaffungsdatum = $row->anschaffungsdatum;
+ $this->anschaffungswert = $row->anschaffungswert;
+ $this->verplanen = $this->db_parse_bool($row->verplanen);
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ /**
+ * Prueft die Daten vor dem Speichern
+ * auf Gueltigkeit
+ */
+ protected function validate()
+ {
+ return true;
+ }
+
+ /**
+ *
+ * Sucht Betriebsmittel anhand der inventarnummer und filter
+ * @param $filter, ein teil oder die ganze inventarnummer
+ */
+ public function searchBetriebsmittel($filter)
+ {
+ $qry = "SELECT * FROM wawi.tbl_betriebsmittel where inventarnummer LIKE '%".$this->db_escape($filter)."%'";
+
+ $this->result = array();
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $bm = new betriebsmittel();
+
+ $bm->betriebsmittel_id = $row->betriebsmittel_id;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $bm->nummer = $row->nummer;
+ $bm->inventarnummer = $row->inventarnummer;
+ $bm->reservieren = $row->reservieren;
+ $bm->ort_kurzbz = $row->ort_kurzbz;
+ $bm->updateamum = $row->updateamum;
+ $bm->updatevon = $row->updatevon;
+ $bm->insertamum = $row->insertamum;
+ $bm->insertvon = $row->insertvon;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->oe_kurzbz = $row->oe_kurzbz;
+ $bm->hersteller = $row->hersteller;
+ $bm->seriennummer = $row->seriennummer;
+ $bm->bestellung_id = $row->bestellung_id;
+ $bm->bestelldetail_id = $row->bestelldetail_id;
+ $bm->afa = $row->afa;
+ $bm->verwendung = $row->verwendung;
+ $bm->anmerkung = $row->anmerkung;
+ $bm->leasing_bis = $row->leasing_bis;
+ $bm->inventuramum = $row->inventuramum;
+ $bm->inventurvon = $row->inventurvon;
+ $bm->anschaffungswert = $row->anschaffungswert;
+ $bm->anschaffungsdatum = $row->anschaffungsdatum;
+
+ $this->result[] = $bm;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Prueft ob die Inventarnummer schon existiert
+ *
+ * @param $inventarnummer
+ * @param $betriebsmittel_id
+ * @return boolean
+ */
+ public function inventarnummer_exists($inventarnummer, $betriebsmittel_id=null)
+ {
+ $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE inventarnummer=".$this->db_add_param($this->inventarnummer);
+ if($betriebsmittel_id!='')
+ $qry.=" AND betriebsmittel_id<>".$this->db_add_param($this->betriebsmittel_id, FHC_INTEGER);
+ if($result = $this->db_query($qry))
+ {
+ if($this->db_num_rows($result)>0)
+ return true;
+ else
+ return false;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ /**
+ * Speichert den aktuellen Datensatz in die Datenbank
+ * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
+ * andernfalls wird der Datensatz mit der ID in $betriebsmittel_id aktualisiert
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function save($new=null)
+ {
+ if($new==null)
+ $new=$this->new;
+
+ if(!$this->validate())
+ return false;
+ if ($this->nummer)
+ $this->nummer=trim($this->nummer);
+
+ $this->inventarnummer = str_replace('`','+',$this->inventarnummer);
+
+ if($this->inventarnummer_exists($this->inventarnummer,($new?null:$this->betriebsmittel_id)))
+ {
+ $this->errormsg = 'Diese Inventarnummer existiert bereits';
+ return false;
+ }
+
+ //bei Zutrittskarten sicherstellen, dass die Nummer richtig kodiert ist
+ if($this->betriebsmitteltyp=='Zutrittskarte')
+ {
+ $this->nummer = $this->transform_kartennummer($this->nummer);
+ }
+ $this->afa=(!isset($this->afa) || empty($this->afa)?$this->default_afa_jahre:$this->afa);
+ if($new)
+ {
+ //Neuen Datensatz einfuegen
+ $qry='INSERT INTO wawi.tbl_betriebsmittel (beschreibung, betriebsmitteltyp, nummer
+ , inventarnummer, reservieren, ort_kurzbz
+ , insertamum, insertvon, updateamum, updatevon,oe_kurzbz,hersteller,seriennummer
+ ,bestellung_id,bestelldetail_id,afa,verwendung,anmerkung,leasing_bis, inventuramum, inventurvon,
+ anschaffungsdatum, anschaffungswert, hoehe, breite, tiefe, nummer2,verplanen) VALUES('.
+ $this->db_add_param($this->beschreibung).', '.
+ $this->db_add_param($this->betriebsmitteltyp).', '.
+ $this->db_add_param($this->nummer).', '.
+ $this->db_add_param($this->inventarnummer).', '.
+ $this->db_add_param($this->reservieren, FHC_BOOLEAN).', '.
+ $this->db_add_param($this->ort_kurzbz).', '.
+ ($this->insertamum?$this->db_add_param($this->insertamum):'now()').', '.
+ $this->db_add_param($this->insertvon).', '.
+ ($this->updateamum?$this->db_add_param($this->updateamum):'now()').', '.
+ $this->db_add_param((empty($this->updatevon)?$this->updatevon:$this->insertvon)).', '.
+ $this->db_add_param($this->oe_kurzbz).', '.
+ $this->db_add_param($this->hersteller).', '.
+ $this->db_add_param($this->seriennummer).', '.
+ $this->db_add_param($this->bestellung_id).', '.
+ $this->db_add_param($this->bestelldetail_id).', '.
+ $this->db_add_param($this->afa).', '.
+ $this->db_add_param($this->verwendung).', '.
+ $this->db_add_param($this->anmerkung) .', '.
+ ($this->leasing_bis?$this->db_add_param($this->leasing_bis):'null') .', '.
+ $this->db_add_param($this->inventuramum) .', '.
+ $this->db_add_param($this->inventurvon) .', '.
+ $this->db_add_param($this->anschaffungsdatum).', '.
+ $this->db_add_param($this->anschaffungswert).', '.
+ $this->db_add_param($this->hoehe).', '.
+ $this->db_add_param($this->breite).', '.
+ $this->db_add_param($this->tiefe).','.
+ $this->db_add_param($this->nummer2).','.
+ $this->db_add_param($this->verplanen, FHC_BOOLEAN).');' ;
+ }
+ else
+ {
+ if(!is_numeric($this->betriebsmittel_id))
+ {
+ $this->errormsg = 'Betriebsmittel_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ $qry='UPDATE wawi.tbl_betriebsmittel SET '.
+ 'betriebsmitteltyp='.$this->db_add_param($this->betriebsmitteltyp).', '.
+ 'beschreibung='.$this->db_add_param($this->beschreibung).', '.
+ 'nummer='.$this->db_add_param($this->nummer).', '.
+ 'inventarnummer='.$this->db_add_param($this->inventarnummer).', '.
+ 'reservieren='.$this->db_add_param($this->reservieren,FHC_BOOLEAN).', '.
+ 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '.
+ 'updateamum='.($this->updateamum?$this->db_add_param($this->updateamum):'now()').', '.
+ 'updatevon='.$this->db_add_param($this->updatevon).', '.
+ 'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
+ 'hersteller='.$this->db_add_param($this->hersteller).', '.
+ 'seriennummer='.$this->db_add_param($this->seriennummer).', '.
+ 'bestellung_id='.$this->db_add_param($this->bestellung_id).', '.
+ 'bestelldetail_id='.$this->db_add_param($this->bestelldetail_id).', '.
+ 'afa='.($this->afa && is_numeric($this->afa)?$this->afa:$this->default_afa_jahre).', '.
+ 'verwendung='.$this->db_add_param($this->verwendung).', '.
+ 'anmerkung='.$this->db_add_param($this->anmerkung).', '.
+ 'leasing_bis='.($this->leasing_bis?$this->db_add_param($this->leasing_bis):'null').', '.
+ 'inventuramum='.$this->db_add_param($this->inventuramum).', '.
+ 'inventurvon='.$this->db_add_param($this->inventurvon).', '.
+ 'anschaffungsdatum='.$this->db_add_param($this->anschaffungsdatum).', '.
+ 'anschaffungswert='.$this->db_add_param($this->anschaffungswert).', '.
+ 'hoehe='.$this->db_add_param($this->hoehe).', '.
+ 'breite='.$this->db_add_param($this->breite).', '.
+ 'tiefe='.$this->db_add_param($this->tiefe).', '.
+ 'verplanen='.$this->db_add_param($this->verplanen, FHC_BOOLEAN).','.
+ 'nummer2='.$this->db_add_param($this->nummer2).' '.
+ 'WHERE betriebsmittel_id='.$this->db_add_param($this->betriebsmittel_id).';';
+ }
+
+ if($this->db_query($qry))
+ {
+ if($new)
+ {
+ $qry = "SELECT currval('wawi.tbl_betriebsmittel_betriebsmittel_id_seq') as id;";
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->betriebsmittel_id = $row->id;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Lesen der Sequence';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Lesen der Sequence';
+ return false;
+ }
+ }
+ return $this->betriebsmittel_id;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Betriebsmittel-Datensatzes';
+ return false;
+ }
+ }
+
+ /**
+ * Loescht den Datenensatz mit der ID die uebergeben wird
+ * @param $betriebsmittel_id ID die geloescht werden soll
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function delete($betriebsmittel_id)
+ {
+ if(!is_numeric($betriebsmittel_id))
+ {
+ $this->errormsg = 'Betriebsmittel_id ist ungueltig';
+ return false;
+ }
+ $qry = "DELETE FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id=".$this->db_add_param($betriebsmittel_id, FHC_INTEGER);
+ if($this->db_query($qry))
+ return true;
+ else
+ {
+ $this->errormsg = 'Fehler beim Loeschen der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Betriebsmittel
+ *
+ * @param $betriebsmitteltyp
+ * @param $nummer
+ * @return boolean
+ */
+ public function getBetriebsmittel($betriebsmitteltyp, $nummer)
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+
+ $qry= 'SELECT * ';
+ $qry.= ' FROM wawi.tbl_betriebsmittel ';
+ $qry.= " WHERE betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp)." AND nummer=".$this->db_add_param($nummer);
+ $qry.= ' ORDER BY updateamum DESC';
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $bm = new betriebsmittel();
+
+ $bm->betriebsmittel_id = $row->betriebsmittel_id;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $bm->nummer = $row->nummer;
+ $bm->inventarnummer = $row->inventarnummer;
+ $bm->reservieren = $row->reservieren;
+ $bm->ort_kurzbz = $row->ort_kurzbz;
+ $bm->updateamum = $row->updateamum;
+ $bm->updatevon = $row->updatevon;
+ $bm->insertamum = $row->insertamum;
+ $bm->insertvon = $row->insertvon;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->oe_kurzbz = $row->oe_kurzbz;
+ $bm->hersteller = $row->hersteller;
+ $bm->seriennummer = $row->seriennummer;
+ $bm->bestellung_id = $row->bestellung_id;
+ $bm->bestelldetail_id = $row->bestelldetail_id;
+ $bm->afa = $row->afa;
+ $bm->verwendung = $row->verwendung;
+ $bm->anmerkung = $row->anmerkung;
+ $bm->leasing_bis = $row->leasing_bis;
+ $bm->inventuramum = $row->inventuramum;
+ $bm->inventurvon = $row->inventurvon;
+ $bm->nummer2 = $row->nummer2;
+ $bm->anschaffungsdatum = $row->anschaffungsdatum;
+ $bm->anschaffungswert = $row->anschaffungswert;
+
+ $this->result[] = $bm;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt ALLE Betriebsmittel
+ *
+ * @return boolean
+ */
+ public function getALL()
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+
+ $qry= 'SELECT * FROM wawi.tbl_betriebsmittel ORDER BY nummer';
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $bm = new betriebsmittel();
+
+ $bm->betriebsmittel_id = $row->betriebsmittel_id;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $bm->nummer = $row->nummer;
+ $bm->inventarnummer = $row->inventarnummer;
+ $bm->reservieren = $row->reservieren;
+ $bm->ort_kurzbz = $row->ort_kurzbz;
+ $bm->updateamum = $row->updateamum;
+ $bm->updatevon = $row->updatevon;
+ $bm->insertamum = $row->insertamum;
+ $bm->insertvon = $row->insertvon;
+ $bm->oe_kurzbz = $row->oe_kurzbz;
+ $bm->hersteller = $row->hersteller;
+ $bm->seriennummer = $row->seriennummer;
+ $bm->bestellung_id = $row->bestellung_id;
+ $bm->bestelldetail_id = $row->bestelldetail_id;
+ $bm->afa = $row->afa;
+ $bm->verwendung = $row->verwendung;
+ $bm->anmerkung = $row->anmerkung;
+ $bm->leasing_bis = $row->leasing_bis;
+ $bm->inventuramum = $row->inventuramum;
+ $bm->inventurvon = $row->inventurvon;
+ $bm->nummer2 = $row->nummer2;
+ $bm->anschaffungsdatum = $row->anschaffungsdatum;
+ $bm->anschaffungswert = $row->anschaffungswert;
+
+ $this->result[] = $bm;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Betriebsmittel Anhand der Nummer
+ * @param $nummer Nummer des zu ladenden Betriebsmittel
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load_nummer($nummer)
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+
+ $qry=' SELECT * FROM wawi.tbl_betriebsmittel WHERE nummer='.$this->db_add_param($nummer);
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new betriebsmittel();
+
+ $obj->betriebsmittel_id = $row->betriebsmittel_id;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $obj->nummer = $row->nummer;
+ $obj->inventarnummer = $row->inventarnummer;
+ $obj->reservieren = $this->db_parse_bool($row->reservieren);
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->insertvon = $row->insertvon;
+ $obj->insertamum = $row->insertamum;
+ $obj->ext_id = $row->ext_id;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->hersteller = $row->hersteller;
+ $obj->seriennummer = $row->seriennummer;
+ $obj->bestellung_id = $row->bestellung_id;
+ $obj->bestelldetail_id = $row->bestelldetail_id;
+ $obj->afa = $row->afa;
+ $obj->verwendung = $row->verwendung;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->leasing_bis = $row->leasing_bis;
+ $obj->inventuramum = $row->inventuramum;
+ $obj->inventurvon = $row->inventurvon;
+ $obj->nummer2 = $row->nummer2;
+ $obj->anschaffungsdatum = $row->anschaffungsdatum;
+ $obj->anschaffungswert = $row->anschaffungswert;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Betriebsmittel Anhand der Invenatrnummer
+ * @param $inventarnummer Inventarnummer des zu ladenden Betriebsmittel
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load_inventarnummer($inventarnummer)
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+ $inventarnummer = mb_str_replace('`','+',$inventarnummer);
+ $qry=' SELECT * FROM wawi.tbl_betriebsmittel WHERE inventarnummer='.$this->db_add_param($inventarnummer);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->betriebsmittel_id = $row->betriebsmittel_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $this->nummer = $row->nummer;
+ $this->inventarnummer = $row->inventarnummer;
+ $this->reservieren = $this->db_parse_bool($row->reservieren);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ $this->insertvon = $row->insertvon;
+ $this->insertamum = $row->insertamum;
+ $this->ext_id = $row->ext_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->oe_kurzbz = $row->oe_kurzbz;
+ $this->hersteller = $row->hersteller;
+ $this->seriennummer = $row->seriennummer;
+ $this->bestellung_id = $row->bestellung_id;
+ $this->bestelldetail_id = $row->bestelldetail_id;
+ $this->afa = $row->afa;
+ $this->verwendung = $row->verwendung;
+ $this->anmerkung = $row->anmerkung;
+ $this->leasing_bis = $row->leasing_bis;
+ $this->inventuramum = $row->inventuramum;
+ $this->inventurvon = $row->inventurvon;
+ $this->anschaffungsdatum = $row->anschaffungsdatum;
+ $this->anschaffungswert = $row->anschaffungswert;
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Es wurde kein Betriebsmittel mit dieser Inventarnummer gefunden';
+ return false;
+ }
+
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Organisation des Betriebsmittels $bestellung_id
+ * Wenn keine Organisationseinheit zugeteilt ist, dann wird die Organisationseinheit der zugeteilten Person
+ * geladen
+ * @param $bestellung_id Bestellnummer des zu ladenden Betriebsmittel
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load_betriebsmittel_oe($betriebsmittel_id)
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+
+ if(!is_numeric($betriebsmittel_id))
+ {
+ $this->errormsg = 'Betriebsmittel_id ist ungueltig';
+ return false;
+ }
+
+ $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE betriebsmittel_id=".$this->db_add_param($betriebsmittel_id, FHC_INTEGER);
+
+ if($res=$this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($res))
+ {
+ $this->betriebsmittel_id = $row->betriebsmittel_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $this->nummer = $row->nummer;
+ $this->inventarnummer = $row->inventarnummer;
+ $this->reservieren = $this->db_parse_bool($row->reservieren);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ $this->insertvon = $row->insertvon;
+ $this->insertamum = $row->insertamum;
+ $this->ext_id = $row->ext_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->hersteller = $row->hersteller;
+ $this->seriennummer = $row->seriennummer;
+ $this->bestellung_id = $row->bestellung_id;
+ $this->bestelldetail_id = $row->bestelldetail_id;
+ $this->afa = $row->afa;
+ $this->verwendung = $row->verwendung;
+ $this->anmerkung = $row->anmerkung;
+ $this->leasing_bis = $row->leasing_bis;
+ $this->oe_kurzbz = trim($row->oe_kurzbz);
+ $this->inventuramum = $row->inventuramum;
+ $this->inventurvon = $row->inventurvon;
+ $this->nummer2 = $row->nummer2;
+
+ if (empty($this->oe_kurzbz))
+ {
+ $qry="SELECT vw_benutzer.uid ";
+ $qry.=" FROM wawi.tbl_betriebsmittel ";
+ $qry.=" JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id) ";
+ $qry.=" JOIN campus.vw_benutzer USING(person_id) ";
+
+ $qry.=" WHERE tbl_betriebsmittel.betriebsmittel_id=".$this->db_add_param($this->betriebsmittel_id, FHC_INTEGER)." ";
+ $qry.=" ORDER BY retouram asc limit 1 ";
+
+ $qry1 = "SELECT
+ *, tbl_benutzerfunktion.oe_kurzbz as oe_kurzbz, tbl_organisationseinheit.bezeichnung as oe_bezeichnung,
+ tbl_benutzerfunktion.semester, tbl_benutzerfunktion.bezeichnung as bf_bezeichnung
+ FROM
+ public.tbl_benutzerfunktion
+ JOIN public.tbl_funktion USING(funktion_kurzbz)
+ JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
+ WHERE
+ uid=($qry)
+ AND tbl_organisationseinheit.aktiv
+ AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
+ AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
+ limit 1
+ ";
+ if($res1=$this->db_query($qry1))
+ {
+ $rows =array();
+ if($rows = $this->db_fetch_object($res1))
+ $this->oe_kurzbz = $rows->oe_kurzbz;
+ $row->oe_kurzbz=$this->oe_kurzbz;
+ }
+ }
+ return $this->result=$row;
+ }
+ else
+ {
+ $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+
+ /**
+ * Laedt das Betriebsmittel mit der Bestell ID des Betriebsmittels $bestellung_id
+ * @param $bestellung_id Bestellnummer des zu ladenden Betriebsmittel
+ * @param $bestelldetail_id Bestellposition des zu ladenden Betriebsmittel
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load_bestellung_id($bestellung_id,$bestelldetail_id=null)
+ {
+ // Initialisieren
+ $this->result=array();
+ $this->errormsg = '';
+
+ $qry='SELECT * FROM wawi.tbl_betriebsmittel WHERE bestellung_id='.$this->db_add_param($bestellung_id, FHC_INTEGER);
+
+ if (!is_null($bestelldetail_id) && !empty($bestelldetail_id) && is_numeric($bestelldetail_id) )
+ $qry.=' AND bestelldetail_id='.$this->db_add_param($bestelldetail_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->betriebsmittel_id = $row->betriebsmittel_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $this->nummer = $row->nummer;
+ $this->inventarnummer = $row->inventarnummer;
+ $this->reservieren = $this->db_parse_bool($row->reservieren);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ $this->insertvon = $row->insertvon;
+ $this->insertamum = $row->insertamum;
+ $this->ext_id = $row->ext_id;
+ $this->beschreibung = $row->beschreibung;
+ $this->oe_kurzbz = $row->oe_kurzbz;
+ $this->hersteller = $row->hersteller;
+ $this->seriennummer = $row->seriennummer;
+ $this->bestellung_id = $row->bestellung_id;
+ $this->bestelldetail_id = $row->bestelldetail_id;
+ $this->afa = $row->afa;
+ $this->verwendung = $row->verwendung;
+ $this->anmerkung = $row->anmerkung;
+ $this->leasing_bis = $row->leasing_bis;
+ $this->inventuramum = $row->inventuramum;
+ $this->inventurvon = $row->inventurvon;
+ $this->anschaffungsdatum = $row->anschaffungsdatum;
+ $this->anschaffungswert = $row->anschaffungswert;
+
+ return $this->result=$row;
+ }
+ else
+ {
+ $this->errormsg = 'Betriebsmittel wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt INVENTARTABELLE
+ * @param order_by SQL Sortierung der Abfrage
+ * @param nummer ID eines Inventars
+ * @param ort_kurzbz ort_kurzbz eines Inventars
+ * @param betriebsmitteltyp ort_kurzbz eines Inventars
+ * @param betriebsmittelstatus_kurzbz STATUS eines Inventars
+ * @param nummer Datensatzid eines Inventars
+ * @param bestellnr WAWI Bestellnummer des Inventars
+ * @param bestellung_id WAWI Rechnungsnummer des Inventars
+ * @param afa AfA Datum
+ * @param Jahr_Monat der WAWI Bestellerfassung
+ * @param firma_id der WAWI Bestellerfassung
+
+ * @param inventur_jahr der Status Jahr - Status = inventur
+ * @param beschreibung der Inventarbeschreibung
+ * @param oe_kurzbz der Organisatzion
+
+ * @return Daten Objekt wenn ok, false im Fehlerfall
+ */
+ function betriebsmittel_inventar($order=null,$inventarnummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null,$anlage_jahr_monat=null)
+ {
+ // Init
+ $this->errormsg='';
+ $this->result=array();
+
+ $inventarnummer=trim($inventarnummer);
+ $ort_kurzbz=trim($ort_kurzbz);
+ $firma_id=trim($firma_id);
+
+ $qry='SELECT distinct on(tbl_betriebsmittel.betriebsmittel_id) tbl_betriebsmittel.inventarnummer ';
+ $qry.=',tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id ';
+ $qry.=',tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ';
+ $qry.=',tbl_betriebsmittel_betriebsmittelstatus.datum as betriebsmittelstatus_datum ';
+ $qry.=',tbl_betriebsmittelstatus.beschreibung as betriebsmittelstatus_beschreibung ';
+ $qry.=',tbl_betriebsmitteltyp.beschreibung as betriebsmitteltyp_beschreibung ';
+ $qry.=', CASE WHEN EXISTS(SELECT retouram FROM wawi.tbl_betriebsmittelperson WHERE betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id AND retouram is NULL) THEN \'t\' ELSE \'f\' END ausgegeben';
+ $qry.=', tbl_betriebsmittel.*, tbl_bestellung.titel as titel';
+ $qry.=', tbl_bestellung.bestell_nr as bestellnr, tbl_firma.name as firmenname, tbl_firma.firma_id as firma_id';
+
+ //AfA Datum ermitteln
+ $qry.=", trim(to_char(date_part('year', anschaffungsdatum) + tbl_betriebsmittel.afa , '9999')
+ || '-' ||
+ to_char(anschaffungsdatum , 'MM-DD')) as betriebsmittelstatus_datum_afa ";
+ $qry.=' FROM wawi.tbl_betriebsmittel';
+
+ $qry.=' LEFT JOIN wawi.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
+ $qry.=' LEFT JOIN wawi.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
+ $qry.=' LEFT JOIN wawi.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
+ $qry.=' LEFT JOIN public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
+ $qry.=' LEFT JOIN wawi.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
+ $qry.=' LEFT JOIN wawi.tbl_bestellung USING(bestellung_id)
+ LEFT JOIN public.tbl_firma ON(tbl_firma.firma_id=tbl_bestellung.firma_id )';
+
+ $qry.=" WHERE not tbl_betriebsmittel.betriebsmittel_id is null ";
+ $where=$this->betriebsmittel_inventar_get_where($inventarnummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer,$person_id,$betriebsmittel_id,$anlage_jahr_monat);
+ if ($where!='' && !$where)
+ return $this->result;
+
+ if($order=='')
+ $order = 'tbl_betriebsmittel.betriebsmittel_id, betriebsmittelstatus_datum DESC, betriebsmittelbetriebsmittelstatus_id DESC';
+ $order = ' ORDER BY '.$order;
+ // Select und Bedingung zusammen fuehren zu SQL Abfrage
+ $qry.=$where.$order; //.(!$where?' limit 100 ':' limit 300 ');
+ //echo $qry;
+ if(!$result=$this->db_query($qry))
+ {
+ $this->errormsg ='Probleme beim Lesen der Betriebsmittel';
+ return false;
+ }
+ while($row = $this->db_fetch_object($result))
+ $this->result[]=$row;
+
+ return $this->result;
+ }
+
+ /**
+ * Laedt INVENTARTABELLE BESTELLUNG_ID
+ * @param inventarnummer ID eines Inventars
+ * @param ort_kurzbz ort_kurzbz eines Inventars
+ * @param betriebsmitteltyp ort_kurzbz eines Inventars
+ * @param betriebsmittelstatus_kurzbz STATUS eines Inventars
+ * @param nummer Datensatzid eines Inventars
+ * @param bestellnr WAWI Bestellnummer des Inventars
+ * @param bestellung_id WAWI Rechnungsnummer des Inventars
+ * @param afa AfA Datum
+ * @param Jahr_Monat der WAWI Bestellerfassung
+ * @param firma_id der WAWI Bestellerfassung
+
+ * @param inventur_jahr der Status Jahr - Status = inventur
+ * @param beschreibung der Inventarbeschreibung
+ * @param oe_kurzbz der Organisatzion
+
+ * @return Daten Objekt wenn ok, false im Fehlerfall
+ */
+ function betriebsmittel_inventar_bestellung_id($order=null,$inventarnummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null)
+ {
+ // Init
+ $this->errormsg='';
+ $this->result=array();
+
+ $ort_kurzbz=trim($ort_kurzbz);
+ $qry='';
+ $qry.='select distinct(tbl_betriebsmittel.bestellung_id) ';
+ $qry.=' from wawi.tbl_betriebsmittel';
+
+ $qry.=' left outer join wawi.tbl_betriebsmitteltyp on (tbl_betriebsmitteltyp.betriebsmitteltyp=tbl_betriebsmittel.betriebsmitteltyp ) ';
+ $qry.=' left outer join wawi.tbl_betriebsmittel_betriebsmittelstatus on (tbl_betriebsmittel_betriebsmittelstatus.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
+ $qry.=' left outer join wawi.tbl_betriebsmittelstatus on (tbl_betriebsmittelstatus.betriebsmittelstatus_kurzbz=tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz ) ';
+ $qry.=' left outer join public.tbl_ort on (tbl_ort.ort_kurzbz=tbl_betriebsmittel.ort_kurzbz ) ';
+ $qry.=' left outer join wawi.tbl_betriebsmittelperson on (tbl_betriebsmittelperson.betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id ) ';
+ $qry.=' left outer join wawi.tbl_bestellung using(bestellung_id)';
+ $qry.=' left outer join public.tbl_firma using(firma_id)';
+
+ $qry.=" where not tbl_betriebsmittel.bestellung_id is null ";
+ $where='';
+ $where=$this->betriebsmittel_inventar_get_where($inventarnummer,$ort_kurzbz,$betriebsmittelstatus_kurzbz,$betriebsmitteltyp,$bestellung_id,$bestelldetail_id,$bestellnr,$hersteller,$afa,$jahr_monat,$firma_id,$inventur_jahr,$beschreibung,$oe_kurzbz,$seriennummer);
+
+ // Select und Bedingung zusammen fuehren zu SQL Abfrage
+ if (is_null($order) || empty($order) )
+ $order='tbl_betriebsmittel.bestellung_id';
+
+ $qry.=$where.(!is_null($order) && !empty($order)?' ORDER BY '. $order:'').(!$where?' limit 20 ':' limit 50 ');
+
+ if(!$result=$this->db_query($qry))
+ {
+ $this->errormsg ='Probleme beim lesen der Betriebsmittel';
+ return false;
+ }
+ while($row = $this->db_fetch_object($result))
+ {
+ $this->result[]=$row;
+ }
+
+ return $this->result;
+ }
+
+ /**
+ * Laedt Inventartabelle
+ *
+ * @param $inventarnummer
+ * @param $ort_kurzbz
+ * @param $betriebsmittelstatus_kurzbz
+ * @param $betriebsmitteltyp
+ * @param $bestellung_id
+ * @param $bestelldetail_id
+ * @param $bestellnr
+ * @param $hersteller
+ * @param $afa
+ * @param $jahr_monat
+ * @param $firma_id
+ * @param $inventur_jahr
+ * @param $beschreibung
+ * @param $oe_kurzbz
+ * @param $seriennummer
+ * @param $person_id
+ * @param $betriebsmittel_id
+ * @return unknown
+ */
+ public function betriebsmittel_inventar_get_where($inventarnummer=null,$ort_kurzbz=null,$betriebsmittelstatus_kurzbz=null,$betriebsmitteltyp=null,$bestellung_id=null,$bestelldetail_id=null,$bestellnr=null,$hersteller=null,$afa=null,$jahr_monat=null,$firma_id=null,$inventur_jahr=null,$beschreibung=null,$oe_kurzbz=null,$seriennummer=null,$person_id=null,$betriebsmittel_id=null,$anlage_jahr_monat=null)
+ {
+ $where='';
+ // Inventarnummer oder Betriebsmittelnummer
+ if (!is_null($inventarnummer) && !empty($inventarnummer) )
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' ','`'),'%',trim($inventarnummer)));
+ $where.=" AND UPPER(trim(tbl_betriebsmittel.inventarnummer)) like '".$this->db_escape($matchcode)."' " ;
+ }
+ if (!is_null($betriebsmittel_id) && !empty($betriebsmittel_id) )
+ $where.=" AND tbl_betriebsmittel.betriebsmittel_id = ".$this->db_add_param(trim($betriebsmittel_id));
+
+ // Inventarnummer oder Betriebsmittelnummer
+ if (!is_null($seriennummer) && !empty($seriennummer) )
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($seriennummer)));
+ $where.=" AND UPPER(trim(tbl_betriebsmittel.seriennummer)) like '%".$this->db_escape($matchcode)."%' ";
+ }
+
+ if (!is_null($hersteller) && $hersteller!='' )
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($hersteller)));
+ $where.=" AND UPPER(trim(tbl_betriebsmittel.hersteller)) like '%".$this->db_escape($matchcode)."%' ";
+ }
+
+ if (!is_null($beschreibung) && $beschreibung!='' )
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($beschreibung)));
+ $where.=" AND ( UPPER(trim(tbl_betriebsmittel.beschreibung)) like '%".$this->db_escape($matchcode)."%' ";
+ $where.=" or UPPER(trim(tbl_betriebsmittel.verwendung)) like '%".$this->db_escape($matchcode)."%' ";
+ if ( $bestellnr || $firma_id || $beschreibung )
+ $where.=" or UPPER(trim(tbl_bestellung.titel)) like '%". $this->db_escape($matchcode) ."%' " ;
+ $where.=" or UPPER(trim(tbl_betriebsmittel.anmerkung)) like '%".$this->db_escape($matchcode)."%' ) ";
+ }
+
+ if (!is_null($bestellung_id) && $bestellung_id!='' && is_numeric($bestellung_id))
+ $where.=" AND tbl_betriebsmittel.bestellung_id=".$this->db_add_param(trim($bestellung_id));
+ elseif (!is_null($bestellung_id) && $bestellung_id!='')
+ $where.=" AND UPPER(trim(to_char(tbl_betriebsmittel.bestellung_id,'999999999'))) like '".$this->db_escape(mb_strtoupper(str_replace(array('*',';',' ',"'",'"'),'%',trim($bestellung_id))))."%' " ;
+
+ if (!is_null($bestelldetail_id) && $bestelldetail_id!='' && is_numeric($bestelldetail_id))
+ $where.=" AND tbl_betriebsmittel.bestelldetail_id=".$this->db_add_param(trim($bestelldetail_id));
+ elseif (!is_null($bestelldetail_id) && $bestelldetail_id!='')
+ $where.=" AND UPPER(trim(to_char(tbl_betriebsmittel.bestelldetail_id,'999999999'))) like '".$this->db_escape(mb_strtoupper(str_replace(array('*',';',' ',"'",'"'),'%',trim($bestelldetail_id)))) ."%' " ;
+
+ if (!is_null($person_id) && $person_id!='' )
+ {
+ $pWhere='';
+ if (is_numeric($person_id) )
+ $pWhere.=" AND ( tbl_betriebsmittelperson.person_id=".$this->db_add_param(trim($person_id));
+ else
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($person_id)));
+ $pWhere.=" AND ( tbl_betriebsmittelperson.person_id in (select person_id from campus.vw_benutzer where aktiv ";
+ $pWhere.=" and (UPPER(trim(uid)) like '%".$this->db_escape($matchcode)."%' ";
+ $pWhere.=" or UPPER(trim(to_char(person_id,'999999999'))) like '%".$this->db_escape($matchcode)."%' ";
+ $pWhere.=" or UPPER(trim(nachname)) like '%".$this->db_escape($matchcode)."%' ";
+ $pWhere.=" or UPPER(trim(vorname)) like '%".$this->db_escape($matchcode)."%' ";
+ $pWhere.=" or UPPER(trim(nachname || ' ' || vorname)) like '%".$this->db_escape($matchcode)."%' ";
+ $pWhere.=" or UPPER(trim(vorname || ' ' || nachname)) like '%".$this->db_escape($matchcode)."%' ) )";
+ }
+ $pWhere.=" AND retouram is null";
+ $where.=$pWhere;
+
+ if (!is_null($oe_kurzbz) && $oe_kurzbz!='')
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($oe_kurzbz)));
+ $where.=" AND ( upper(trim(tbl_betriebsmittel.oe_kurzbz)) like '%". $this->db_escape($matchcode)."%' " ;
+ $where.=" or tbl_betriebsmittelperson.person_id in ( SELECT distinct vw_benutzer.person_id
+ FROM public.tbl_benutzerfunktion JOIN campus.vw_benutzer USING(uid)
+ where not funktion_kurzbz=null
+ and oe_kurzbz IN(
+ WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ (
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ WHERE upper(trim(oe_kurzbz)) like '".$this->db_escape($matchcode)."'
+ UNION ALL
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ WHERE o.oe_parent_kurzbz=oes.oe_kurzbz
+ )
+ SELECT oe_kurzbz
+ FROM oes
+ GROUP BY oe_kurzbz ))
+ )";
+ }
+ $where.=" )";
+ }
+ // Organisation
+ else if (!is_null($oe_kurzbz) && $oe_kurzbz!='')
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($oe_kurzbz)));
+ $where.=" AND ( upper(trim(tbl_betriebsmittel.oe_kurzbz)) like '".$this->db_escape($matchcode)."' " ;
+ $where.=" or tbl_betriebsmittelperson.person_id in ( SELECT distinct vw_benutzer.person_id
+ FROM public.tbl_benutzerfunktion JOIN campus.vw_benutzer USING(uid)
+ where not funktion_kurzbz=null
+ and oe_kurzbz IN(
+ WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ (
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ WHERE upper(trim(oe_kurzbz)) like '".$this->db_escape($matchcode)."'
+ UNION ALL
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ WHERE o.oe_parent_kurzbz=oes.oe_kurzbz
+ )
+ SELECT oe_kurzbz
+ FROM oes
+ GROUP BY oe_kurzbz ))
+ )";
+ }
+
+ // Ort
+ if (!is_null($ort_kurzbz) && $ort_kurzbz!='')
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($ort_kurzbz)));
+ $where.=" AND ( upper(trim(tbl_betriebsmittel.ort_kurzbz)) like '%".$this->db_escape($matchcode)."%' " ;
+ $where.=" OR upper(trim(tbl_ort.bezeichnung)) like '%".$this->db_escape($matchcode)."%' )" ;
+ }
+
+ if (!is_null($betriebsmitteltyp) && !empty($betriebsmitteltyp) )
+ $where.=" AND upper(trim(tbl_betriebsmittel.betriebsmitteltyp)) = ".$this->db_add_param(mb_strtoupper(trim($betriebsmitteltyp)));
+
+ // Datum Check
+ if (!is_null($afa) && $afa!='')
+ {
+ $afa=mb_strtoupper(trim(str_replace(array('-',',',';','.','/','*','%',"'",'"'),'',trim($afa))));
+ if (!empty($afa) && is_numeric($afa) && strlen($afa)>4)
+ $where.=" and not afa is null and trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa , '9999') || to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'MM')) = ".$this->db_add_param(substr($afa,0,6));
+ else if (!empty($afa) && is_numeric($afa) && strlen($afa)>2)
+ $where.=" and not afa is null and trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa ,'9999')) = ".$this->db_add_param(substr($afa,0,4));
+ else
+ $where.=" and not afa is null and trim(to_char(date_part('year', tbl_betriebsmittel_betriebsmittelstatus.datum) + tbl_betriebsmittel.afa ,'9999')) <= ".$this->db_add_param(Date('Y'));
+ if (is_null($betriebsmittelstatus_kurzbz) || $betriebsmittelstatus_kurzbz=='' )
+ $betriebsmittelstatus_kurzbz=mb_strtoupper('vorhanden');
+ $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus ".($betriebsmittelstatus_kurzbz?" where not betriebsmittelbetriebsmittelstatus_id is null and upper(tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz) = ".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id ) ";
+
+ }
+ elseif (!is_null($inventur_jahr) && $inventur_jahr!='')
+ {
+ $inventur_jahr=mb_strtoupper(trim(str_replace(array('.','/','*','%',"'",'"'),'',trim($inventur_jahr))));
+ if ($inventur_jahr>0)
+ {
+ $where.=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY') = ".$this->db_add_param($inventur_jahr);
+ $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null
+ and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY')='".$inventur_jahr."' ".($betriebsmittelstatus_kurzbz?" and upper(trim(betriebsmittelstatus_kurzbz))=".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id) ";
+ }
+ else
+ {
+ $inventur_jahr=($inventur_jahr * -1);
+ $where.=" and not tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null
+ and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY')=".$this->db_add_param($inventur_jahr)." ".($betriebsmittelstatus_kurzbz?" and upper(trim(betriebsmittelstatus_kurzbz))=".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))):'')." group by betriebsmittel_id) ";
+ $betriebsmittelstatus_kurzbz='vorhanden';
+ }
+ }
+ elseif (!is_null($jahr_monat) && $jahr_monat!='')
+ {
+ $jahr_monat=mb_strtoupper(trim(str_replace(array('-','.','/','*','%',"'",'"'),'',trim($jahr_monat))));
+ $jm='';
+ if (!empty($jahr_monat) && is_numeric($jahr_monat) && strlen($jahr_monat)>6)
+ $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYYMMDD') = ".$this->db_add_param($jahr_monat)." ";
+ elseif (!empty($jahr_monat) && is_numeric($jahr_monat) && strlen($jahr_monat)>4)
+ $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYYMM') = ".$this->db_add_param($jahr_monat)." ";
+ elseif (!is_null($jahr_monat) && !empty($jahr_monat))
+ $jm=" and to_char(tbl_betriebsmittel_betriebsmittelstatus.datum, 'YYYY') = ".$this->db_add_param($jahr_monat)." ";
+ $where.=$jm;
+ $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null ". $jm ." group by betriebsmittel_id) ";
+ }
+ elseif (!is_null($anlage_jahr_monat) && $anlage_jahr_monat!='')
+ {
+ $anlage_jahr_monat=mb_strtoupper(trim(str_replace(array('-','.','/','*','%',"'",'"'),'',trim($anlage_jahr_monat))));
+ $jm='';
+ if (!empty($anlage_jahr_monat) && is_numeric($anlage_jahr_monat) && strlen($anlage_jahr_monat)>6)
+ $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYYMMDD') = ".$this->db_add_param($anlage_jahr_monat)." ";
+ elseif (!empty($anlage_jahr_monat) && is_numeric($anlage_jahr_monat) && strlen($anlage_jahr_monat)>4)
+ $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYYMM') = ".$this->db_add_param($anlage_jahr_monat)." ";
+ elseif (!is_null($anlage_jahr_monat) && !empty($anlage_jahr_monat))
+ $jm=" and to_char(tbl_betriebsmittel.insertamum, 'YYYY') = ".$this->db_add_param($anlage_jahr_monat)." ";
+ $where.=$jm;
+ $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null ". $jm ." group by betriebsmittel_id) ";
+ }
+ else if (!is_null($betriebsmittelstatus_kurzbz) && $betriebsmittelstatus_kurzbz!='')
+ $where.=" and tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelbetriebsmittelstatus_id in ( select max(betriebsmittelbetriebsmittelstatus_id) from wawi.tbl_betriebsmittel_betriebsmittelstatus where not betriebsmittelbetriebsmittelstatus_id is null group by betriebsmittel_id) ";
+
+ // Bestellnummer
+ if (!is_null($bestellnr) && !empty($bestellnr) )
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($bestellnr)));
+ $where.=" AND UPPER(trim(tbl_bestellung.bestell_nr)) like '%".$this->db_escape($matchcode)."%' " ;
+ }
+ // Lieferant
+ if (!is_null($firma_id) && $firma_id!='' && is_numeric($firma_id))
+ {
+ $where.=" AND tbl_bestellung.firma_id=".$this->db_add_param(trim($firma_id));
+ }
+ elseif (!is_null($firma_id) && $firma_id!='' )
+ {
+ $matchcode=mb_strtoupper(str_replace(array('*','%',',',';',"'",'"',' '),'%',trim($firma_id)));
+ $where.=" AND UPPER(trim(tbl_firma.name)) like '%".$this->db_escape($matchcode)."%' " ;
+ }
+
+ if (!is_null($betriebsmittelstatus_kurzbz) && !empty($betriebsmittelstatus_kurzbz) )
+ $where.=" and upper(trim(tbl_betriebsmittel_betriebsmittelstatus.betriebsmittelstatus_kurzbz)) = ".$this->db_add_param(mb_strtoupper(trim($betriebsmittelstatus_kurzbz))) ;
+
+ return $where;
+ }
+
+ /**
+ * Es sind mehrere Kartenlesegeraete im Umlauf
+ * Manche Geraete liefern die Kartennummer hexcodiert zurueck.
+ * Diese muessen erst in das richtige Format transformiert werden
+ * zusaetzlich werden die fuehrenden nullen entfernt
+ *
+ * @param $kartennummer
+ * @return $kartennummer
+ */
+ function transform_kartennummer($kartennummer)
+ {
+ $kartennummer = trim($kartennummer);
+ //Kartennummern die im Hex-Format sind werden umgewandelt
+ if (!is_numeric($kartennummer))
+ {
+ $kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2);
+ $kartennummer=hexdec( $kartennummer);
+ }
+
+ //Fuehrende nullen entfernen
+ $kartennummer = preg_replace("/^0*/", "", $kartennummer);
+ return $kartennummer;
+ }
+
+ /**
+ * Überprüft ob die Zutrittskarte zur übergerbenen uid schon ausgedruckt worden ist
+ * @param type $uid
+ */
+ public function zutrittskartePrinted($uid)
+ {
+ $qry ="SELECT * FROM wawi.tbl_betriebsmittelperson
+ JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
+ WHERE uid = ".$this->db_add_param($uid, FHC_STRING)."
+ and betriebsmitteltyp = 'Zutrittskarte'
+ AND nummer2 is not null";
+
+ if($result = $this->db_query($qry))
+ {
+ if($this->db_num_rows($result) > 0)
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ $this->insertamum = $row->insertamum;
+ }
+ return true;
+ }
+ else
+ return false;
+ }
+ }
+
+ /**
+ * Überprüft ob die Zutrittskarte schon ausgegeben worden ist -> ausgegeben am == null und retouram != null
+ * @param $uid
+ * @return boolean; (letztes) Ausgabedatum wenn ok
+ */
+ public function zutrittskarteAusgegeben($uid)
+ {
+ $this->result='';
+ $this->errormsg = '';
+
+ $qry ="SELECT * FROM wawi.tbl_betriebsmittelperson WHERE uid =".$this->db_add_param($uid, FHC_STRING)."
+ AND betriebsmittel_id IN(
+ SELECT betriebsmittel_id
+ FROM wawi.tbl_betriebsmittelperson
+ JOIN wawi.tbl_betriebsmittel USING (betriebsmittel_id) where uid=".$this->db_add_param($uid,FHC_STRING)."
+ AND betriebsmitteltyp='Zutrittskarte' and nummer2 is not null)
+ AND ausgegebenam is not null AND retouram is null";
+
+ if($result = $this->db_query($qry))
+ {
+ $ausgegeben_am = '';
+ while($row = $this->db_fetch_object($result))
+ {
+ if(empty($ausgegeben_am) || (!empty($ausgegeben_am) && $ausgegeben_am < $row->ausgegebenam))
+ $ausgegeben_am = $row->ausgegebenam;
+ }
+ //return latest issue date
+ $this->result = $ausgegeben_am;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Liefert die Betriebsmittelzuordnungen zu Stundenplaneintraegen
+ * @param $stundenplan_ids Array mit StundenplanIDs
+ * @return boolean
+ */
+ public function getBetriebsmittelStundenplan($stundenplan_ids)
+ {
+ if(count($stundenplan_ids)>0)
+ {
+ $qry = "SELECT
+ tbl_stundenplan_betriebsmittel.stundenplan_betriebsmittel_id, tbl_stundenplan_betriebsmittel.anmerkung,
+ tbl_betriebsmittel.betriebsmittel_id, tbl_betriebsmittel.beschreibung, tbl_stundenplandev.stunde
+ FROM
+ lehre.tbl_stundenplan_betriebsmittel
+ JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
+ JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
+ WHERE
+ tbl_stundenplan_betriebsmittel.stundenplandev_id in( ".$this->db_implode4SQL($stundenplan_ids).")";
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new stdclass();
+
+ $obj->betriebsmittel_id = $row->betriebsmittel_id;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->stundenplan_betriebsmittel_id=$row->stundenplan_betriebsmittel_id;
+ $obj->anmerkung = $row->anmerkung;
+ $obj->stunde = $row->stunde;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ return true;
+ }
+
+ /**
+ * Liefert die Betriebsmittel die zum angegebenen Datum und den Stunden frei und verplanbar ist
+ * @param $datum Datum
+ * @param $stunden array mit stunden
+ * @return boolean
+ */
+ public function getVerplanbar($datum, $stunden)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ wawi.tbl_betriebsmittel
+ WHERE
+ verplanen=true
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_stundenplan_betriebsmittel
+ JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
+ WHERE
+ betriebsmittel_id=tbl_betriebsmittel.betriebsmittel_id
+ AND tbl_stundenplandev.datum=".$this->db_add_param($datum)."
+ AND tbl_stundenplandev.stunde in(".$this->db_implode4SQL($stunden)."))";
+
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $bm = new betriebsmittel();
+
+ $bm->betriebsmittel_id = $row->betriebsmittel_id;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->betriebsmitteltyp = $row->betriebsmitteltyp;
+ $bm->nummer = $row->nummer;
+ $bm->inventarnummer = $row->inventarnummer;
+ $bm->reservieren = $row->reservieren;
+ $bm->ort_kurzbz = $row->ort_kurzbz;
+ $bm->updateamum = $row->updateamum;
+ $bm->updatevon = $row->updatevon;
+ $bm->insertamum = $row->insertamum;
+ $bm->insertvon = $row->insertvon;
+ $bm->beschreibung = $row->beschreibung;
+ $bm->oe_kurzbz = $row->oe_kurzbz;
+ $bm->hersteller = $row->hersteller;
+ $bm->seriennummer = $row->seriennummer;
+ $bm->bestellung_id = $row->bestellung_id;
+ $bm->bestelldetail_id = $row->bestelldetail_id;
+ $bm->afa = $row->afa;
+ $bm->verwendung = $row->verwendung;
+ $bm->anmerkung = $row->anmerkung;
+ $bm->leasing_bis = $row->leasing_bis;
+ $bm->inventuramum = $row->inventuramum;
+ $bm->inventurvon = $row->inventurvon;
+ $bm->nummer2 = $row->nummer2;
+ $bm->anschaffungsdatum = $row->anschaffungsdatum;
+ $bm->anschaffungswert = $row->anschaffungswert;
+
+ $this->result[] = $bm;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Loescht eine Zuordnung
+ * @param $stundenplan_betriebsmittel_id
+ * @return boolean
+ */
+ function deleteStundenplanBetriebsmittel($stundenplan_betriebsmittel_id)
+ {
+ $qry = "DELETE FROM lehre.tbl_stundenplan_betriebsmittel WHERE stundenplan_betriebsmittel_id=".$this->db_add_param($stundenplan_betriebsmittel_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg ='Fehler beim Loeschen';
+ return false;
+ }
+ }
+
+ /**
+ * Speichert die Zuordnung von Betriebsmitteln zu Stundenplaneintraegen
+ * @return boolean
+ */
+ function saveStundenplanBetriebsmittel()
+ {
+ if($this->new)
+ {
+ $qry = "INSERT INTO lehre.tbl_stundenplan_betriebsmittel(betriebsmittel_id, stundenplandev_id, anmerkung, insertamum, insertvon) VALUES(".
+ $this->db_add_param($this->betriebsmittel_id).','.
+ $this->db_add_param($this->stundenplandev_id).','.
+ $this->db_add_param($this->anmerkung).','.
+ $this->db_add_param($this->insertamum).','.
+ $this->db_add_param($this->insertvon).');';
+ }
+ else
+ {
+ $qry = "UPDATE lehre.tbl_stundenplan_betriebsmittel SET
+ anmerkung=".$this->db_add_param($this->anmerkung)."
+ WHERE stundenplan_betriebsmittel_id=".$this->db_add_param($this->stundenplan_betriebsmittel_id, FHC_INTEGER);
+ }
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten:'.$qry.$this->db_last_error();;
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Betriebsmittel-Stundenplan Zuordnung
+ * @param $stundenplan_betriebsmittel_id
+ * @return boolean
+ */
+ function loadBetriebsmittelStundenplan($stundenplan_betriebsmittel_id)
+ {
+ $qry = "SELECT
+ tbl_stundenplan_betriebsmittel.*,
+ tbl_betriebsmittel.beschreibung as bm_beschreibung
+ FROM
+ lehre.tbl_stundenplan_betriebsmittel
+ JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
+ WHERE stundenplan_betriebsmittel_id=".$this->db_add_param($stundenplan_betriebsmittel_id, FHC_INTEGER);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ $this->stundenplan_betriebsmittel_id = $row->stundenplan_betriebsmittel_id;
+ $this->betriebsmittel_id = $row->betriebsmittel_id;
+ $this->stundenplandev_id = $row->stundenplandev_id;
+ $this->anmerkung = $row->anmerkung;
+ $this->insertamum = $row->insertamum;
+ $this->insertvon = $row->insertvon;
+ $this->beschreibung = $row->bm_beschreibung;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Eintrag wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+}
+?>
diff --git a/include/content.class.php b/include/content.class.php
index 58008ec3d..f004bfb03 100644
--- a/include/content.class.php
+++ b/include/content.class.php
@@ -1279,7 +1279,7 @@ class content extends basis_db
public function search($searchItems, $limit=null)
{
$qry = "SELECT
- distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, 1 AS sort
+ distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, template_kurzbz, 1 AS sort
FROM
campus.tbl_contentsprache
JOIN campus.tbl_content USING(content_id)
@@ -1298,7 +1298,7 @@ class content extends basis_db
";
}
$qry .= " UNION SELECT
- distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, 2 AS sort
+ distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, template_kurzbz, 2 AS sort
FROM
campus.tbl_contentsprache
JOIN campus.tbl_content USING(content_id)
@@ -1333,6 +1333,7 @@ class content extends basis_db
$obj->titel = $row->titel;
$obj->sprache = $row->sprache;
$obj->version = $row->version;
+ $obj->template_kurzbz = $row->template_kurzbz;
$this->result[] = $obj;
}
diff --git a/include/dms.class.php b/include/dms.class.php
index 76a837517..783f8f459 100644
--- a/include/dms.class.php
+++ b/include/dms.class.php
@@ -46,7 +46,10 @@ class dms extends basis_db
public $updateamum;
public $updatevon;
public $kategorie_kurzbz_old;
-
+ public $cis_suche = false;
+ public $schlagworte;
+ public $kategorie_oe_kurzbz;
+ public $berechtigung_kurzbz;
public $bezeichnung;
/**
@@ -92,6 +95,8 @@ class dms extends basis_db
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
+ $this->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $this->schlagworte = $row->schlagworte;
return true;
}
@@ -143,7 +148,7 @@ class dms extends basis_db
$qry.="INSERT INTO campus.tbl_dms_version(dms_id, version,
filename, mimetype, name, beschreibung, letzterzugriff, insertamum, insertvon,
- updateamum, updatevon) VALUES(".
+ updateamum, updatevon, cis_suche, schlagworte) VALUES(".
$dms_id.','.
$this->db_add_param($this->version, FHC_INTEGER).','.
$this->db_add_param($this->filename).','.
@@ -154,7 +159,9 @@ class dms extends basis_db
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).','.
$this->db_add_param($this->updateamum).','.
- $this->db_add_param($this->updatevon).');';
+ $this->db_add_param($this->updatevon).','.
+ $this->db_add_param($this->cis_suche, FHC_BOOLEAN).','.
+ $this->db_add_param($this->schlagworte).');';
}
else
{
@@ -170,7 +177,9 @@ class dms extends basis_db
" beschreibung=".$this->db_add_param($this->beschreibung).",".
" letzterzugriff=".$this->db_add_param($this->letzterzugriff).",".
" updateamum=".$this->db_add_param($this->updateamum).",".
- " updatevon=".$this->db_add_param($this->updatevon).
+ " updatevon=".$this->db_add_param($this->updatevon).",".
+ " cis_suche=".$this->db_add_param($this->cis_suche, FHC_BOOLEAN).",".
+ " schlagworte=".$this->db_add_param($this->schlagworte).
" WHERE dms_id=".$this->db_add_param($this->dms_id,FHC_INTEGER)." AND version=".$this->db_add_param($this->version, FHC_INTEGER).";";
}
@@ -214,96 +223,98 @@ class dms extends basis_db
}
}
- /**
- * Löscht einen DMS Eintrag mit übergebener ID und Version
- * Wird die letzte Version eines Eintrages gelöscht, wird automatisch der Eintrag mitgelöscht
- * @param $dms_id
- * @param $version
- */
- public function deleteVersion($dms_id, $version)
- {
- $dms = new dms();
- $dms->load($dms_id, $version);
-
- $qry ="DELETE FROM campus.tbl_dms_version WHERE dms_id = ".$this->db_add_param($dms_id, FHC_INTEGER)." and version =".$this->db_add_param($version, FHC_INTEGER).';';
-
- if($this->db_query($qry))
- {
- $qry_anzahl ="SELECT 1 FROM campus.tbl_dms_version WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER).';';
- if($result = $this->db_query($qry_anzahl))
- {
- // File der Version im Filesystem löschen
- if(is_file(DMS_PATH.$dms->filename) && !unlink(DMS_PATH.$dms->filename))
- {
- $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
- return false;
- }
-
- // Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag
- if($this->db_num_rows($result) == 0 )
- {
- if(!$this->deleteDms($dms_id))
- {
- $this->errormsg = "Fehler beim Löschen aufgetreten";
- return false;
- }
- else
- return true;
- }
- }
- }
- else
- {
- $this->errormsg="Fehler beim Löschen der Version aufgetreten";
- return false;
- }
- return true;
- }
+ /**
+ * Löscht einen DMS Eintrag mit übergebener ID und Version
+ * Wird die letzte Version eines Eintrages gelöscht, wird automatisch der Eintrag mitgelöscht
+ *
+ * @param $dms_id
+ * @param $version
+ */
+ public function deleteVersion($dms_id, $version)
+ {
+ $dms = new dms();
+ $dms->load($dms_id, $version);
+
+ $qry = "DELETE FROM campus.tbl_dms_version WHERE dms_id = " . $this->db_add_param($dms_id, FHC_INTEGER) . " and version =" . $this->db_add_param($version, FHC_INTEGER) . ';';
+
+ if ($this->db_query($qry))
+ {
+ $qry_anzahl = "SELECT 1 FROM campus.tbl_dms_version WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . ';';
+ if ($result = $this->db_query($qry_anzahl))
+ {
+ // File der Version im Filesystem löschen
+ if (is_file(DMS_PATH . $dms->filename) && ! unlink(DMS_PATH . $dms->filename))
+ {
+ $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
+ return false;
+ }
+
+ // Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag
+ if ($this->db_num_rows($result) == 0)
+ {
+ if (! $this->deleteDms($dms_id))
+ {
+ $this->errormsg = "Fehler beim Löschen aufgetreten";
+ return false;
+ }
+ else
+ return true;
+ }
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler beim Löschen der Version aufgetreten";
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Löscht einen gesamten DMS Eintrag inklusive aller Versionen und Projekteinträge
+ *
+ * @param $dms_id
+ */
+ public function deleteDms($dms_id)
+ {
+ $this->load($dms_id);
+ $this->getAllVersions($dms_id);
+ $error = false;
+
+ // lösche Versionen
+ $qry = "BEGIN;DELETE FROM campus.tbl_dms_version WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . "; ";
+ $qry .= "DELETE FROM fue.tbl_projekt_dokument WHERE dms_id=" . $this->db_add_param($dms_id, FHC_INTEGER) . "; ";
+ $qry .= "DELETE FROM campus.tbl_dms WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . ";";
+ if ($this->db_query($qry))
+ {
+ $this->db_query('COMMIT;');
+
+ // Alle Versionen der Datei im Filesystem löschen
+ foreach ($this->result as $obj)
+ {
+ if (is_file(DMS_PATH . $obj->filename) && ! unlink(DMS_PATH . $obj->filename))
+ $error = true;
+ }
+
+ if ($error)
+ {
+ $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ else
+ {
+ $this->db_query('ROLLBACK;');
+ $this->errormsg = "Fehler beim Löschen des Eintrages aufgetreten";
+ return false;
+ }
+ }
- /**
- * Löscht einen gesamten DMS Eintrag inklusive aller Versionen und Projekteinträge
- * @param $dms_id
- */
- public function deleteDms($dms_id)
- {
- $this->load($dms_id);
- $this->getAllVersions($dms_id);
- $error = false;
-
- // lösche Versionen
- $qry ="BEGIN;DELETE FROM campus.tbl_dms_version WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER)."; ";
- $qry.="DELETE FROM fue.tbl_projekt_dokument WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."; ";
- $qry.="DELETE FROM campus.tbl_dms WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER).";";
- if($this->db_query($qry))
- {
- $this->db_query('COMMIT;');
-
- // Alle Versionen der Datei im Filesystem löschen
- foreach($this->result as $obj)
- {
- if(is_file(DMS_PATH.$obj->filename) && !unlink(DMS_PATH.$obj->filename))
- $error = true;
- }
-
- if($error)
- {
- $this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
- return false;
- }
- else
- {
- return true;
- }
- }
- else
- {
- $this->db_query('ROLLBACK;');
- $this->errormsg = "Fehler beim Löschen des Eintrages aufgetreten";
- return false;
- }
- }
-
- /**
+ /**
* Setzt die Zeit des letzten Zugriffs auf die Datei
*
* @param $dms_id
@@ -339,16 +350,16 @@ class dms extends basis_db
if($this->db_num_rows($result) == 0 )
{
$qry ="BEGIN; DELETE FROM campus.tbl_dms_kategorie_gruppe where kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).";
- DELETE FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).';';
+ DELETE FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).';';
if($this->db_query($qry))
{
- $this->db_query('COMMIT;');
+ $this->db_query('COMMIT;');
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen der Daten'."\n";
- $this->db_query('ROLLBACK;');
+ $this->db_query('ROLLBACK;');
return false;
}
}
@@ -489,11 +500,13 @@ class dms extends basis_db
if($new)
{
//Neuen Datensatz einfuegen
- $qry='INSERT INTO campus.tbl_dms_kategorie (kategorie_kurzbz, bezeichnung, beschreibung, parent_kategorie_kurzbz) VALUES('.
- $this->db_add_param($this->kategorie_kurzbz).', '.
- $this->db_add_param($this->bezeichnung).', '.
- $this->db_add_param($this->beschreibung).', '.
- $this->db_add_param($this->parent_kategorie_kurzbz).');';
+ $qry='INSERT INTO campus.tbl_dms_kategorie (kategorie_kurzbz, bezeichnung, beschreibung, parent_kategorie_kurzbz, oe_kurzbz, berechtigung_kurzbz) VALUES('.
+ $this->db_add_param($this->kategorie_kurzbz).', '.
+ $this->db_add_param($this->bezeichnung).', '.
+ $this->db_add_param($this->beschreibung).', '.
+ $this->db_add_param($this->parent_kategorie_kurzbz).', '.
+ $this->db_add_param($this->kategorie_oe_kurzbz).', '.
+ $this->db_add_param($this->berechtigung_kurzbz).');';
}
else
{
@@ -503,7 +516,9 @@ class dms extends basis_db
' kategorie_kurzbz='.$this->db_add_param($this->kategorie_kurzbz).', '.
' bezeichnung='.$this->db_add_param($this->bezeichnung).', '.
' beschreibung='.$this->db_add_param($this->beschreibung).', '.
- ' parent_kategorie_kurzbz='.$this->db_add_param($this->parent_kategorie_kurzbz).' '.
+ ' parent_kategorie_kurzbz='.$this->db_add_param($this->parent_kategorie_kurzbz).', '.
+ ' oe_kurzbz='.$this->db_add_param($this->kategorie_oe_kurzbz).', '.
+ ' berechtigung_kurzbz='.$this->db_add_param($this->berechtigung_kurzbz).' '.
'WHERE kategorie_kurzbz='.$this->db_add_param($this->kategorie_kurzbz_old).';';
}
@@ -537,6 +552,8 @@ class dms extends basis_db
$this->beschreibung = $row->beschreibung;
$this->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz;
$this->kategorie_kurzbz_old = $row->kategorie_kurzbz;
+ $this->kategorie_oe_kurzbz = $row->oe_kurzbz;
+ $this->berechtigung_kurzbz = $row->berechtigung_kurzbz;
}
return true;
}
@@ -567,6 +584,8 @@ class dms extends basis_db
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
$obj->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz;
+ $obj->kategorie_oe_kurzbz = $row->oe_kurzbz;
+ $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$this->result[]= $obj;
}
@@ -577,8 +596,7 @@ class dms extends basis_db
/**
* Laedt die Kategorien
- * @param $parent_kategorie_kurzbz Wenn die Parent Kategorie übergeben wird, werden nur die direkten
- * Unterkategorien geladen
+ * @param string $parent_kategorie_kurzbz Wenn die Parent Kategorie übergeben wird, werden nur die direkten Unterkategorien geladen
* @return boolean
*/
public function getKategorie($parent_kategorie_kurzbz='')
@@ -600,6 +618,8 @@ class dms extends basis_db
$obj->kategorie_kurzbz = $row->kategorie_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
+ $obj->kategorie_oe_kurzbz = $row->oe_kurzbz;
+ $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$this->result[] = $obj;
}
@@ -663,6 +683,8 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -675,10 +697,35 @@ class dms extends basis_db
}
/**
- * Sucht nach Dokumenten
+ * Zählt die Anzahl an Dokumenten in einer Kategorie
*
* @param $kategorie_kurzbz
*/
+ public function countDocumentsKategorie($kategorie_kurzbz)
+ {
+ $qry = "SELECT count(*) as anzahl FROM campus.tbl_dms WHERE kategorie_kurzbz=".$this->db_add_param($kategorie_kurzbz).";";
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ return $row->anzahl;
+ }
+ else
+ return false;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Sucht nach Dokumenten
+ *
+ * @param string $suchstring String nach dem gesucht werden soll
+ */
public function search($suchstring, $dpp=NULL, $page=NULL)
{
if (!is_null($dpp) && !is_null($page))
@@ -695,12 +742,23 @@ class dms extends basis_db
}
}
- $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
- WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
- OR lower(beschreibung) like lower('%".$this->db_escape($suchstring)."%')
+ $qry = "SELECT tbl_dms.*, tbl_dms_version.*, tbl_dms_kategorie.berechtigung_kurzbz FROM campus.tbl_dms
+ JOIN campus.tbl_dms_version USING(dms_id)
+ JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)";
+ // Wenn erstes Zeichen # ist, dieses wegkürzen und checken ob der Rest numerisch ist. Dann nach eindeutiger ID suchen
+ if (substr($suchstring, 0, 1) == '#')
+ {
+ $suchstring = substr($suchstring, 1);
+ if (is_numeric($suchstring))
+ $qry .= " WHERE tbl_dms.dms_id = ".$this->db_add_param($suchstring, FHC_INTEGER);
+ }
+ else
+ {
+ $qry .= " WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
+ OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%')
";
+ }
-
if (is_numeric($suchstring))
$qry.= " OR dms_id = ".$this->db_escape($suchstring)."";
@@ -728,6 +786,9 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
+ $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$this->result[] = $obj;
}
@@ -740,19 +801,19 @@ class dms extends basis_db
}
/**
- * Sucht nach Dokumenten (nur Spalte Beschreibung) mit der aktuellsten Version.
+ * Sucht nach Dokumenten (Spalte schlagworte) mit der aktuellsten Version, bei denen cis_suche true ist
* Optional kann die Anzahl an Suchergebnissen übergeben werden.
*
- * @param suchstring
- * @param limit (optional)
+ * @param string $suchstring
+ * @param integer $limit (optional)
*/
public function searchLastVersion($suchstring, $limit=null)
{
- $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
- WHERE 1=1 ";
+ $qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
+ WHERE cis_suche=true ";
foreach($suchstring as $value)
- $qry.=" AND (lower(beschreibung::text) like lower('%".$this->db_escape($value)."%')
- OR lower (beschreibung::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
+ $qry.=" AND (lower(schlagworte::text) like lower('%".$this->db_escape($value)."%')
+ OR lower (schlagworte::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
$qry.= "AND version=(SELECT MAX(version) FROM campus.tbl_dms_version where dms_id=tbl_dms.dms_id)";
if(!is_null($limit) && is_numeric($limit))
@@ -777,6 +838,8 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -791,7 +854,7 @@ class dms extends basis_db
/**
*
* lädt alle Versionen zu einer übergebenen ID
- * @param $id der zu ladenden Dokumente
+ * @param integer $id ID der zu ladenden Dokumente
*/
public function getAllVersions($dms_id)
{
@@ -823,6 +886,8 @@ class dms extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->version = $row->version;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -899,6 +964,8 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -948,6 +1015,8 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -998,6 +1067,8 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -1346,6 +1417,8 @@ class dms extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
+ $obj->cis_suche = $this->db_parse_bool($row->cis_suche);
+ $obj->schlagworte = $row->schlagworte;
$this->result[] = $obj;
}
@@ -1366,8 +1439,8 @@ class dms extends basis_db
$qry.= " AND parent_kategorie_kurzbz=".$this->db_add_param($parent_kategorie_kurzbz);
else
$qry.=" AND parent_kategorie_kurzbz is null";
-
- $qry.=";";
+
+ $qry.=";";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -1378,6 +1451,9 @@ class dms extends basis_db
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
$obj->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
+
$this->result[] = $obj;
}
diff --git a/include/organisationseinheit.class.php b/include/organisationseinheit.class.php
index 43322b1d6..f1ca364dd 100644
--- a/include/organisationseinheit.class.php
+++ b/include/organisationseinheit.class.php
@@ -575,7 +575,7 @@ class organisationseinheit extends basis_db
OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
}
$qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
-
+
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index e58a029d7..7fee7be09 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -1105,6 +1105,7 @@ class prestudent extends person
$this->studienplan_bezeichnung = $row->studienplan_bezeichnung;
$this->rt_stufe = $row->rt_stufe;
$this->statusgrund_id = $row->statusgrund_id;
+ $this->anmerkung = $row->anmerkung;
return true;
}
else
diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php
index 76938c547..5330df225 100644
--- a/include/tw/vilesci_menu_main.inc.php
+++ b/include/tw/vilesci_menu_main.inc.php
@@ -109,7 +109,7 @@ $menu=array
'Benutzer'=>array
(
'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'),
- 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main'),
+ 'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')),
@@ -188,7 +188,7 @@ $menu=array
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')),
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main', 'permissions'=>array('student/stammdaten')),
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')),
- 'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('admin','lv-plan')),
+ 'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('lehre/lehrveranstaltung')),
'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')),
),
'Auswertung'=> array
diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php
index 7d8aec3cf..422cde18c 100755
--- a/include/zeitaufzeichnung.class.php
+++ b/include/zeitaufzeichnung.class.php
@@ -148,6 +148,39 @@ class zeitaufzeichnung extends basis_db
}
}
+ // ER - Checks
+ if ($this->aktivitaet_kurzbz == 'Ersatzruhe')
+ {
+ $check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")";
+ if ($this->zeitaufzeichnung_id)
+ $check_qry .= " and zeitaufzeichnung_id != ".$this->db_add_param($this->zeitaufzeichnung_id);
+ if($this->db_query($check_qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ if ($row->count)
+ {
+ $this->errormsg = 'Ersatzruhe darf nicht Überlappen!';
+ return false;
+ }
+ }
+ }
+ }
+ if ($this->aktivitaet_kurzbz != 'Ersatzruhe')
+ {
+ $check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and aktivitaet_kurzbz = 'Ersatzruhe' and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")";
+ if($this->db_query($check_qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ if ($row->count)
+ {
+ $this->errormsg = 'Eintrag darf nicht mit Ersatzruhe Überlappen!';
+ return false;
+ }
+ }
+ }
+ }
if($this->new)
{
diff --git a/locale/de-AT/mailverteiler.php b/locale/de-AT/mailverteiler.php
index 0b5852d88..e83da22a8 100644
--- a/locale/de-AT/mailverteiler.php
+++ b/locale/de-AT/mailverteiler.php
@@ -18,11 +18,16 @@ $this->phrasen['mailverteiler/fehlerBeimLadenDerStudenten']='Fehler beim Laden d
$this->phrasen['mailverteiler/mailverteiler']='Mailverteiler';
$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Öffnen eines Mailverteilers';
$this->phrasen['mailverteiler/status']='Status';
-$this->phrasen['mailverteiler/geoeffnet']='Geöffnet';
+$this->phrasen['mailverteiler/geoeffnet']='Mailverteiler "%1$s" geöffnet.';
$this->phrasen['mailverteiler/klickenZumSchicken']='Um ein Mail an den Verteiler zu senden klicken Sie bitte auf den angezeigten Link. Ihr Mailprogramm öffnet automatisch eine Vorlage für ein neues Mail, welche bereits die korrekte Adresse enthält.';
-$this->phrasen['mailverteiler/infoBenutzung']='Das Senden ist für den Zeitraum von 2 Stunden bzw. für die einmalige Benutzung unter der Adresse %1$s möglich.';
-$this->phrasen['mailverteiler/bestaetigeOeffnen']='Bitte bestätigen Sie das Öffnen des Verteilers %1$s';
+$this->phrasen['mailverteiler/infoBenutzung']='Das Senden ist für den Zeitraum von 1 Stunde möglich.
+
+ Falls Sie die generierte Mailadresse manuell in Ihr Mailprogramm kopieren, achten Sie bitte darauf, diese als BCC (Blind Copy) einzugeben!
+
';
+$this->phrasen['mailverteiler/bestaetigeOeffnen']='Um außerhalb des FHTW-Netzwerks eine E-Mail an einen gesperrten Verteiler schicken zu können,
+ klicken Sie bitte auf "Verteiler generieren".
Der generierte Verteiler ist daraufhin für den Zeitraum von einer Stunde erreichbar';
$this->phrasen['mailverteiler/bestaetige']='Bestätige';
$this->phrasen['mailverteiler/personenImVerteiler']='Personen im Mailverteiler';
-$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.
Bitte Informieren Sie den Administrator';
+$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.
Bitte informieren Sie den Administrator';
+$this->phrasen['mailverteiler/verteilerGenerieren']='Verteiler für Gruppe %1$s generieren';
?>
diff --git a/locale/de-AT/profil.php b/locale/de-AT/profil.php
index d3d62a891..eb45b719d 100644
--- a/locale/de-AT/profil.php
+++ b/locale/de-AT/profil.php
@@ -69,7 +69,7 @@ $this->phrasen['profil/infotextSperre']='Gesperrte Profilbilder werden nur für
$this->phrasen['profil/profilfotoGesperrt']='Profilfoto gesperrt';
$this->phrasen['profil/profilfotoUploadGesperrt']='Der Upload des Profilfotos ist nicht mehr möglich';
$this->phrasen['profil/fhausweisStatus']='FH-Ausweis Status';
-$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='FH Ausweis wurde bereits ausgegeben oder liegt zur Abholung bereit';
+$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Der FH Ausweis ist am %s ausgegeben worden.';
$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='Laden Sie bitte ein gültiges Foto hoch';
$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='Foto wurde noch nicht akzeptiert';
$this->phrasen['profil/fhausweisGedrucktAm']='FH-Ausweis gedruckt am';
diff --git a/locale/de-AT/tools.php b/locale/de-AT/tools.php
index cbe551bc4..7465d93c2 100644
--- a/locale/de-AT/tools.php
+++ b/locale/de-AT/tools.php
@@ -57,6 +57,8 @@ $this->phrasen['tools/ampelBitteBestaetigen']='Bitte bestätigen Sie diese jetzt
$this->phrasen['tools/ampelAbgelaufenTitel']='Abgelaufene oder bereits bestätigte Ampeln';
$this->phrasen['tools/ampelAbgelaufenTxt']='Sie können diese Ampeln weiterhin lesen, aber nicht mehr bestätigen.';
$this->phrasen['tools/ampelBestaetigtAbgelaufen']='Bereits bestätigt oder abgelaufen';
+$this->phrasen['tools/ampelKeineAktuellen']='Keine aktuellen Ampeln';
+$this->phrasen['tools/ampelKeineAktuellenTxt']='Sie haben zur Zeit keine aktuellen Ampeln.';
//Software fuer Lehre -> Softgrid
$this->phrasen['tools/applikationsliste']='Applikationsliste';
@@ -80,6 +82,7 @@ $this->phrasen['tools/telefonklappe']='Telefonklappe';
$this->phrasen['tools/reservieren']='Reservieren';
$this->phrasen['tools/maxPersonen']='Max. Personen';
$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebnisse gefunden.';
+$this->phrasen['tools/suchbegriffe']='Suchbegriffe';
//Partnerhochschulen
$this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen';
diff --git a/locale/en-US/mailverteiler.php b/locale/en-US/mailverteiler.php
index 54dfc5a94..88d087bdf 100644
--- a/locale/en-US/mailverteiler.php
+++ b/locale/en-US/mailverteiler.php
@@ -16,13 +16,17 @@ $this->phrasen['mailverteiler/studentenverteiler']='Students mailing list';
$this->phrasen['mailverteiler/keineVerteilerVorhanden']='No mailing list is existing';
$this->phrasen['mailverteiler/fehlerBeimLadenDerStudenten']='Error: Loading Students';
$this->phrasen['mailverteiler/mailverteiler']='Mailing list';
-$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Unlock a Mailing list';
+$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Unlock a mailing list';
$this->phrasen['mailverteiler/status']='Status';
-$this->phrasen['mailverteiler/geoeffnet']='Unlocked';
-$this->phrasen['mailverteiler/klickenZumSchicken']='To send a Mail to this List click on the link above.';
-$this->phrasen['mailverteiler/infoBenutzung']='You can use the Mailinglist during a period of 2 hours or a single Usage under the adress %1$s.';
-$this->phrasen['mailverteiler/bestaetigeOeffnen']='Please confirm to unlock the Mailing list %1$s';
+$this->phrasen['mailverteiler/geoeffnet']='Mailing list "%1$s" unlocked';
+$this->phrasen['mailverteiler/klickenZumSchicken']='To send an E-Mail to this list click on the link above.';
+$this->phrasen['mailverteiler/infoBenutzung']='You can use the mailing list during a period of 1 hour.
+
+ If you copy the E-Mail adress manually to your mail client, please mind to set it as BCC (Blind Copy)!
+
';
+$this->phrasen['mailverteiler/bestaetigeOeffnen']='For sending an E-Mail from an external account, click the button. The mailing list will then be available for 1 hour';
$this->phrasen['mailverteiler/bestaetige']='Confirm';
$this->phrasen['mailverteiler/personenImVerteiler']='People in this mailing list';
-$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list. Please inform your administrator.';
+$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list.
Please inform your administrator.';
+$this->phrasen['mailverteiler/verteilerGenerieren']='Generate mailing list for %1$s';
?>
diff --git a/locale/en-US/notfallbestimmungen.php b/locale/en-US/notfallbestimmungen.php
index 7f5230a54..f0403e1b2 100644
--- a/locale/en-US/notfallbestimmungen.php
+++ b/locale/en-US/notfallbestimmungen.php
@@ -6,5 +6,5 @@ $this->phrasen['notfallbestimmungen/ersthelferUndBrandschutzbeauftragte']='First
$this->phrasen['notfallbestimmungen/ersthelfer']='First Aid Providers';
$this->phrasen['notfallbestimmungen/ausbildungErfolgteDurchORK']='Training was conducted by the Austrian Red Cross (ÖRK)';
$this->phrasen['notfallbestimmungen/folgendePersonenStehenZurVerfuegung']='The following persons are trained to provide first aid';
-$this->phrasen['notfallbestimmungen/sicherheitAnDerFHTW']='Security at the UASTW';
+$this->phrasen['notfallbestimmungen/sicherheitAnDerFHTW']='Safety at the UASTW';
?>
\ No newline at end of file
diff --git a/locale/en-US/profil.php b/locale/en-US/profil.php
index 2274d4a49..909ad4546 100644
--- a/locale/en-US/profil.php
+++ b/locale/en-US/profil.php
@@ -66,7 +66,7 @@ $this->phrasen['profil/infotextSperre']='Locked profile photos are only used for
$this->phrasen['profil/profilfotoGesperrt']='Profile photo locked';
$this->phrasen['profil/profilfotoUploadGesperrt']='It is no longer possible to upload a profile photo';
$this->phrasen['profil/fhausweisStatus']='UAS ID card status';
-$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='UAS ID card has already been issued or is ready for pick-up';
+$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='UAS ID card has already been issued on %s.';
$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='Please upload a valid photo';
$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='Photo has not yet been accepted';
$this->phrasen['profil/fhausweisGedrucktAm']='UAS ID card printed on';
diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php
index 23345ebed..33e95efdc 100644
--- a/locale/en-US/tools.php
+++ b/locale/en-US/tools.php
@@ -59,6 +59,8 @@ $this->phrasen['tools/ampelBitteBestaetigen']='Please confirm now!';
$this->phrasen['tools/ampelAbgelaufenTitel']='Notifications expired or confirmed';
$this->phrasen['tools/ampelAbgelaufenTxt']='Notifications can still be read, but not confirmed anymore.';
$this->phrasen['tools/ampelBestaetigtAbgelaufen']='Almost confirmed or expired';
+$this->phrasen['tools/ampelKeineAktuellen']='No current notifications.';
+$this->phrasen['tools/ampelKeineAktuellenTxt']='You currently do not have any notifications.';
//Software fuer Lehre -> Softgrid
$this->phrasen['tools/applikationsliste']='List of Applications';
@@ -82,6 +84,7 @@ $this->phrasen['tools/telefonklappe']='Extension';
$this->phrasen['tools/reservieren']='Reserve room';
$this->phrasen['tools/maxPersonen']='Max. # of people';
$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not return any results.';
+$this->phrasen['tools/suchbegriffe']='Keywords';
//Partnerhochschulen
$this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities';
diff --git a/locale/it-IT/profil.php b/locale/it-IT/profil.php
index bf3c0cc7b..72bd47e65 100644
--- a/locale/it-IT/profil.php
+++ b/locale/it-IT/profil.php
@@ -1,62 +1,62 @@
-phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo';
-$this->phrasen['profil/adminstration']='Gestione notizie';
-$this->phrasen['profil/alias']='alias';
-$this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di';
-$this->phrasen['profil/ausgegebenAm']='';
-$this->phrasen['profil/betriebsmittel']='';
-$this->phrasen['profil/Bild']='';
-$this->phrasen['profil/bildHochladen']='';
-$this->phrasen['profil/bildSpeichern']='';
-$this->phrasen['profil/Bildupload']='';
-$this->phrasen['profil/BilduploadInfotext']='';
-$this->phrasen['profil/buero']='';
-$this->phrasen['profil/derUserIstInFolgendenVerteilern ']='';
-$this->phrasen['profil/email']='Email';
-$this->phrasen['profil/entlehnteBetriebsmittel']='';
-$this->phrasen['profil/esWurdenKeineProfileGefunden']='Nessun profilo o più profili per l\'utente richiesto';
-$this->phrasen['profil/faxTw']='fax';
-$this->phrasen['profil/fhausweisAbholbereitAmEmpfangAb']='';
-$this->phrasen['profil/fhausweisGedrucktAm']='';
-$this->phrasen['profil/fhausweisStatus']='';
-$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Tesserino consegnato o pronto per il ritiro';
-$this->phrasen['profil/fhausweisWurdeNochNichtGedruckt']='';
-$this->phrasen['profil/fotoAuswählen']='';
-$this->phrasen['profil/fotofreigeben']='';
-$this->phrasen['profil/fotosperren']='';
-$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='';
-$this->phrasen['profil/funktionen']='';
-$this->phrasen['profil/home']='';
-$this->phrasen['profil/homepage']='';
-$this->phrasen['profil/ihrFotoWurdeNochNichtGeprueft']='';
-$this->phrasen['profil/inaktivMitarbeiter']='';
-$this->phrasen['profil/inaktivSonstige']='';
-$this->phrasen['profil/inaktivStudent']='';
-$this->phrasen['profil/infotextSperre']='';
-$this->phrasen['profil/intern']='E-mail di Ateneo';
-$this->phrasen['profil/kontaktPrivat']='Contatti Personali';
-$this->phrasen['profil/kurzbeschreibungFuerOeh']='';
-$this->phrasen['profil/kurzzeichen']='ID breve';
-$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='';
-$this->phrasen['profil/leistungsbeurteilung']='';
-$this->phrasen['profil/lvplanVon']='';
-$this->phrasen['profil/martrikelnummer']='Codice Persona';
-$this->phrasen['profil/meinCis']='';
-$this->phrasen['profil/mitarbeiter']='';
-$this->phrasen['profil/mobil']='Cellulare';
-$this->phrasen['profil/nummer']='';
-$this->phrasen['profil/nurJPGBilder']='';
-$this->phrasen['profil/profil']='';
-$this->phrasen['profil/profilfotoGesperrt']='';
-$this->phrasen['profil/profilfotoUploadGesperrt']='';
-$this->phrasen['profil/sieSindMitgliedInFolgendenVerteilern']='';
-$this->phrasen['profil/solltenDatenNichtStimmen']='La preghiamo di rivolgersi alla segreteria nel caso i dati non risultino essere corretti.';
-$this->phrasen['profil/student']='Studente';
-$this->phrasen['profil/telefon']='';
-$this->phrasen['profil/telefonTw']='';
-$this->phrasen['profil/wendenSieSichAn']='';
-$this->phrasen['profil/zeitsperrenVon']='';
-$this->phrasen['profil/zeitwuensche']='';
-$this->phrasen['profil/zustaendigeAssistenz']='';
-
-?>
+phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo';
+$this->phrasen['profil/adminstration']='Gestione notizie';
+$this->phrasen['profil/alias']='alias';
+$this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di';
+$this->phrasen['profil/ausgegebenAm']='';
+$this->phrasen['profil/betriebsmittel']='';
+$this->phrasen['profil/Bild']='';
+$this->phrasen['profil/bildHochladen']='';
+$this->phrasen['profil/bildSpeichern']='';
+$this->phrasen['profil/Bildupload']='';
+$this->phrasen['profil/BilduploadInfotext']='';
+$this->phrasen['profil/buero']='';
+$this->phrasen['profil/derUserIstInFolgendenVerteilern ']='';
+$this->phrasen['profil/email']='Email';
+$this->phrasen['profil/entlehnteBetriebsmittel']='';
+$this->phrasen['profil/esWurdenKeineProfileGefunden']='Nessun profilo o più profili per l\'utente richiesto';
+$this->phrasen['profil/faxTw']='fax';
+$this->phrasen['profil/fhausweisAbholbereitAmEmpfangAb']='';
+$this->phrasen['profil/fhausweisGedrucktAm']='';
+$this->phrasen['profil/fhausweisStatus']='';
+$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Tesserino consegnato il %s.';
+$this->phrasen['profil/fhausweisWurdeNochNichtGedruckt']='';
+$this->phrasen['profil/fotoAuswählen']='';
+$this->phrasen['profil/fotofreigeben']='';
+$this->phrasen['profil/fotosperren']='';
+$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='';
+$this->phrasen['profil/funktionen']='';
+$this->phrasen['profil/home']='';
+$this->phrasen['profil/homepage']='';
+$this->phrasen['profil/ihrFotoWurdeNochNichtGeprueft']='';
+$this->phrasen['profil/inaktivMitarbeiter']='';
+$this->phrasen['profil/inaktivSonstige']='';
+$this->phrasen['profil/inaktivStudent']='';
+$this->phrasen['profil/infotextSperre']='';
+$this->phrasen['profil/intern']='E-mail di Ateneo';
+$this->phrasen['profil/kontaktPrivat']='Contatti Personali';
+$this->phrasen['profil/kurzbeschreibungFuerOeh']='';
+$this->phrasen['profil/kurzzeichen']='ID breve';
+$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='';
+$this->phrasen['profil/leistungsbeurteilung']='';
+$this->phrasen['profil/lvplanVon']='';
+$this->phrasen['profil/martrikelnummer']='Codice Persona';
+$this->phrasen['profil/meinCis']='';
+$this->phrasen['profil/mitarbeiter']='';
+$this->phrasen['profil/mobil']='Cellulare';
+$this->phrasen['profil/nummer']='';
+$this->phrasen['profil/nurJPGBilder']='';
+$this->phrasen['profil/profil']='';
+$this->phrasen['profil/profilfotoGesperrt']='';
+$this->phrasen['profil/profilfotoUploadGesperrt']='';
+$this->phrasen['profil/sieSindMitgliedInFolgendenVerteilern']='';
+$this->phrasen['profil/solltenDatenNichtStimmen']='La preghiamo di rivolgersi alla segreteria nel caso i dati non risultino essere corretti.';
+$this->phrasen['profil/student']='Studente';
+$this->phrasen['profil/telefon']='';
+$this->phrasen['profil/telefonTw']='';
+$this->phrasen['profil/wendenSieSichAn']='';
+$this->phrasen['profil/zeitsperrenVon']='';
+$this->phrasen['profil/zeitwuensche']='';
+$this->phrasen['profil/zustaendigeAssistenz']='';
+
+?>
diff --git a/public/css/.placeholder b/public/css/.placeholder
new file mode 100644
index 000000000..e69de29bb
diff --git a/public/extensions/.placeholder b/public/extensions/.placeholder
new file mode 100644
index 000000000..e69de29bb
diff --git a/public/images/.placeholder b/public/images/.placeholder
new file mode 100644
index 000000000..e69de29bb
diff --git a/public/media/.placeholder b/public/media/.placeholder
new file mode 100644
index 000000000..e69de29bb
diff --git a/rdf/dokument.rdf.php b/rdf/dokument.rdf.php
index 3a026c058..a1513d71f 100644
--- a/rdf/dokument.rdf.php
+++ b/rdf/dokument.rdf.php
@@ -100,7 +100,7 @@ foreach ($dok->result as $row)
dokument_kurzbz.']]>
- dokument_kurzbz=='Sonst' && $a->titel_intern!==''?$row->bezeichnung.' ('.$a->titel_intern.')':$row->bezeichnung).']]>
+ titel_intern!=''?$row->bezeichnung.' ('.$a->titel_intern.')':$row->bezeichnung).']]>
'.$datumhochgeladen.'
diff --git a/skin/admintemplate.css b/skin/admintemplate.css
index 88fcff3b3..88719b74c 100644
--- a/skin/admintemplate.css
+++ b/skin/admintemplate.css
@@ -8,7 +8,7 @@
}
/*change of panel colors (grey) */
-.panel-primary > .panel-heading{
+.panel-primary > .panel-heading, .panel-primary > .panel-collapse > .panel-footer, .panel-primary > .panel-footer{
color: black;
background-color: #dfdfdf;
border-color: #dfdfdf;
@@ -16,4 +16,38 @@
.panel-primary{
border-color: #dfdfdf;
+}
+
+.panel-primary > .panel-heading + .panel-collapse > .panel-body{
+ border-top-color: #ddd;
+}
+
+/*arrow toggle for panels*/
+.panel-heading .accordion-toggle:before{
+ /* symbol for "opening" panels */
+ font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
+ content: "\e114"; /* adjust as needed, taken from bootstrap.css */
+ /*float: right; */ /* adjust as needed */
+ margin: 15px;
+ color: grey; /* adjust as needed */
+
+}
+
+.panel-heading .accordion-toggle.collapsed:before{
+ /* symbol for "collapsed" panels */
+ content: "\e080"; /* adjust as needed, taken from bootstrap.css */
+}
+
+.panel-heading .accordion-toggle:hover, .panel-heading .accordion-toggle:active,
+.panel-heading .accordion-toggle:focus{
+ text-decoration: none !important;
+}
+
+/*required asterisk for labels for required fields*/
+.label-required:after
+{
+ content:"\00a0*";
+ position: absolute;
+ top: 2px;
+ font-size: 1.3em;
}
\ No newline at end of file
diff --git a/skin/styles/tw.css b/skin/styles/tw.css
index 0821294f0..dea35d3aa 100644
--- a/skin/styles/tw.css
+++ b/skin/styles/tw.css
@@ -862,6 +862,10 @@ option.inactive
{
font-weight: bold;
}
+.suchergebnis
+{
+ padding-bottom: 15px;
+}
.suchicon
{
margin:0px;
diff --git a/system/checksystem.php b/system/checksystem.php
index c486d1b0b..6bdd83f54 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -81,12 +81,16 @@ $berechtigungen = array(
array('basis/cms_sperrfreigabe','Berechtigung zum Freigeben von gesperrtem Content'),
array('basis/cronjob','Cronjobverwaltung'),
array('basis/dms','DMS Download'),
+ array('basis/dmsAdmin','DMS-Kategorien editieren'),
array('basis/fas','FAS Zugriff'),
array('basis/ferien','Verwaltung der Ferien und Feiertage im System'),
array('basis/fhausweis','Verwaltungstools für FH Ausweis – Kartentausch, Bildpruefung, Druck'),
array('basis/firma','Firmenverwaltung'),
array('basis/firma:begrenzt','Firmenverwaltung'),
+ array('basis/geschaeftsjahr','Geschäftsjahr'),
array('basis/infoscreen','Infoscreenverwaltung'),
+ array('basis/konto','Kontenverwaltung'),
+ array('basis/kostenstelle','Kostenstellenverwaltung'),
array('basis/message','Nachrichten'),
array('basis/moodle','basis/moodle'),
array('basis/news','Newsverwaltung'),
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
old mode 100644
new mode 100755
index 5064284f1..a274eb654
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -723,6 +723,20 @@ if(!@$db->db_query("SELECT ausstellungsdetails FROM public.tbl_dokument LIMIT 1"
echo '
Spalte ausstellungsdetails in public.tbl_dokument hinzugefügt';
}
+// ADD COLUMN geschaeftsjahrvon and geschaeftsjahrbis in wawi.tbl_kostenstelle
+if(!$result = @$db->db_query("SELECT geschaeftsjahrvon FROM wawi.tbl_kostenstelle LIMIT 1;"))
+{
+ $qry = "ALTER TABLE wawi.tbl_kostenstelle ADD COLUMN geschaeftsjahrvon varchar(32);
+ ALTER TABLE wawi.tbl_kostenstelle ADD COLUMN geschaeftsjahrbis varchar(32);
+ ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_tbl_geschaeftsjahr_geschaeftsjahrvon FOREIGN KEY (geschaeftsjahrvon) REFERENCES public.tbl_geschaeftsjahr (geschaeftsjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
+ ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_tbl_geschaeftsjahr_geschaeftsjahrbis FOREIGN KEY (geschaeftsjahrbis) REFERENCES public.tbl_geschaeftsjahr (geschaeftsjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'wawi.tbl_kostenstelle: '.$db->db_last_error().'
';
+ else
+ echo '
wawi.tbl_kostenstelle: Spalten geschaeftsjahrvon, geschaeftsjahrbis hinzugefuegt!
';
+}
//---------------------------------------------------------------------------------------------------------------------
// Start extensions
@@ -860,6 +874,7 @@ if ($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berech
// End extensions
//---------------------------------------------------------------------------------------------------------------------
+// Tabellen fuer Person Log
if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_log LIMIT 1"))
{
$qry = "CREATE TABLE system.tbl_log
@@ -910,6 +925,20 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_log LIMIT 1"))
echo ' system.tbl_log hinzugefügt
';
}
+// Add index to system.tbl_log
+if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_log_person_id'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "CREATE INDEX idx_tbl_log_person_id ON system.tbl_log USING btree (person_id)";
+
+ if (! $db->db_query($qry))
+ echo 'Indizes: ' . $db->db_last_error() . '
';
+ else
+ echo 'Index fuer system.tbl_log hinzugefuegt';
+ }
+}
+
//---------------------------------------------------------------------------------------------------------------------
// Start filters
@@ -1949,6 +1978,71 @@ if ($result = $db->db_query("SELECT schema_name FROM information_schema.schemata
}
}
+// Berechtigungen fuer web-user erteilen Log in public.tbl_log zu schreiben
+if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+
+ $qry = "GRANT SELECT, INSERT ON public.tbl_log TO web;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'Log Berechtigungen: '.$db->db_last_error().'
';
+ else
+ echo '
Web User Insert fuer public.tbl_log berechtigt';
+ }
+}
+
+// ADD COLUMN oe_kurzbz AND berechtigung_kurzbz to campus.tbl_dms_kategorie
+if(!@$db->db_query("SELECT oe_kurzbz FROM campus.tbl_dms_kategorie LIMIT 1"))
+{
+ $qry = "ALTER TABLE campus.tbl_dms_kategorie ADD COLUMN oe_kurzbz varchar(32);
+ ALTER TABLE campus.tbl_dms_kategorie ADD COLUMN berechtigung_kurzbz varchar(32);
+
+ ALTER TABLE campus.tbl_dms_kategorie ADD CONSTRAINT fk_dms_kategorie_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ALTER TABLE campus.tbl_dms_kategorie ADD CONSTRAINT fk_dms_kategorie_berechtigung_kurzbz FOREIGN KEY (berechtigung_kurzbz) REFERENCES system.tbl_berechtigung(berechtigung_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_dms_kategorie '.$db->db_last_error().'
';
+ else
+ echo '
Spalte oe_kurzbz und berechtigung_kurzbz in campus.tbl_dms_kategorie hinzugefügt';
+}
+
+// ADD COLUMN cis_suche (boolean) AND schlagworte to campus.tbl_dms_version
+if(!@$db->db_query("SELECT cis_suche FROM campus.tbl_dms_version LIMIT 1"))
+{
+ $qry = "ALTER TABLE campus.tbl_dms_version ADD COLUMN cis_suche boolean NOT NULL DEFAULT false;
+ ALTER TABLE campus.tbl_dms_version ADD COLUMN schlagworte text;
+
+ COMMENT ON COLUMN campus.tbl_dms_version.schlagworte IS 'Semicolon-separated string with keywords for CIS-search';
+ UPDATE campus.tbl_dms_version SET cis_suche=true WHERE beschreibung != '';
+ UPDATE campus.tbl_dms_version SET schlagworte=beschreibung WHERE beschreibung != '';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_dms_version '.$db->db_last_error().'
';
+ else
+ echo '
Spalte cis_suche und schlagworte in campus.tbl_dms_version hinzugefügt.
+
Alle DMS-Einträge mit befülltem Beschreibungstext wurden auf cis_suche=true gesetzt
+
Bei allen DMS-Einträge mit befülltem Beschreibungstext, wurde dieser in die Spalte schlagworte übernommen';
+}
+
+// Remove NOT NULL constraint on matrikelnr on public.tbl_student
+if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_student' AND COLUMN_NAME = 'matrikelnr' AND is_nullable = 'NO'"))
+{
+ if($db->db_num_rows($result) > 0)
+ {
+ $qry = "ALTER TABLE public.tbl_student ALTER COLUMN matrikelnr DROP NOT NULL;";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_student '.$db->db_last_error().'
';
+ else
+ echo '
Removed NOT NULL constraint on "matrikelnr" from public.tbl_student
';
+ }
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
@@ -2001,9 +2095,9 @@ $tabellen=array(
"campus.tbl_coodle_ressource_termin" => array("coodle_ressource_id","coodle_termin_id","insertamum","insertvon"),
"campus.tbl_coodle_status" => array("coodle_status_kurzbz","bezeichnung"),
"campus.tbl_dms" => array("dms_id","oe_kurzbz","dokument_kurzbz","kategorie_kurzbz"),
- "campus.tbl_dms_kategorie" => array("kategorie_kurzbz","bezeichnung","beschreibung","parent_kategorie_kurzbz"),
+ "campus.tbl_dms_kategorie" => array("kategorie_kurzbz","bezeichnung","beschreibung","parent_kategorie_kurzbz","oe_kurzbz","berechtigung_kurzbz"),
"campus.tbl_dms_kategorie_gruppe" => array("kategorie_kurzbz","gruppe_kurzbz","insertamum","insertvon"),
- "campus.tbl_dms_version" => array("dms_id","version","filename","mimetype","name","beschreibung","letzterzugriff","updateamum","updatevon","insertamum","insertvon"),
+ "campus.tbl_dms_version" => array("dms_id","version","filename","mimetype","name","beschreibung","letzterzugriff","updateamum","updatevon","insertamum","insertvon","cis_suche","schlagworte"),
"campus.tbl_erreichbarkeit" => array("erreichbarkeit_kurzbz","beschreibung","farbe"),
"campus.tbl_feedback" => array("feedback_id","betreff","text","datum","uid","lehrveranstaltung_id","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
@@ -2219,7 +2313,7 @@ $tabellen=array(
"wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"),
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id","person_id"),
"wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"),
- "wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum"),
+ "wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum", "geschaeftsjahrvon", "geschaeftsjahrbis"),
"wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"),
"wawi.tbl_bestelldetailtag" => array("tag","bestelldetail_id","insertamum","insertvon"),
"wawi.tbl_projekt_bestellung" => array("projekt_kurzbz","bestellung_id","anteil"),
@@ -2256,7 +2350,7 @@ foreach ($tabellen AS $attribute)
echo 'Gegenpruefung!
';
$error=false;
-$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports';";
+$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports' AND schemaname != 'extension';";
if (!$result=@$db->db_query($sql_query))
echo '
'.$db->db_last_error().'
';
else
diff --git a/vilesci/lehre/lehrveranstaltung.php b/vilesci/lehre/lehrveranstaltung.php
index 67ee0516e..92cd5d7de 100644
--- a/vilesci/lehre/lehrveranstaltung.php
+++ b/vilesci/lehre/lehrveranstaltung.php
@@ -703,8 +703,7 @@ echo '
"False" : function(e, n, f, i, $r, c, data) { return /f/.test(e); }
}
}
-
-}
+ }
});
$(\'.resetsaved\').click(function()
diff --git a/vilesci/personen/funktion.php b/vilesci/personen/funktion.php
index f2e86a52e..a6628c5fa 100644
--- a/vilesci/personen/funktion.php
+++ b/vilesci/personen/funktion.php
@@ -20,22 +20,31 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
-
-
/**
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
*/
require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/basis_db.class.php');
+
+$uid = get_uid();
+
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($uid);
+
+if(!$rechte->isBerechtigt('mitarbeiter',null,'suid'))
+ die($rechte->errormsg);
+
$sql_query="SELECT beschreibung,funktion_kurzbz FROM public.tbl_funktion ORDER BY funktion_kurzbz";
$result_funktion=$db->db_query($sql_query);
if(!$result_funktion)
die("funktion not found!" .$db->db_last_error());
?>
-
+
Funktion
@@ -71,7 +80,7 @@ if ($result_funktion!=0)
echo '
';
for ($i=0;$i<$num_fields; $i++)
- echo "| ".$db->db_field_name($result_funktion,$i)." | ";
+ echo "".$db->db_field_name($result_funktion,$i)." | ";
echo ' | ';
echo ' | ';
echo '
';
diff --git a/vilesci/personen/urlaubsverwaltung.php b/vilesci/personen/urlaubsverwaltung.php
index a2b7632dd..3a2b774d2 100644
--- a/vilesci/personen/urlaubsverwaltung.php
+++ b/vilesci/personen/urlaubsverwaltung.php
@@ -121,7 +121,7 @@ echo '
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
-if(!$rechte->isBerechtigt('mitarbeiter/zeitsperre'))
+if(!$rechte->isBerechtigt('mitarbeiter/zeitsperre', null, 'suid'))
die('Sie haben keine Berechtigung für diese Seite');
//Formular zur Eingabe der UID
diff --git a/vilesci/personen/zeitwunsch.php b/vilesci/personen/zeitwunsch.php
index 4df8063f1..335860528 100644
--- a/vilesci/personen/zeitwunsch.php
+++ b/vilesci/personen/zeitwunsch.php
@@ -52,7 +52,7 @@ $uid_benutzer = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid_benutzer);
-if(!$rechte->isBerechtigt('mitarbeiter'))
+if(!$rechte->isBerechtigt('mitarbeiter', null, 'suid'))
die($rechte->errormsg);
$datum_obj = new datum();
diff --git a/vilesci/stammdaten/ampel_details.php b/vilesci/stammdaten/ampel_details.php
index d04da9992..f4bad58ee 100644
--- a/vilesci/stammdaten/ampel_details.php
+++ b/vilesci/stammdaten/ampel_details.php
@@ -1,230 +1,250 @@
-
- */
-/**
- * Seite zur Wartung der Ampeln
- */
-require_once('../../config/vilesci.config.inc.php');
-require_once('../../include/ampel.class.php');
-require_once('../../include/benutzerberechtigung.class.php');
-require_once('../../include/datum.class.php');
-
-if (!$db = new basis_db())
- die('Es konnte keine Verbindung zum Server aufgebaut werden.');
-
-$user = get_uid();
-
-$rechte = new benutzerberechtigung();
-$rechte->getBerechtigungen($user);
-
-if(!$rechte->isBerechtigt('basis/ampel'))
- die($rechte->errormsg);
-
-$datum_obj = new datum();
-?>
-
-
-
- Ampel - Details
-
-
-
-
-
-
-
-
-
-
-
-$value)
- {
- if(mb_strstr($key,'beschreibung'))
- {
- $idx = mb_substr($key, mb_strlen('beschreibung'));
- $beschreibung[$idx] = $value;
- }
- elseif(mb_strstr($key,'buttontext'))
- {
- $idx = mb_substr($key, mb_strlen('buttontext'));
- $buttontext[$idx] = $value;
- }
- }
- $benutzer_select = (isset($_POST['benutzer_select'])?$_POST['benutzer_select']:die('Benutzer_select fehlt'));
- $deadline = (isset($_POST['deadline'])?$_POST['deadline']:die('Deadline fehlt'));
- $vorlaufzeit = (isset($_POST['vorlaufzeit'])?$_POST['vorlaufzeit']:die('Vorlaufzeit fehlt'));
- $verfallszeit = (isset($_POST['verfallszeit'])?$_POST['verfallszeit']:die('verfallszeit fehlt'));
- $email = isset($_POST['email']);
- $verpflichtend = isset($_POST['verpflichtend']);
- $new = (isset($_POST['new'])?$_POST['new']:'true');
- if($new=='true')
- {
- $ampel->insertamum=date('Y-m-d H:i:s');
- $ampel->insertvon = $user;
- $ampel->new = true;
- }
- else
- {
- if(!$ampel->load($ampel_id))
- die($ampel->errormsg);
-
- $ampel->new=false;
- }
-
- $ampel->kurzbz=$kurzbz;
- $ampel->beschreibung = $beschreibung;
- $ampel->benutzer_select = $benutzer_select;
- $ampel->deadline = $datum_obj->formatDatum($deadline,'Y-m-d');
- $ampel->vorlaufzeit = $vorlaufzeit;
- $ampel->verfallszeit = $verfallszeit;
- $ampel->email = $email;
- $ampel->verpflichtend = $verpflichtend;
- $ampel->buttontext = $buttontext;
- $ampel->updateamum = date('Y-m-d H:i:s');
- $ampel->updatevon = $user;
-
- if($ampel->save())
- {
- echo 'Daten erfolgreich gespeichert';
- echo "\n";
- $action='update';
- $ampel_id = $ampel->ampel_id;
- }
- else
- {
- $action='new';
- echo ''.$ampel->errormsg.'';
- }
- }
-
- echo '';
-?>
-
-
+
+ * Cristina Hainberger
+ */
+/**
+ * Seite zur Wartung der Ampeln
+ */
+require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/ampel.class.php');
+require_once('../../include/benutzerberechtigung.class.php');
+require_once('../../include/datum.class.php');
+
+if (!$db = new basis_db())
+ die('Es konnte keine Verbindung zum Server aufgebaut werden.');
+
+$user = get_uid();
+
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+
+if(!$rechte->isBerechtigt('basis/ampel'))
+ die($rechte->errormsg);
+
+$datum_obj = new datum();
+?>
+
+
+
+ Ampel - Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$value)
+ {
+ if(mb_strstr($key,'beschreibung'))
+ {
+ $idx = mb_substr($key, mb_strlen('beschreibung'));
+ $beschreibung[$idx] = $value;
+ }
+ elseif(mb_strstr($key,'buttontext'))
+ {
+ $idx = mb_substr($key, mb_strlen('buttontext'));
+ $buttontext[$idx] = $value;
+ }
+ }
+ $benutzer_select = (isset($_POST['benutzer_select'])?$_POST['benutzer_select']:die('Benutzer_select fehlt'));
+ $deadline = (isset($_POST['deadline'])?$_POST['deadline']:die('Deadline fehlt'));
+ $vorlaufzeit = (isset($_POST['vorlaufzeit'])?$_POST['vorlaufzeit']:die('Vorlaufzeit fehlt'));
+ $verfallszeit = (isset($_POST['verfallszeit'])?$_POST['verfallszeit']:die('verfallszeit fehlt'));
+ $email = isset($_POST['email']);
+ $verpflichtend = isset($_POST['verpflichtend']);
+ $new = (isset($_POST['new'])?$_POST['new']:'true');
+ if($new=='true')
+ {
+ $ampel->insertamum=date('Y-m-d H:i:s');
+ $ampel->insertvon = $user;
+ $ampel->new = true;
+ }
+ else
+ {
+ if(!$ampel->load($ampel_id))
+ die($ampel->errormsg);
+
+ $ampel->new=false;
+ }
+
+ $ampel->kurzbz=$kurzbz;
+ $ampel->beschreibung = $beschreibung;
+ $ampel->benutzer_select = $benutzer_select;
+ $ampel->deadline = $datum_obj->formatDatum($deadline,'Y-m-d');
+ $ampel->vorlaufzeit = $vorlaufzeit;
+ $ampel->verfallszeit = $verfallszeit;
+ $ampel->email = $email;
+ $ampel->verpflichtend = $verpflichtend;
+ $ampel->buttontext = $buttontext;
+ $ampel->updateamum = date('Y-m-d H:i:s');
+ $ampel->updatevon = $user;
+
+ if($ampel->save())
+ {
+ echo 'Daten erfolgreich gespeichert';
+ echo "\n";
+ $action='update';
+ $ampel_id = $ampel->ampel_id;
+ }
+ else
+ {
+ $action='new';
+ echo ''.$ampel->errormsg.'';
+ }
+ }
+
+ echo '';
+?>
+
+
diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php
index 2f053cdb5..8ab988963 100644
--- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php
+++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php
@@ -27,6 +27,8 @@ require_once('../../include/studiengang.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/berechtigung.class.php');
+require_once ('../../include/organisationseinheit.class.php');
+require_once ('../../include/benutzerfunktion.class.php');
echo '
@@ -52,20 +54,34 @@ function checkLength()
}
$(document).ready(function()
{
- $("#erweitertesuche").hide();
+ if ($("#berechtigung_kurzbz").val() == "" && $("#rolle_kurzbz").val() == "")
+ $("#erweitertesuche").hide();
$("#t1").tablesorter(
{
- sortList: [[0,0],[1,0],[2,0]],
- widgets: ["zebra"],
- headers: {4:{sorter:false}}
+ sortList: [[0,0],[1,0],[2,0]],
+ widgets: ["zebra"],
+ headers: {4:{sorter:false}}
});
$("#t2").tablesorter(
{
- sortList: [[1,0],[2,0],[3,0],[4,0]],
- widgets: ["zebra"],
+ sortList: [[0,0],[1,0],[2,0],[3,0]],
+ widgets: ["zebra", "filter", "stickyHeaders"],
headers: {8:{sorter:false}},
- emptyTo: "emptyMax"
+ emptyTo: "emptyMax",
+ widgetOptions : { filter_functions:
+ {
+ // Add select menu to this column
+ 6 : {
+ "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
+ "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
+ },
+ 7 : {
+ "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
+ "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
+ }
+ }
+ }
});
$("#t3").tablesorter(
{
@@ -74,9 +90,81 @@ $(document).ready(function()
headers: {8:{sorter:false}},
emptyTo: "emptyMax"
});
+ $("#t4").tablesorter(
+ {
+ sortList: [[0,0],[1,0],[2,0]],
+ widgets: ["zebra", "filter", "stickyHeaders"],
+ headers: {9:{sorter:false}},
+ emptyTo: "emptyMax",
+ widgetOptions : { filter_functions:
+ {
+ // Add select menu to this column
+ 7 : {
+ "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
+ "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
+ },
+ 8 : {
+ "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
+ "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
+ }
+ }
+ }
+ });
});
+
@@ -102,6 +190,7 @@ $benutzerart = (isset($_GET['benutzerart'])?$_GET['benutzerart']:'');
$benutzeraktiv = (isset($_GET['aktiv'])?$_GET['aktiv']:'aktiv');
$berechtigung_kurzbz = (isset($_GET['berechtigung_kurzbz'])?$_GET['berechtigung_kurzbz']:'');
$rolle_kurzbz = (isset($_GET['rolle_kurzbz'])?$_GET['rolle_kurzbz']:'');
+$userOnly = (isset($_GET['userOnly']) ? true : false);
$htmlstr='
@@ -141,6 +230,7 @@ $htmlstr='
$htmlstr .= '';
}
$htmlstr .= '
+ Nur User