Compare commits

..
Author SHA1 Message Date
Harald Bamberger 5d024b3a71 Merge branch 'feature-77978/Renew_52546_and_53902' 2026-07-23 08:01:44 +02:00
Harald Bamberger 507b47e9ea add name to Udf component 2026-07-23 07:59:02 +02:00
Paolo a83fe561b9 Added the new property "readonly" to the UDF component to switch between edit and readonly mode for all the UDfs 2026-07-22 09:18:23 +02:00
Harald Bamberger c84146fcbd Merge branch 'bug-77989/StudVW_Datepicker_check_modeltype' 2026-07-17 10:36:23 +02:00
ma0068 35decf476c make fields deletable with keyboard: Konto Buchungsdatum, Prüfung Datum, Abschlussprüfung Datum und Sponsion, Mobilität von und bis 2026-07-17 09:12:02 +02:00
Harald Bamberger 6cfc4b0973 Merge branch 'master' into bug-77989/StudVW_Datepicker_check_modeltype 2026-07-16 16:01:25 +02:00
Harald Bamberger 6296b87ea5 Merge branch 'bug-77989/StudVW_Datepicker_check_modeltype' 2026-07-16 15:54:18 +02:00
Harald Bamberger 576a44838f datetime format bewerbung_abgeschickt_am 2026-07-16 15:53:32 +02:00
Harald Bamberger c00e7a182c Merge branch 'master' into bug-77989/StudVW_Datepicker_check_modeltype 2026-07-16 15:00:45 +02:00
ma0068andHarald Bamberger fd1b5daf9c enable deletion of zgv and zgv master date with null and empty string 2026-07-16 14:51:38 +02:00
Harald Bamberger c0b5f2f748 add permission to DetailHeader function for use in pv21 2026-07-16 12:58:00 +02:00
ma0068 b217681ee5 use model-type for interessenten anlegen, listNew 2026-07-14 15:23:06 +02:00
ma0068 7841a73fc0 prepare field bewerbung_abgeschicktamum for showing in frontend (datestamp in database) and add also model-type to datepicker 2026-07-14 15:05:54 +02:00
ma0068 2064008f9e add model-type to fields Betriebsmittel/ausgegebenam, Betriebsmittel/retouram, Funktionen/datumvon und Funktionen/datumbis 2026-07-14 14:31:13 +02:00
ma0068 19b9906c86 Aufnahmetermine: use model-type isodate for field anmeldedatum 2026-07-14 14:23:37 +02:00
ma0068 2c3913a763 Mobility: use model-type isodate for fields von and bis 2026-07-14 14:19:25 +02:00
ma0068 9111edf442 Dokumente: use model-type isodate for field nachgereicht_am 2026-07-14 14:06:59 +02:00
ma0068 b1c47da3c3 use model-type isodate for fields in StatusModal datum and bestaetigtam 2026-07-14 14:01:12 +02:00
ma0068 67eb238876 use model-type isodate for field Details Gebdatum 2026-07-14 13:37:19 +02:00
27 changed files with 67 additions and 356 deletions
@@ -259,7 +259,7 @@ class BetriebsmittelP extends FHCAPI_Controller
$kaution = $this->input->post('kaution');
if($kaution) $kaution = str_replace(',', '.', $kaution);
$ausgegebenam = $this->input->post('ausgegebenam');
$retouram = $this->input->post('retouram');
$retouram = $this->input->post('retouram') == "" ? null : $this->input->post('retouram');
// NOTE(chris): transform_kartennummer
if ($betriebsmitteltyp == 'Zutrittskarte' && $nummer)
@@ -9,9 +9,9 @@ class Detailheader extends FHCAPI_Controller
public function __construct()
{
parent::__construct([
'getHeader' => ['vertrag/mitarbeiter:r'],
'getPersonAbteilung' => ['vertrag/mitarbeiter:r'],
'getLeitungOrg' => ['vertrag/mitarbeiter:r'],
'getHeader' => ['vertrag/mitarbeiter:r', 'basis/mitarbeiter:r'],
'getPersonAbteilung' => ['vertrag/mitarbeiter:r', 'basis/mitarbeiter:r'],
'getLeitungOrg' => ['vertrag/mitarbeiter:r', 'basis/mitarbeiter:r'],
]);
}
@@ -294,6 +294,10 @@ class Funktionen extends FHCAPI_Controller
{
$this->terminateWithValidationErrors($this->form_validation->error_array());
}
if($datum_von == '')
$datum_von = null;
if($datum_bis == '')
$datum_bis = null;
$result = $this->BenutzerfunktionModel->update(
[
@@ -371,6 +371,9 @@ class Abschlusspruefung extends FHCAPI_Controller
$this->terminateWithValidationErrors($this->form_validation->error_array());
}
$datum = $formData['datum'] == '' ? null : $formData['datum'];
$sponsion = $formData['sponsion'] == '' ? null : $formData['sponsion'];
$result = $this->AbschlusspruefungModel->update(
[
'abschlusspruefung_id' => $abschlusspruefung_id
@@ -382,8 +385,8 @@ class Abschlusspruefung extends FHCAPI_Controller
'vorsitz' => $vorsitz,
'pruefungsantritt_kurzbz' => $formData['pruefungsantritt_kurzbz'],
'abschlussbeurteilung_kurzbz' => $formData['abschlussbeurteilung_kurzbz'],
'datum' => $formData['datum'],
'sponsion' => $formData['sponsion'],
'datum' => $datum,
'sponsion' => $sponsion,
'pruefer1' => $pruefer1,
'pruefer2' => $pruefer2,
'pruefer3' => $pruefer3,
@@ -170,6 +170,8 @@ class Dokumente extends FHCAPI_Controller
$this->terminateWithValidationErrors($this->form_validation->error_array());
}
$nachgereicht_am = $this->input->post('nachgereicht_am') == '' ? null : $this->input->post('nachgereicht_am');
$uid = getAuthUID();
$result = $this->AkteModel->update(
@@ -180,7 +182,7 @@ class Dokumente extends FHCAPI_Controller
'dokument_kurzbz' => $this->input->post('dokument_kurzbz'),
'anmerkung_intern' => $this->input->post('anmerkung_intern'),
'titel_intern' => $this->input->post('titel_intern'),
'nachgereicht_am' => $this->input->post('nachgereicht_am'),
'nachgereicht_am' => $nachgereicht_am,
'updateamum' => date('c'),
'updatevon' => $uid,
]
@@ -429,9 +429,12 @@ class Konto extends FHCAPI_Controller
'updateamum' => date('c'),
'updatevon' => getAuthUID()
];
foreach ($allowed as $field)
if ($this->input->post($field) !== null)
$data[$field] = $this->input->post($field);
if($data['buchungsdatum'] == '')
$data['buchungsdatum'] = null;
$result = $this->KontoModel->update($id, $data);
@@ -237,8 +237,8 @@ class Mobility extends FHCAPI_Controller
}
$formData = $this->input->post('formData');
$von = $formData['von'] ?? null;
$bis = $formData['bis'] ?? null;
$von = ($formData['von'] ?? '') ?: null;
$bis = ($formData['bis'] ?? '') ?: null;
$nation_code = $formData['nation_code'] ?? null;
$mobilitaetsprogramm_code = $formData['mobilitaetsprogramm_code'] ?? null;
$herkunftsland_code = $formData['herkunftsland_code'] ?? null;
@@ -193,7 +193,7 @@ class Prestudent extends FHCAPI_Controller
}
elseif (
$val === ''
&& in_array($prop, ['zgvnation', 'zgvmanation', 'zgvdoktornation', 'berufstaetigkeit_code', 'ausbildungcode'])
&& in_array($prop, ['zgvnation', 'zgvmanation', 'zgvdoktornation', 'berufstaetigkeit_code', 'ausbildungcode', 'zgvdatum', 'zgvmadatum'])
)
{
$val = null;
@@ -448,8 +448,10 @@ class Pruefung extends FHCAPI_Controller
}
}
$datum = $this->input->post('datum') == '' ? null : $this->input->post('datum');
if(intval($pruefung_id) > 0)
{
$result = $this->PruefungModel->update(
[
'pruefung_id' => $pruefung_id
@@ -459,7 +461,7 @@ class Pruefung extends FHCAPI_Controller
'mitarbeiter_uid' => $this->input->post('mitarbeiter_uid'),
'note' => $this->input->post('note'),
'pruefungstyp_kurzbz' => $this->input->post('pruefungstyp_kurzbz'),
'datum' => $this->input->post('datum'),
'datum' => $datum,
'anmerkung' => $this->input->post('anmerkung'),
'updatevon' => $authUID,
'updateamum' => date('c'),
@@ -472,7 +474,7 @@ class Pruefung extends FHCAPI_Controller
'lehreinheit_id' => $this->input->post('lehreinheit_id'),
'student_uid' => $this->input->post('student_uid'),
'mitarbeiter_uid' => $this->input->post('mitarbeiter_uid'),
'datum' => $this->input->post('datum'),
'datum' => $datum,
'pruefungstyp_kurzbz' => $this->input->post('pruefungstyp_kurzbz'),
'note' => $this->input->post('note'),
'anmerkung' => $this->input->post('anmerkung'),
@@ -520,7 +522,7 @@ class Pruefung extends FHCAPI_Controller
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'note' => $this->input->post('note'),
'uebernahmedatum' => date('c'),
'benotungsdatum' => $this->input->post('datum'),
'benotungsdatum' => $datum,
'insertamum' => date('c'),
'insertvon' => $authUID,
'punkte' => $this->input->post('punkte') ? str_replace(',', '.', $this->input->post('punkte')) : null
@@ -555,7 +557,7 @@ class Pruefung extends FHCAPI_Controller
], [
'note' => $this->input->post('note'),
'uebernahmedatum' => date('c'),
'benotungsdatum' => $this->input->post('datum'),
'benotungsdatum' => $datum,
'updateamum' => date('c'),
'updatevon' => $authUID,
'punkte' => $this->input->post('punkte') ? str_replace(',', '.', $this->input->post('punkte')) : null
@@ -296,6 +296,10 @@ class Student extends FHCAPI_Controller
$fotoval = ($val == '') ? null : str_replace('data:image/jpeg;base64,', '', $val);
$update_person[$prop] = $fotoval;
}
else if ($prop == 'gebdatum')
{
$update_person[$prop] = ($val == '') ? null : $val;
}
else
{
$update_person[$prop] = $val;
@@ -40,9 +40,6 @@ abstract class AbstractBestandteil implements IValidation
if( is_bool($new_value) && ($old_value !== $new_value) ) {
$this->modifiedcolumns[$columnname] = $columnname;
} else if($old_value === '' xor $new_value === '') {
// handle special case of ''!=0 because of different behavior in PHP 7 vs. 8
$this->modifiedcolumns[$columnname] = $columnname;
} else if(is_null($old_value) xor is_null($new_value)) {
$this->modifiedcolumns[$columnname] = $columnname;
} else if($old_value != $new_value) {
@@ -4,7 +4,6 @@ namespace vertragsbestandteil;
use Exception;
use vertragsbestandteil\VertragsbestandteilStunden;
use vertragsbestandteil\VertragsbestandteilLohnguide;
use vertragsbestandteil\VertragsbestandteilKollektivvertrag;
/**
* Description of VertragsbestandteilFactory
@@ -25,7 +24,6 @@ class VertragsbestandteilFactory
const VERTRAGSBESTANDTEIL_ZEITAUFZEICHNUNG = 'zeitaufzeichnung';
const VERTRAGSBESTANDTEIL_LEHRE = 'lehre';
const VERTRAGSBESTANDTEIL_LOHNGUIDE = 'lohnguide';
const VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG = 'kollektivvertrag';
public static function getVertragsbestandteil($data, $fromdb=false)
{
@@ -78,15 +76,10 @@ class VertragsbestandteilFactory
$vertragsbestandteil = new VertragsbestandteilLohnguide();
$vertragsbestandteil->hydrateByStdClass($data, $fromdb);
break;
case self::VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG:
$vertragsbestandteil = new VertragsbestandteilKollektivvertrag();
$vertragsbestandteil->hydrateByStdClass($data, $fromdb);
break;
default:
throw new Exception('Unknown vertragsbestandteiltyp_kurzbz '
. $vertragsbestandteiltyp_kurzbz);
. $vertragsbestandteiltyp_kurzbz);
}
return $vertragsbestandteil;
@@ -146,14 +139,6 @@ class VertragsbestandteilFactory
'VertragsbestandteilLohnguide_model');
$vertragsbestandteildbmodel = $CI->VertragsbestandteilLohnguide_model;
break;
case self::VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG:
$CI->load->model(
'vertragsbestandteil/VertragsbestandteilKollektivvertrag_model',
'VertragsbestandteilKollektivvertrag_model'
);
$vertragsbestandteildbmodel = $CI->VertragsbestandteilKollektivvertrag_model;
break;
default:
throw new Exception('Unknown vertragsbestandteil_kurzbz '
@@ -1,96 +0,0 @@
<?php
namespace vertragsbestandteil;
use vertragsbestandteil\Vertragsbestandteil;
use vertragsbestandteil\VertragsbestandteilFactory;
class VertragsbestandteilKollektivvertrag extends Vertragsbestandteil
{
protected $kv_jahre;
protected $verwendungsgruppe_kurzbz;
protected $kommentar;
public function __construct()
{
parent::__construct();
$this->setVertragsbestandteiltyp_kurzbz(
VertragsbestandteilFactory::VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG);
}
public function getKv_jahre()
{
return $this->kv_jahre;
}
public function setKv_jahre($kv_jahre): self
{
$this->markDirty('kv_jahre', $this->kv_jahre, $kv_jahre);
$this->kv_jahre = $kv_jahre;
return $this;
}
public function getVerwendungsgruppe_kurzbz()
{
return $this->verwendungsgruppe_kurzbz;
}
public function setVerwendungsgruppe_kurzbz($verwendungsgruppe_kurzbz): self
{
$this->markDirty('verwendungsgruppe_kurzbz', $this->verwendungsgruppe_kurzbz, $verwendungsgruppe_kurzbz);
$this->verwendungsgruppe_kurzbz = $verwendungsgruppe_kurzbz;
return $this;
}
public function getKommentar()
{
return $this->kommentar;
}
public function setKommentar($kommentar): self
{
$this->markDirty('kommentar', $this->kommentar, $kommentar);
$this->kommentar = $kommentar;
return $this;
}
public function hydrateByStdClass($data, $fromdb=false)
{
parent::hydrateByStdClass($data, $fromdb);
$this->fromdb = $fromdb;
isset($data->verwendungsgruppe_kurzbz) && $this->setVerwendungsgruppe_kurzbz($data->verwendungsgruppe_kurzbz);
isset($data->kv_jahre) && $this->setKv_jahre($data->kv_jahre);
isset($data->kommentar) && $this->setKommentar($data->kommentar);
$this->fromdb = false;
}
public function toStdClass(): \stdClass
{
$tmp = array(
'vertragsbestandteil_id' => $this->getVertragsbestandteil_id(),
'kv_jahre' => $this->getKv_jahre(),
'verwendungsgruppe_kurzbz' => $this->getVerwendungsgruppe_kurzbz(),
'kommentar' => $this->getKommentar(),
);
$tmp = array_filter($tmp, function($k) {
return in_array($k, $this->modifiedcolumns);
}, ARRAY_FILTER_USE_KEY);
return (object) $tmp;
}
public function __toString()
{
$txt = <<<EOTXT
verwendungsgruppe_kurzbz: {$this->getVerwendungsgruppe_kurzbz()}
EOTXT;
return parent::__toString() . $txt;
}
}
@@ -11,7 +11,6 @@ require_once __DIR__ . '/VertragsbestandteilUrlaubsanspruch.php';
require_once __DIR__ . '/VertragsbestandteilFreitext.php';
require_once __DIR__ . '/VertragsbestandteilKarenz.php';
require_once __DIR__ . '/VertragsbestandteilLohnguide.php';
require_once __DIR__ . '/VertragsbestandteilKollektivvertrag.php';
require_once __DIR__ . '/VertragsbestandteilFactory.php';
require_once __DIR__ . '/OverlapChecker.php';
@@ -1,11 +0,0 @@
<?php
class VertragsbestandteilKollektivvertrag_model extends DB_Model
{
public function __construct()
{
parent::__construct();
$this->dbTable = 'hr.tbl_vertragsbestandteil_kollektivvertrag';
$this->pk = 'vertragsbestandteil_id';
}
}
@@ -38,8 +38,7 @@ class Vertragsbestandteil_model extends DB_Model
s.wochenstunden, s.teilzeittyp_kurzbz,
u.tage,
z.zeitaufzeichnung, z.azgrelevant, z.homeoffice,
lg.stellenbezeichnung, lg.vordienstzeit, lg.fachrichtung_kurzbz, lg.modellstelle_kurzbz, lg.kommentar_person, lg.kommentar_modellstelle,
kv.verwendungsgruppe_kurzbz, kv.kv_jahre, kv.kommentar
lg.stellenbezeichnung, lg.vordienstzeit, lg.fachrichtung_kurzbz, lg.modellstelle_kurzbz, lg.kommentar_person, lg.kommentar_modellstelle
FROM
hr.tbl_vertragsbestandteil v
LEFT JOIN
@@ -67,8 +66,6 @@ class Vertragsbestandteil_model extends DB_Model
hr.tbl_vertragsbestandteil_zeitaufzeichnung z USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_lohnguide lg USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_kollektivvertrag kv USING(vertragsbestandteil_id)
EOSQL;
return $sql;
}
@@ -433,6 +433,7 @@ export default {
:label="$p.t('wawi/ausgegebenam')"
name="ausgegebenam"
v-model="formData.ausgegebenam"
model-type="yyyy-MM-dd"
auto-apply
:enable-time-picker="false"
text-input
@@ -449,6 +450,7 @@ export default {
:label="$p.t('wawi/retouram')"
name="retouram"
v-model="formData.retouram"
model-type="yyyy-MM-dd"
auto-apply
:enable-time-picker="false"
text-input
@@ -551,6 +551,7 @@ export default {
container-class="mb-3 col-3"
type="DatePicker"
v-model="formData.datum_von"
model-type="yyyy-MM-dd"
name="datum_von"
:label="$p.t('ui/from') + ' *'"
auto-apply
@@ -566,6 +567,7 @@ export default {
container-class="mb-3 col-3"
type="DatePicker"
v-model="formData.datum_bis"
model-type="yyyy-MM-dd"
name="datum_bis"
:label="$p.t('global/bis')"
auto-apply
@@ -470,6 +470,7 @@ export default {
:label="$p.t('admission', 'anmeldundRtAm')"
type="DatePicker"
v-model="formData.anmeldedatum"
model-type="yyyy-MM-dd"
auto-apply
:enable-time-picker="false"
text-input
@@ -293,6 +293,7 @@ export default {
:label="$p.t('person', 'geburtsdatum')"
type="DatePicker"
v-model="data.gebdatum"
model-type="yyyy-MM-dd"
name="gebdatum"
:clearable="false"
no-today
@@ -103,6 +103,7 @@ export default {
<form-input
type="DatePicker"
v-model="formData.nachgereicht_am"
model-type="yyyy-MM-dd"
name="nachgereicht_am"
:label="$p.t('dokumente/nachreichungAm')"
auto-apply
@@ -467,6 +467,7 @@ export default {
:label="$p.t('ui', 'von')"
type="DatePicker"
v-model="formData.von"
model-type="yyyy-MM-dd"
auto-apply
:enable-time-picker="false"
text-input
@@ -501,6 +502,7 @@ export default {
:label="$p.t('global', 'bis')"
type="DatePicker"
v-model="formData.bis"
model-type="yyyy-MM-dd"
auto-apply
:enable-time-picker="false"
text-input
@@ -276,6 +276,7 @@ export default{
container-class="mb-3"
type="DatePicker"
v-model="formData.datum"
model-type="yyyy-MM-dd"
name="datum"
:label="$p.t('global/datum')"
auto-apply
@@ -291,6 +292,7 @@ export default{
container-class="mb-3"
type="DatePicker"
v-model="formData.bestaetigtam"
model-type="yyyy-MM-dd"
name="bestaetigtam"
:label="$p.t('lehre/bestaetigt_am')"
auto-apply
@@ -306,13 +308,14 @@ export default{
container-class="mb-3"
type="DatePicker"
v-model="formData.bewerbung_abgeschicktamum"
model-type="yyyy-MM-dd HH:mm:ss"
name="bewerbung_abgeschicktamum"
:label="$p.t('lehre/bewerbung_abgeschickt_am')"
auto-apply
:enable-time-picker="false"
format="dd.MM.yyyy"
:enable-time-picker="true"
format="dd.MM.yyyy HH:mm:ss"
text-input
preview-format="dd.MM.yyyy"
preview-format="dd.MM.yyyy HH:mm:ss"
:teleport="true"
:disabled="bisLocked || !hasPrestudentstatusPermission"
>
@@ -285,6 +285,7 @@ export default {
uid="stv-list-new-gebdatum"
name="gebdatum"
v-model="formDataPerson['gebdatum']"
model-type="yyyy-MM-dd"
:disabled="!!person"
@update:model-value="loadSuggestions"
text-input
+17 -3
View File
@@ -4,6 +4,7 @@ import FormInput from '../Form/Input.js';
import ApiUdf from '../../api/udf.js';
export default {
name: 'CoreUdfCmpt',
components: {
CoreFetchCmpt,
FormInput
@@ -26,7 +27,8 @@ export default {
// The values as associative array
modelValue: Object,
// Show only fields with a name that exists in the filter
filter: [String, Array]
filter: [String, Array],
readonly: true
},
data() {
return {
@@ -35,6 +37,13 @@ export default {
};
},
computed: {
isPkValid() {
// If the provided pk is _not_ valid
return !Object.keys(this.pk).every(key => !this.pk[key]);
},
getReadonly() {
return this.readonly;
},
filterArray() {
if (!this.filter || Array.isArray(this.filter))
return this.filter;
@@ -61,6 +70,10 @@ export default {
},
watch: {
pk(n, o) {
// If the provided pk is _not_ valid
if (Object.keys(n).every(key => !n[key])) return;
if (!this.$refs.fetch)
return; // NOTE(chris): no initial load yet
@@ -124,6 +137,7 @@ export default {
template: `
<div class="core-udf row">
<core-fetch-cmpt
v-if="isPkValid"
ref="fetch"
:api-function="loadF"
:api-function-parameters="{ ciModel, pk }"
@@ -138,7 +152,7 @@ export default {
:type="field.type"
:multiple="field.multiple"
:title="field.description"
:disabled="field.disabled"
:disabled="field.disabled || getReadonly"
:clearable="field.clearable"
:auto-apply="field.autoApply"
:enable-time-picker="field.enableTimePicker"
@@ -152,4 +166,4 @@ export default {
</template>
</core-fetch-cmpt>
</div>`
}
}
-1
View File
@@ -98,7 +98,6 @@ require_once('dbupdate_3.4/75888_reihungstest_mehrfachdurchfuehrung.php');
require_once('dbupdate_3.4/76150_perm_other_lv_plan.php');
require_once('dbupdate_3.4/68957_dashboard_bookmark_neue_Spalte_sort.php');
require_once('dbupdate_3.4/68530_Dashboard_Cleanup.php');
require_once('dbupdate_3.4/76781_kollektivvertrag.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -1,204 +0,0 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_kollektivvertrag' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE TABLE IF NOT EXISTS hr.tbl_kollektivvertrag (
kollektivvertrag_kurzbz character varying(32) NOT NULL,
oe_kurzbz character varying(32),
bezeichnung varchar(64) NOT NULL,
aktiv boolean DEFAULT FALSE,
sort smallint,
insertvon character varying(32) NOT NULL,
insertamum timestamp without time zone DEFAULT now() NOT NULL,
updatevon character varying(32),
updateamum timestamp without time zone,
CONSTRAINT tbl_kollektivvertrag_pkey PRIMARY KEY (kollektivvertrag_kurzbz),
CONSTRAINT tbl_kollektivvertrag_oe_kurzbz_fk FOREIGN KEY (oe_kurzbz) REFERENCES tbl_organisationseinheit(oe_kurzbz) MATCH FULL ON UPDATE CASCADE ON DELETE RESTRICT
);
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_kollektivvertrag TO vilesci;
INSERT INTO hr.tbl_kollektivvertrag(kollektivvertrag_kurzbz, oe_kurzbz, bezeichnung, aktiv, sort, insertvon, insertamum) VALUES('IT','gmbh','KV IT',true,1,'system',NOW());
INSERT INTO hr.tbl_kollektivvertrag(kollektivvertrag_kurzbz, oe_kurzbz, bezeichnung, aktiv, sort, insertvon, insertamum) VALUES('XY','gst','KV IT',true,1,'system',NOW());
";
if (! $db->db_query($qry))
echo '<strong>Kollektivvertrag: ' . $db->db_last_error() . '</strong><br>';
else
echo 'hr.tbl_kollektivvertrag_verwendungsgruppe wurde neu erstellt<br>';
}
}
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_kollektivvertrag_verwendungsgruppe' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE TABLE IF NOT EXISTS hr.tbl_kollektivvertrag_verwendungsgruppe (
verwendungsgruppe_kurzbz character varying(32) NOT NULL,
kollektivvertrag_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(64) NOT NULL,
aktiv boolean DEFAULT FALSE,
sort smallint,
insertvon character varying(32) NOT NULL,
insertamum timestamp without time zone DEFAULT now() NOT NULL,
updatevon character varying(32),
updateamum timestamp without time zone,
CONSTRAINT tbl_kollektivvertrag_verwendungsgruppe_pkey PRIMARY KEY (verwendungsgruppe_kurzbz),
CONSTRAINT tbl_kollektivvertrag_kollektivvertrag_kurzbz_fk FOREIGN KEY (kollektivvertrag_kurzbz) REFERENCES hr.tbl_kollektivvertrag (kollektivvertrag_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE
);
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_kollektivvertrag_verwendungsgruppe TO vilesci;
INSERT INTO hr.tbl_kollektivvertrag_verwendungsgruppe(verwendungsgruppe_kurzbz, kollektivvertrag_kurzbz, bezeichnung,aktiv, sort, insertvon, insertamum) VALUES
('VG1','IT','VG 1',true,1,'system',NOW()),
('VG2','IT','VG 2',true,2,'system',NOW()),
('VG3','IT','VG 3',true,3,'system',NOW()),
('VG4','IT','VG 4',true,4,'system',NOW()),
('VG5','IT','VG 5',true,5,'system',NOW()),
('VG6','IT','VG 6',true,6,'system',NOW())
ON CONFLICT (verwendungsgruppe_kurzbz) DO NOTHING;
INSERT INTO hr.tbl_kollektivvertrag_verwendungsgruppe(verwendungsgruppe_kurzbz, kollektivvertrag_kurzbz, bezeichnung,aktiv, sort, insertvon, insertamum) VALUES
('VG1_XY','XY','VG 1',true,1,'system',NOW()),
('VG2_XY','XY','VG 2',true,2,'system',NOW()),
('VG3_XY','XY','VG 3',true,3,'system',NOW()),
('VG4_XY','XY','VG 4',true,4,'system',NOW())
ON CONFLICT (verwendungsgruppe_kurzbz) DO NOTHING;
";
if (! $db->db_query($qry))
echo '<strong>KV Gruppe: ' . $db->db_last_error() . '</strong><br>';
else
echo 'hr.tbl_kollektivvertrag_verwendungsgruppe wurde neu erstellt<br>';
}
}
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_kollektivvertrag_verwendungsgruppenjahr' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE TABLE IF NOT EXISTS hr.tbl_kollektivvertrag_verwendungsgruppenjahr (
kv_jahre integer NOT NULL,
verwendungsgruppe_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(64) NOT NULL,
aktiv boolean DEFAULT FALSE,
insertvon character varying(32) NOT NULL,
insertamum timestamp without time zone DEFAULT now() NOT NULL,
updatevon character varying(32),
updateamum timestamp without time zone,
CONSTRAINT tbl_kollektivvertrag_verwendungsgruppenjahr_pkey PRIMARY KEY (kv_jahre, verwendungsgruppe_kurzbz),
CONSTRAINT tbl_kollektivvertrag_verwendungsgruppenjahr_vg_kurzbz_fk FOREIGN KEY (verwendungsgruppe_kurzbz) REFERENCES hr.tbl_kollektivvertrag_verwendungsgruppe (verwendungsgruppe_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE
);
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_kollektivvertrag_verwendungsgruppenjahr TO vilesci;
INSERT INTO hr.tbl_kollektivvertrag_verwendungsgruppenjahr(kv_jahre, bezeichnung, verwendungsgruppe_kurzbz, aktiv, insertvon, insertamum) VALUES
('0','nach 0','VG1',true, 'system',NOW()),
('2','nach 2','VG1',true, 'system',NOW()),
('4','nach 4','VG1',true, 'system',NOW()),
('5','nach 5','VG1',true, 'system',NOW()),
('0','nach 0','VG2',true,'system',NOW()),
('2','nach 2','VG2',true,'system',NOW()),
('4','nach 4','VG2',true,'system',NOW()),
('5','nach 5','VG2',true,'system',NOW()),
('0','nach 0','VG3',true,'system',NOW()),
('2','nach 2','VG3',true,'system',NOW()),
('4','nach 4','VG3',true,'system',NOW()),
('5','nach 5','VG3',true,'system',NOW()),
('0','nach 0','VG4',true,'system',NOW()),
('2','nach 2','VG4',true,'system',NOW()),
('4','nach 4','VG4',true,'system',NOW()),
('5','nach 5','VG4',true,'system',NOW()),
('0','nach 0','VG5',true,'system',NOW()),
('2','nach 2','VG5',true,'system',NOW()),
('4','nach 4','VG5',true,'system',NOW()),
('5','nach 5','VG5',true,'system',NOW()),
('0','nach 0','VG6',true,'system',NOW()),
('2','nach 2','VG6',true,'system',NOW()),
('4','nach 4','VG6',true,'system',NOW()),
('5','nach 5','VG6',true,'system',NOW())
ON CONFLICT (kv_jahre, verwendungsgruppe_kurzbz) DO NOTHING;
INSERT INTO hr.tbl_kollektivvertrag_verwendungsgruppenjahr(kv_jahre, bezeichnung, verwendungsgruppe_kurzbz, aktiv, insertvon, insertamum) VALUES
('0','nach 0','VG1_XY',true, 'system',NOW()),
('2','nach 2','VG1_XY',true, 'system',NOW()),
('4','nach 4','VG1_XY',true, 'system',NOW()),
('5','nach 5','VG1_XY',true, 'system',NOW()),
('0','nach 0','VG2_XY',true,'system',NOW()),
('2','nach 2','VG2_XY',true,'system',NOW()),
('4','nach 4','VG2_XY',true,'system',NOW()),
('5','nach 5','VG2_XY',true,'system',NOW()),
('0','nach 0','VG3_XY',true,'system',NOW()),
('2','nach 2','VG3_XY',true,'system',NOW()),
('4','nach 4','VG3_XY',true,'system',NOW()),
('5','nach 5','VG3_XY',true,'system',NOW()),
('0','nach 0','VG4_XY',true,'system',NOW()),
('2','nach 2','VG4_XY',true,'system',NOW()),
('4','nach 4','VG4_XY',true,'system',NOW()),
('5','nach 5','VG4_XY',true,'system',NOW())
ON CONFLICT (kv_jahre, verwendungsgruppe_kurzbz) DO NOTHING;
";
if (! $db->db_query($qry))
echo '<strong>KV-Stufe: ' . $db->db_last_error() . '</strong><br>';
else
echo 'hr.tbl_kollektivvertrag_verwendungsgruppenjahr wurde neu erstellt<br>';
}
}
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_vertragsbestandteil_kollektivvertrag' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE TABLE IF NOT EXISTS hr.tbl_vertragsbestandteil_kollektivvertrag (
vertragsbestandteil_id integer NOT NULL,
verwendungsgruppe_kurzbz character varying(32) NOT NULL,
kv_jahre integer NOT NULL,
kommentar varchar(255),
CONSTRAINT tbl_vertragsbestandteil_kollektivvertrag_pk PRIMARY KEY (vertragsbestandteil_id),
CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id) REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT tbl_vertragsbestandteil_kollektivvertrag_kv_jahre_fk FOREIGN KEY (kv_jahre, verwendungsgruppe_kurzbz) REFERENCES hr.tbl_kollektivvertrag_verwendungsgruppenjahr (kv_jahre, verwendungsgruppe_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE
);
COMMENT ON TABLE hr.tbl_vertragsbestandteil_kollektivvertrag IS E'Zuordnung zur Einstufung im Kollektivvertrag';
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_vertragsbestandteil_kollektivvertrag TO vilesci;
INSERT INTO hr.tbl_vertragsbestandteiltyp(vertragsbestandteiltyp_kurzbz, bezeichnung, ueberlappend) VALUES('kollektivvertrag', 'Kollektivvertrag', false);
";
if (! $db->db_query($qry))
echo '<strong>Vertragsbestandteil Lohnguide: ' . $db->db_last_error() . '</strong><br>';
else
echo 'hr.tbl_vertragsbestandteil_kollektivvertrag wurde neu erstellt<br>';
}
}