vertragsarten dvbund, dvanderegk und dvanderebet hinzugefuegt, MigrateContract default oe und ba1code mapping in config verschoben und config check implementiert

This commit is contained in:
Harald Bamberger
2024-05-22 15:32:28 +02:00
parent f2a2469e6e
commit 8cba0aec5a
3 changed files with 148 additions and 15 deletions
+36
View File
@@ -0,0 +1,36 @@
<?php
/**
* Copyright (C) 2023 fhcomplete.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
if (!defined('BASEPATH')) exit('No direct script access allowed');
$config['migratecontract_oe_default'] = 'TODO_OE_DEFAULT';
$config['migratecontract_matching_ba1_vertragsart'] = array(
'101'=>'dvbund',
'102'=>'dvanderengk',
'103'=>'echterdv',
'104'=>'studentischehilfskr',
'105'=>'externerlehrender',
'106'=>'dvanderenbet',
'107'=>'werkvertrag',
'108'=>'studentischehilfskr',
'109'=>'ueberlassungsvertrag',
'110'=>'echterfreier',
'111'=>'echterdv' //All-In
);
@@ -16,7 +16,9 @@ class MigrateContract extends CLI_Controller
{
private $matching_ba1_vertragsart;
private $OE_DEFAULT = 'gst';
private $OE_DEFAULT;
protected $configerrors;
/**
* Constructor
@@ -28,29 +30,70 @@ class MigrateContract extends CLI_Controller
$this->load->model('codex/bisverwendung_model', 'BisVerwendungModel');
$this->load->model('person/benutzerfunktion_model', 'BenutzerfunktionModel');
$this->matching_ba1_vertragsart = array(
'101'=>'externerlehrender',
'102'=>'DV anderen Gebietskörperschaft',
'103'=>'echterdv',
'104'=>'studentischehilfskr',
'105'=>'externerlehrender',
'106'=>'Andere Bildungseinrichtung',
'107'=>'werkvertrag',
'108'=>'studentischehilfskr',
'109'=>'ueberlassungsvertrag',
'110'=>'echterfreier',
'111'=>'echterdv', //All-In
);
$this->load->config('migratecontract');
$this->OE_DEFAULT = $this->config->item('migratecontract_oe_default');
$this->matching_ba1_vertragsart = $this->config->item('migratecontract_matching_ba1_vertragsart');
$this->configerrors = array();
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
public function checkConfig()
{
echo "OE_DEFAULT: " . $this->OE_DEFAULT . "\n";
echo "matching_ba1_vertragsart: " . print_r($this->matching_ba1_vertragsart, true);
$this->checkOE_DEFAULT();
$this->checkMatching_ba1_vertragsart();
if( count($this->configerrors) > 0 )
{
foreach($this->configerrors AS $configerror)
{
echo $configerror . "\n";
}
die("Fehler in der Konfiguration. Abbruch!\n");
}
else
{
echo "Konfiguration OK.\n";
}
}
protected function checkOE_DEFAULT()
{
$db = new DB_Model();
$oesql = 'SELECT * FROM public.tbl_organisationseinheit WHERE oe_kurzbz = ?';
$oeres = $db->execReadOnlyQuery($oesql, array($this->OE_DEFAULT));
if( !hasData($oeres) )
{
$this->configerrors[] = 'Default Organisationseinheit: "'
. $this->OE_DEFAULT . '" nicht gefunden.';
}
}
protected function checkMatching_ba1_vertragsart() {
$db = new DB_Model();
foreach( $this->matching_ba1_vertragsart AS $vertragsart_kurzbz )
{
$vasql = 'SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_kurzbz = ?';
$vares = $db->execReadOnlyQuery($vasql, array($vertragsart_kurzbz));
if( !hasData($vares) )
{
$this->configerrors[] = 'Vertragsart "' . $vertragsart_kurzbz
. '" nicht gefunden.';
}
}
}
/**
* Everything has a beginning
*/
public function index($user = null)
{
$this->checkConfig();
if (!is_null($user))
{
$contracts = $this->_transformUser($user);
+55 -1
View File
@@ -437,6 +437,60 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'HR Schema und Vertagstabellen wurden neu erstellt';
echo 'HR Schema und Vertagstabellen wurden neu erstellt<br />';
}
}
if ($result = $db->db_query("SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_kurzbz='dvbund'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
INSERT INTO hr.tbl_vertragsart
(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort)
VALUES
('dvbund','DV zum Bund','Dienstverhältnis zum Bund', true, null, true, 400);
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Vertragsart "Dienstverhältnis zum Bund" erstellt.<br />';
}
}
if ($result = $db->db_query("SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_kurzbz='dvanderengk'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
INSERT INTO hr.tbl_vertragsart
(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort)
VALUES
('dvanderengk','DV anderen Gebietskörperschaft','Dienstverhältnis zu einer anderen Gebietskörperschaft', true, null, true, 500);
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Vertragsart "Dienstverhältnis zu einer anderen Gebietskörperschaft" erstellt.<br />';
}
}
if ($result = $db->db_query("SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_kurzbz='dvanderenbet'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
INSERT INTO hr.tbl_vertragsart
(vertragsart_kurzbz, bezeichnung, anmerkung, dienstverhaeltnis, vertragsart_kurzbz_parent, aktiv, sort)
VALUES
('dvanderenbet','DV anderen Bildungseinrichtung','Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger', true, null, true, 600);
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Vertragsart "Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger" erstellt.<br />';
}
}