- pv21 stundensaetze hinzugefuegt

This commit is contained in:
ma0048
2023-08-14 14:14:37 +02:00
parent d689e8fb2f
commit c4377010b1
11 changed files with 490 additions and 73 deletions
@@ -0,0 +1,188 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class MigrateHourlyRate extends CLI_Controller
{
CONST DEFAULT_OE = 'gst';
CONST DEFAULT_DATE = '1970-01-01';
CONST STUNDENSTAZTYP_LEHRE = 'lehre';
CONST STUNDENSTAZTYP_KALKULATORISCH = 'kalkulatorisch';
private $_ci;
public function __construct()
{
parent::__construct();
$this->_ci = & get_instance();
$this->load->model('codex/Bisverwendung_model', 'BisVerwendungModel');
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
$this->load->model('ressource/Stundensatz_model', 'StundensatzModel');
}
public function index($user = null)
{
$mitarbeiterResult = $this->_getMitarbeiterStunden($user);
if (isError($mitarbeiterResult)) return $mitarbeiterResult;
if (!hasData($mitarbeiterResult)) return error('Keine Mitarbeiterstunden gefunden');
$mitarbeiterArray = getData($mitarbeiterResult);
foreach ($mitarbeiterArray as $mitarbeiter)
{
$this->_getUnternehmen($mitarbeiter);
$insertResult = $this->_addStundensatz($mitarbeiter, self::STUNDENSTAZTYP_LEHRE, self::DEFAULT_DATE);
if (isError($insertResult)) return $insertResult;
}
$sapResult = $this->_getSapStunden($user);
if (isError($sapResult)) return $sapResult;
if (!hasData($sapResult)) return error('Keinen kalkulatorischen Stundensaetze gefunden');
$mitarbeiterArray = getData($sapResult);
foreach ($mitarbeiterArray as $mitarbeiter)
{
$this->_getUnternehmen($mitarbeiter);
$insertResult = $this->_addStundensatz($mitarbeiter, self::STUNDENSTAZTYP_KALKULATORISCH, date_format(date_create($mitarbeiter->beginn), 'Y-m-d'));
if (isError($insertResult)) return $insertResult;
}
}
private function _getSapStunden($user = null)
{
$dbModel = new DB_Model();
$params = array();
$qry = "SELECT ss.mitarbeiter_uid as uid,
ss.sap_kalkulatorischer_stundensatz as stundensatz,
ss.insertamum as beginn
FROM sync.tbl_sap_stundensatz ss
WHERE ss.sap_kalkulatorischer_stundensatz IS NOT NULL";
if (!is_null($user))
{
$qry .= " AND ss.mitarbeiter_uid = ? ";
$params[] = $user;
}
$qry .= " ORDER BY ss.mitarbeiter_uid";
return $dbModel->execReadOnlyQuery($qry, $params);
}
private function _getMitarbeiterStunden($user = null)
{
$dbModel = new DB_Model();
$params = array();
$qry = "SELECT mitarbeiter.mitarbeiter_uid as uid,
stundensatz
FROM public.tbl_mitarbeiter mitarbeiter
WHERE mitarbeiter.stundensatz != 0.00
AND mitarbeiter.stundensatz IS NOT NULL";
if (!is_null($user))
{
$qry .= " AND mitarbeiter.mitarbeiter_uid = ?";
$params[] = $user;
}
$qry .= " ORDER BY mitarbeiter.mitarbeiter_uid";
return $dbModel->execReadOnlyQuery($qry, $params);
}
private function _addStundensatz($mitarbeiter, $stundensatztyp, $gueltig_von)
{
return $this->_ci->StundensatzModel->insert(
array(
'uid' => $mitarbeiter->uid,
'stundensatztyp' => $stundensatztyp,
'stundensatz' => $mitarbeiter->stundensatz,
'oe_kurzbz' => $mitarbeiter->unternehmen,
'gueltig_von' => $gueltig_von,
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => 'MigrateHours'
)
);
}
private function _getUnternehmen(&$mitarbeiter)
{
$bvResult = $this->_ci->BisVerwendungModel->getLast($mitarbeiter->uid);
$beginn = null;
if (hasData($bvResult))
{
$beginn = getData($bvResult)[0]->beginn;
}
$unternehmenResult = $this->_findUnternehmen($mitarbeiter->uid, "'kstzuordnung', 'oezuordnung'", $beginn);
if(!hasData($unternehmenResult)) //&& hasData($bvResult)
{
$unternehmenResult = $this->_findUnternehmen($mitarbeiter->uid, "'kstzuordnung', 'oezuordnung'");
}
$unternehmen = self::DEFAULT_OE;
if (hasData($unternehmenResult))
$unternehmen = getData($unternehmenResult)[0]->oe_kurzbz;
$mitarbeiter->unternehmen = $unternehmen;
}
/**
* Detailsuche fuer die Ermittlung des Unternehmenszuordnung einer Person
*/
private function _findUnternehmen($uid, $fkt=null, $datum=null)
{
$dbModel = new DB_Model();
$qry = "
WITH RECURSIVE meine_oes(oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz) as
(
SELECT
oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz
FROM
public.tbl_organisationseinheit
WHERE
oe_kurzbz=(SELECT
oe_kurzbz
FROM
public.tbl_benutzerfunktion
WHERE
uid=".$dbModel->escape($uid);
if(!is_null($datum))
$qry.=" AND ".$dbModel->escape($datum)." BETWEEN datum_von AND COALESCE(datum_bis, '2999-12-31')";
if(!is_null($fkt))
$qry.=" AND funktion_kurzbz in ($fkt)";
$qry.="
ORDER BY funktion_kurzbz, datum_von LIMIT 1)
UNION ALL
SELECT
o.oe_kurzbz, o.oe_parent_kurzbz, o.organisationseinheittyp_kurzbz
FROM
public.tbl_organisationseinheit o, meine_oes
WHERE
o.oe_kurzbz=meine_oes.oe_parent_kurzbz
)
SELECT
oe_kurzbz
FROM
meine_oes
WHERE
oe_parent_kurzbz is null
LIMIT 1
";
return $dbModel->execReadOnlyQuery($qry);
}
}
@@ -0,0 +1,17 @@
<?php
class Stundensatz_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'hr.tbl_stundensatz';
$this->pk = 'stundensatz_id';
$this->hasSequence = true;
}
}
@@ -0,0 +1,16 @@
<?php
class Stundensatztyp_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'hr.tbl_stundensatztyp';
$this->pk = 'stundensatztyp';
}
}
+1
View File
@@ -385,6 +385,7 @@ var LeLektorDDObserver=
req.add('lehreinheit_id', lehreinheit_id); req.add('lehreinheit_id', lehreinheit_id);
req.add('mitarbeiter_uid', uid); req.add('mitarbeiter_uid', uid);
req.add('studiensemester_kurzbz', getStudiensemester());
var response = req.executePOST(); var response = req.executePOST();
+86 -63
View File
@@ -54,6 +54,7 @@ require_once('../../include/datum.class.php');
require_once('../../include/vertrag.class.php'); require_once('../../include/vertrag.class.php');
require_once('../../include/benutzergruppe.class.php'); require_once('../../include/benutzergruppe.class.php');
require_once('../../include/bisverwendung.class.php'); require_once('../../include/bisverwendung.class.php');
require_once('../../include/stundensatz.class.php');
$user = get_uid(); $user = get_uid();
$db = new basis_db(); $db = new basis_db();
@@ -543,51 +544,61 @@ if(!$error)
$lem->new=true; $lem->new=true;
$fixangestellt=false; $fixangestellt=false;
//Stundensatz aus tbl_mitarbeiter holen //"lehre" Stundensatz aus hr.tbl_stundensatz holen
$mitarbeiter = new mitarbeiter();
if ($mitarbeiter->load($_POST['mitarbeiter_uid'])) $studiensemester = new studiensemester();
if (!$studiensemester->load($_POST['studiensemester_kurzbz']))
{ {
$fixangestellt = $mitarbeiter->fixangestellt; $return = false;
$lem->stundensatz = $mitarbeiter->stundensatz; $error = true;
$errormsg = 'Fehler beim Laden des Studiensemesters';
}
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ') if (!$error)
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ) {
$mitarbeiter = new mitarbeiter();
if ($mitarbeiter->load($_POST['mitarbeiter_uid']))
{ {
$stsem = new studiensemester(); $fixangestellt = $mitarbeiter->fixangestellt;
$stsem->load($semester_aktuell);
$bisverwendung = new bisverwendung(); $stundensatz = new stundensatz();
$data = $mitarbeiter->stundensatz; $stundensatz->getStundensatzDatum($mitarbeiter->uid, $studiensemester->start, $studiensemester->ende, 'lehre');
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende)) $lem->stundensatz = $stundensatz->stundensatz;
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
{ {
$bisverwendung->getLastAktVerwendung($mitarbeiter->uid); $stsem = new studiensemester();
$bisverwendung->result[] = $bisverwendung; $stsem->load($semester_aktuell);
} $bisverwendung = new bisverwendung();
foreach($bisverwendung->result as $row_verwendung) if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende))
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1)
{ {
$fixangestellt = true; $bisverwendung->getLastAktVerwendung($mitarbeiter->uid);
$lem->stundensatz = ''; $bisverwendung->result[] = $bisverwendung;
}
break;
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1)
{
$fixangestellt = true;
$lem->stundensatz = '';
break;
}
} }
} }
} }
else else
{ {
$lem->stundensatz = $mitarbeiter->stundensatz; $error=true;
$return=false;
$errormsg='Mitarbeiter '.$db->convert_html_chars($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
} }
} }
else
{
$error=true;
$return=false;
$errormsg='Mitarbeiter '.$db->convert_html_chars($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
}
$maxstunden=9999; $maxstunden=9999;
@@ -1556,49 +1567,61 @@ if(!$error)
} }
elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz') elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz')
{ {
if(isset($_POST['mitarbeiter_uid'])) if(isset($_POST['mitarbeiter_uid']) && isset($_POST['studiensemester_kurzbz']))
{ {
$mitarbeiter = new mitarbeiter(); $studiensemester = new studiensemester();
if($mitarbeiter->load($_POST['mitarbeiter_uid'])) if (!$studiensemester->load($_POST['studiensemester_kurzbz']))
{ {
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ') $return = false;
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ) $error = true;
$errormsg = 'Fehler beim Laden des Studiensemesters';
}
if (!$error)
{
$mitarbeiter = new mitarbeiter();
if($mitarbeiter->load($_POST['mitarbeiter_uid']))
{ {
$stsem = new studiensemester(); $stundensatz = new stundensatz();
$stsem->load($semester_aktuell); $stundensatz->getStundensatzDatum($mitarbeiter->uid, $studiensemester->start, $studiensemester->ende, 'lehre');
$bisverwendung = new bisverwendung(); $data = $stundensatz->stundensatz;
$data = $mitarbeiter->stundensatz;
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende)) if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
{ {
$bisverwendung->getLastAktVerwendung($mitarbeiter->uid); $stsem = new studiensemester();
$bisverwendung->result[] = $bisverwendung; $stsem->load($semester_aktuell);
} $bisverwendung = new bisverwendung();
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende))
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1)
{ {
$data = ''; $bisverwendung->getLastAktVerwendung($mitarbeiter->uid);
break; $bisverwendung->result[] = $bisverwendung;
}
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1)
{
$data = '';
break;
}
} }
} }
$return = true;
} }
else else
$data = $mitarbeiter->stundensatz; {
$return = true; $errormsg = 'Fehler beim Laden des Mitarbeitenden';
} $return = false;
else }
{
$errormsg = 'Fehler beim Laden des Mitarbeitenden';
$return = false;
} }
} }
else else
{ {
$errormsg = 'MitarbeitendeUID muss uebergeben werden'; $errormsg = 'MitarbeitendeUID und Studiensemester muessen uebergeben werden';
$return = false; $return = false;
} }
} }
@@ -1228,6 +1228,7 @@ function LeMitarbeiterLektorChange()
req.add('type', 'getstundensatz'); req.add('type', 'getstundensatz');
req.add('mitarbeiter_uid', mitarbeiter_uid); req.add('mitarbeiter_uid', mitarbeiter_uid);
req.add('studiensemester_kurzbz', getStudiensemester());
var response = req.executePOST(); var response = req.executePOST();
@@ -1340,6 +1341,7 @@ function LeMitarbeiterAuswahl()
req_stundensatz.add('type', 'getstundensatz'); req_stundensatz.add('type', 'getstundensatz');
req_stundensatz.add('mitarbeiter_uid', mitarbeiter_uid); req_stundensatz.add('mitarbeiter_uid', mitarbeiter_uid);
req_stundensatz.add('studiensemester_kurzbz', getStudiensemester());
var response_stundensatz = req_stundensatz.executePOST(); var response_stundensatz = req_stundensatz.executePOST();
+27 -10
View File
@@ -4614,27 +4614,44 @@ if(!$error)
} }
elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz') elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz')
{ {
if(isset($_POST['person_id'])) if(isset($_POST['person_id']) && isset($_POST['studiensemester_kurzbz']))
{ {
$qry = "SELECT stundensatz FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) $studiensemester = new studiensemester();
WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER); if ($studiensemester->load($_POST['studiensemester_kurzbz']))
if($result = $db->db_query($qry))
{ {
if($row = $db->db_fetch_object($result)) $qry = "SELECT ss.stundensatz
FROM hr.tbl_stundensatz ss
JOIN public.tbl_mitarbeiter ON ss.uid = tbl_mitarbeiter.mitarbeiter_uid
JOIN public.tbl_benutzer ON(tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid)
WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER) ."
AND stundensatztyp = ". $db->db_add_param('lehre') ."
AND gueltig_von <= ". $db->db_add_param($studiensemester->ende) ."
AND (gueltig_bis => ". $db->db_add_param($studiensemester->start) ." OR gueltig_bis IS NULL)
ORDER BY gueltig_bis DESC NULLS FIRST, gueltig_von DESC NULLS LAST LIMIT 1
";
if($result = $db->db_query($qry))
{ {
$data = $row->stundensatz; if($row = $db->db_fetch_object($result))
$return = true; {
$data = $row->stundensatz;
$return = true;
}
else
{
$data = '80.00';
$return = true;
}
} }
else else
{ {
$data = '80.00'; $return = false;
$return = true; $errormsg = 'Unbekannter Fehler';
} }
} }
else else
{ {
$return = false; $return = false;
$errormsg = 'Unbekannter Fehler'; $errormsg = 'Fehler beim Laden des Studiensemesters';
} }
} }
} }
@@ -1367,6 +1367,7 @@ function StudentProjektbetreuerLoadMitarbeiterDaten()
req.add('type', 'getstundensatz'); req.add('type', 'getstundensatz');
req.add('person_id', person_id); req.add('person_id', person_id);
req.add('studiensemester_kurzbz', getStudiensemester())
var response = req.executePOST(); var response = req.executePOST();
+82
View File
@@ -0,0 +1,82 @@
<?php
require_once(dirname(__FILE__).'/basis_db.class.php');
class stundensatz extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $stundensatz_id; // serial
public $uid; // varchar(32)
public $stundensatztyp; // varchar(32)
public $stundensatz; // numeric
public $oe_kurzbz; // varchar(32)
public $gueltig_von; // date
public $gueltig_bis; // date
public $insertamum; // timestamp
public $insertvon; // varchar(16)
public $updateamum; // timestamp
public $updatevon; // varchar(16)
public function __construct($stundensatz_id = null)
{
parent::__construct();
if (!is_null($stundensatz_id))
$this->load($stundensatz_id);
}
public function getStundensatzDatum($uid, $beginn, $ende = null, $typ = null)
{
$qry = "SELECT
*
FROM
hr.tbl_stundensatz
WHERE
uid = ". $this->db_add_param($uid) ."
AND (gueltig_bis >= ". $this->db_add_param($beginn) ." OR gueltig_bis is null)";
if (!is_null($ende))
{
$qry .= " AND (gueltig_von <= ". $this->db_add_param($ende) .")";
}
if (!is_null($typ))
{
$qry .= " AND stundensatztyp = ". $this->db_add_param($typ);
}
$qry .= " ORDER BY gueltig_bis DESC NULLS FIRST, gueltig_von DESC NULLS LAST LIMIT 1;";
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
$this->stundensatz_id = $row->stundensatz_id;
$this->uid = $row->uid;
$this->stundensatztyp = $row->stundensatztyp;
$this->stundensatz = $row->stundensatz;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->gueltig_von = $row->gueltig_von;
$this->gueltig_bis = $row->gueltig_bis;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+1
View File
@@ -40,6 +40,7 @@ require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php'); require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php'); require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php'); require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
require_once('dbupdate_3.4/29094_stundensaetze.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>'; echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -0,0 +1,69 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add index to system.tbl_log
if (!$result = @$db->db_query("SELECT 1 FROM hr.tbl_stundensatz LIMIT 1"))
{
$qry = "
CREATE TABLE hr.tbl_stundensatztyp
(
stundensatztyp varchar(32) NOT NULL,
bezeichnung varchar(256),
aktiv boolean NOT NULL DEFAULT true,
insertamum timestamp DEFAULT now(),
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
CONSTRAINT tbl_stundensatztyp_pk PRIMARY KEY (stundensatztyp)
);
CREATE TABLE hr.tbl_stundensatz
(
stundensatz_id integer NOT NULL,
uid character varying(32),
stundensatztyp varchar(32),
stundensatz numeric(6, 2),
oe_kurzbz character varying(32),
gueltig_von date,
gueltig_bis date,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32),
CONSTRAINT tbl_stundensatz_pkey PRIMARY KEY (stundensatz_id)
);
CREATE SEQUENCE hr.tbl_stundensatz_stundensatz_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE hr.tbl_stundensatz ALTER COLUMN stundensatz_id SET DEFAULT nextval('hr.tbl_stundensatz_stundensatz_id_seq');
ALTER TABLE hr.tbl_stundensatz ADD CONSTRAINT tbl_stundensatz_stundensatztyp_fk FOREIGN KEY (stundensatztyp) REFERENCES hr.tbl_stundensatztyp (stundensatztyp) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_stundensatz ADD CONSTRAINT tbl_stundensatz_uid_fk FOREIGN KEY (uid) REFERENCES public.tbl_mitarbeiter ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE hr.tbl_stundensatz ADD CONSTRAINT tbl_stundensatz_oe_kurzbz_fk FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit (oe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundensatztyp TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundensatz TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundensatz_stundensatz_id_seq TO vilesci;
GRANT SELECT ON hr.tbl_stundensatztyp TO web;
GRANT SELECT ON hr.tbl_stundensatz TO web;
INSERT INTO hr.tbl_stundensatztyp(stundensatztyp, bezeichnung, insertvon) VALUES('lehre','Lehre', 'checksystem');
INSERT INTO hr.tbl_stundensatztyp(stundensatztyp, bezeichnung, insertvon) VALUES('kalkulatorisch','kalkulatorische Stundensaetze', 'checksystem');
CREATE INDEX idx_tbl_stundensatz_uid ON hr.tbl_stundensatz USING btree (uid);
CREATE INDEX idx_tbl_stundensatz_stundensatz_id ON hr.tbl_stundensatz USING btree (stundensatz_id);
";
if (!$db->db_query($qry))
echo '<strong>Stundensaetze Tabelle: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Stundensaetze Tabelle erstellt';
}