Merge branch 'feature-15763/ZeiterfassungPauseBeiAllIn' into features-Zeiterfassung/Sprint177

This commit is contained in:
ma0068
2021-10-21 12:53:54 +02:00
7 changed files with 303 additions and 41 deletions
+23 -5
View File
@@ -770,7 +770,6 @@ echo '
else
{
$("#homeofficeBlock").hide();
}
}
});
@@ -1840,10 +1839,29 @@ if ($projekt->getProjekteMitarbeiter($user, true))
$tagessaldo = $tagessaldo-$pausesumme;
// fehlende Pausen berechnen
$pausefehlt_str = '';
if ($tagessaldo > 19800 && $pausesumme < 1800)
$pausefehlt_str = '<span style="color:red; font-weight:bold;">-- Pause fehlt oder zu kurz --</span>';
elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000)
$pausefehlt_str = '<span style="color:red; font-weight:bold;">-- Pause fehlt oder zu kurz --</span>';
//Prüfung auf azgrelevant
$azgrelevant = false;
$verwendung = new bisverwendung();
$verwendung->getVerwendungDatum($user, $datum->formatDatum($tag, 'Y-m-d'));
$azgrelevant = true;
foreach ($verwendung->result as $v)
{
if ($v->azgrelevant)
{
$azgrelevant = false;
}
}
if ($tagessaldo > 19800 && $pausesumme < 1800 && !$azgrelevant)
$pausefehlt_str = '<span class="pauseFehlt" style="color:red; font-weight:bold;">-- Pause fehlt oder zu kurz --</span>';
elseif ($tagessaldo > 19800 && $pausesumme < 1800 && $azgrelevant)
$pausefehlt_str = '<span class="pauseFehlt" style="color:grey; font-weight:bold;">-- Hinweis: Pause fehlt --</span>';
elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000 && !$azgrelevant)
$pausefehlt_str = '<span class="pauseFehlt" style="color:red; font-weight:bold;">-- Pause fehlt oder zu kurz --</span>';
elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000 && $azgrelevant)
$pausefehlt_str = '<span class="pauseFehlt" style="color:grey; font-weight:bold;">-- Hinweis: Pause fehlt --</span>';
$tagessaldo = date('H:i', ($tagessaldo));
+58 -7
View File
@@ -29,6 +29,7 @@ require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/studiensemester.class.php');
$user = get_uid();
@@ -114,6 +115,9 @@ $oe_arr[''] = '';
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false);
$stsem = new studiensemester();
$previousStsem = $stsem->getPreviousFrom($stsem->getPreviousFrom($studiensemester_kurzbz));
$qry = "
SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
tbl_lehrveranstaltung.studiengang_kz,
@@ -124,18 +128,21 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
tbl_lehreinheitmitarbeiter.stundensatz,
tbl_lehreinheitmitarbeiter.semesterstunden lemss,
tbl_lehreinheitmitarbeiter.planstunden,
tbl_lehreinheitmitarbeiter.anmerkung as mitarbeiter_anmerkung,
tbl_lehreinheit.stundenblockung,
tbl_lehreinheit.wochenrythmus,
tbl_lehreinheit.raumtyp,
tbl_lehreinheit.raumtypalternativ,
tbl_lehreinheit.anmerkung,
tbl_lehreinheit.anmerkung as lehreinheit_anmerkung,
tbl_lehreinheit.studiensemester_kurzbz,
tbl_lehreinheit.start_kw,
tbl_lehrveranstaltung.ects,
tbl_lehrveranstaltung.semesterstunden,
tbl_lehrveranstaltung.semesterstunden AS sws,
tbl_lehrveranstaltung.lehrform_kurzbz,
tbl_lehrveranstaltung.lehrveranstaltung_id,
tbl_lehrveranstaltung.orgform_kurzbz,
tbl_lehrveranstaltung.sprache,
(
SELECT nachname
FROM PUBLIC.tbl_person
@@ -163,6 +170,17 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
FROM lehre.tbl_lehrform
WHERE lehre.tbl_lehrform.lehrform_kurzbz = tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1
) AS lv_type,
(
SELECT STRING_AGG(DISTINCT (person.nachname || ' ' || person.vorname), ', ')
FROM lehre.tbl_lehrveranstaltung slv
JOIN lehre.tbl_lehreinheit sle USING (lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter slema USING (lehreinheit_id)
JOIN PUBLIC.tbl_benutzer benutzer ON benutzer.uid = slema.mitarbeiter_uid
JOIN PUBLIC.tbl_person person USING (person_id)
WHERE lehre.tbl_lehreinheit.lehrveranstaltung_id = sle.lehrveranstaltung_id
AND tbl_lehrveranstaltung.lehrform_kurzbz = slv.lehrform_kurzbz
AND sle.studiensemester_kurzbz = " . $db->db_add_param($previousStsem) . "
) AS vorjahr_lektor,
tbl_lehrveranstaltung.lehrform_kurzbz
FROM lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
@@ -217,6 +235,10 @@ $worksheet->write($zeile,++$spalte,"LektorIn", $format_bold);
$maxlength[$spalte]=6;
$worksheet->write($zeile,++$spalte,"Fixangestellt", $format_bold);
$maxlength[$spalte]=10;
$worksheet->write($zeile,++$spalte,"Vorjahrslektor", $format_bold);
$maxlength[$spalte]=12;
$worksheet->write($zeile,++$spalte,"Wunschlektor", $format_bold);
$maxlength[$spalte]=12;
$worksheet->write($zeile,++$spalte,"Bezeichnung", $format_bold);
$maxlength[$spalte]=25;
$worksheet->write($zeile,++$spalte,"Semester", $format_bold);
@@ -239,8 +261,12 @@ $worksheet->write($zeile,++$spalte,"Raum", $format_bold);
$maxlength[$spalte]=4;
$worksheet->write($zeile,++$spalte,"Raum alternativ", $format_bold);
$maxlength[$spalte]=15;
$worksheet->write($zeile,++$spalte,"Anmerkung", $format_bold);
$maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"Anmerkung für LV Planung", $format_bold);
$maxlength[$spalte]=25;
$worksheet->write($zeile,++$spalte,"Anmerkung für Dpt/KF", $format_bold);
$maxlength[$spalte]=25;
$worksheet->write($zeile,++$spalte,"LV-Leitung", $format_bold);
$maxlength[$spalte]=9;
@@ -260,6 +286,16 @@ $maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"Organisationsform", $format_bold);
$maxlength[$spalte]=15;
$worksheet->write($zeile,++$spalte,"Sprache (LV)", $format_bold);
$maxlength[$spalte]=10;
$worksheet->write($zeile,++$spalte,"Software", $format_bold);
$maxlength[$spalte]=10;
$worksheet->write($zeile,++$spalte,"Start in KW", $format_bold);
$maxlength[$spalte]=10;
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
@@ -290,6 +326,10 @@ if($result = $db->db_query($qry))
if($maxlength[$spalte]<mb_strlen($mitarbeiter->fixangestellt ? 'Ja' : 'Nein'))
$maxlength[$spalte]=mb_strlen($mitarbeiter->fixangestellt ? 'Ja' : 'Nein');
$worksheet->write($zeile,++$spalte, $row->vorjahr_lektor);
$worksheet->write($zeile,++$spalte, '');
//Lehrfach
$worksheet->write($zeile,++$spalte,$row->lf_bezeichnung);
//if($maxlength[$spalte]<mb_strlen($row->lf_bezeichnung))
@@ -354,10 +394,12 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->raumtypalternativ);
if($maxlength[$spalte]<mb_strlen($row->raumtypalternativ))
$maxlength[$spalte]=mb_strlen($row->raumtypalternativ);
//Anmerkung
$worksheet->write($zeile,++$spalte,$row->anmerkung);
//if($maxlength[$spalte]<mb_strlen($row->anmerkung))
//$maxlength[$spalte]=mb_strlen($row->anmerkung);
//Anmerkung für LV Planung
$worksheet->write($zeile,++$spalte,$row->lehreinheit_anmerkung);
//Anmerkung für Dpt/KF
$worksheet->write($zeile,++$spalte,$row->mitarbeiter_anmerkung);
//LV-Leitung
$worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname);
@@ -394,6 +436,15 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->orgform_kurzbz);
if($maxlength[$spalte]<mb_strlen($row->orgform_kurzbz))
$maxlength[$spalte]=mb_strlen($row->orgform_kurzbz);
//Sprache (LV)
$worksheet->write($zeile,++$spalte,$row->sprache);
//Software
$worksheet->write($zeile,++$spalte,'');
//Start in KW
$worksheet->write($zeile,++$spalte,$row->start_kw);
}
//Betreuungen
+20 -2
View File
@@ -110,10 +110,18 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
{
$db = new basis_db();
$studiengang_details = new studiengang();
$studiengang_details->load($studiengang_kz);
if (!isset($studiengang_details->studiengang_kz))
{
return false;
}
$jahr = substr($studiensemester_kurzbz, 4);
$art = substr($studiensemester_kurzbz, 0, 2);
if($studiengang_kz<0)
if (($studiengang_kz < 0) || (isset($studiengang_details->typ) && ($studiengang_details->typ == 'l')))
{
$studiengang_kz=abs($studiengang_kz);
//Lehrgang
@@ -136,7 +144,17 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
}
if($art=='2' || $art=='4')
$jahr = $jahr-1;
$matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz);
//FH-Burgenland - weil leider die AO Studiengänge aufgeteilt sind
//(AO sind normal 9+erhalter Nummer, matrikelnr/personenkz wird auch im DVUH Extension berücksichtigt)
if ($studiengang_kz >= 90010 && $studiengang_kz <= 90019)
{
$matrikelnummer = sprintf("%02d",$jahr).$art.substr($studiengang_kz, 0, 4);
}
else
{
$matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz);
}
$qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1";
+7 -6
View File
@@ -500,7 +500,8 @@ class studiengang extends basis_db
$qry = 'INSERT INTO public.tbl_studiengang (studiengang_kz, kurzbz, kurzbzlang, bezeichnung, english,
typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1,
bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html,
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige) VALUES ('.
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige,
melderelevant, foerderrelevant, standort_code) VALUES ('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->kurzbz).', '.
$this->db_add_param($this->kurzbzlang).', '.
@@ -1103,7 +1104,7 @@ class studiengang extends basis_db
return false;
}
}
/**
* Laedt die Studiengänge die vom übergeben Typ sind
* @param string $typ
@@ -1118,13 +1119,13 @@ class studiengang extends basis_db
tbl_studiengang.typ=".$this->db_add_param($typ)."
ORDER BY
kurzbz";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new studiengang();
$obj->studiengang_kz = $row->studiengang_kz;
$obj->kurzbz = $row->kurzbz;
$obj->kurzbzlang = $row->kurzbzlang;
@@ -1160,10 +1161,10 @@ class studiengang extends basis_db
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$obj->standort_code = $row->standort_code;
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
$obj->bezeichnung_arr['English'] = $obj->english;
$this->result[] = $obj;
}
return true;
+1
View File
@@ -190,6 +190,7 @@ $menu=array
'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('lehre/lehrveranstaltung')),
'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')),
'gemeindeupdate'=>array('name'=>'Gemeinden aktualisieren', 'link'=>'stammdaten/set_gemeinde.php', 'target'=>'main','permissions'=>array('basis/gemeinde')),
),
'Auswertung'=> array
(
+35 -21
View File
@@ -4955,6 +4955,20 @@ if(!@$db->db_query("SELECT statusgrund_kurzbz FROM public.tbl_status_grund LIMIT
echo '<br>Neue Spalte statusgrund_kurzbz zu Tabelle public.tbl_status_grund hinzugefügt';
}
// Add permission to set gemeinde
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'basis/gemeinde';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/gemeinde', 'Gemeindedaten pflegen');";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_bisverwendung: '.$db->db_last_error().'</strong><br>';
else
echo ' system.tbl_berechtigung: Added permission for basis/gemeinde<br>';
}
}
// Add column homeoffice to bis.tbl_bisverwendung
if (!$result = @$db->db_query("SELECT homeoffice FROM bis.tbl_bisverwendung LIMIT 1"))
{
@@ -5216,9 +5230,9 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_issue_status LIMIT 1;"))
);
COMMENT ON TABLE system.tbl_issue_status IS 'Tabelle zur Pflege von Bearbeitungsstatus von issues.';
ALTER TABLE system.tbl_issue_status ADD CONSTRAINT pk_tbl_issue_status PRIMARY KEY (status_kurzbz);
INSERT INTO system.tbl_issue_status (status_kurzbz, bezeichnung_mehrsprachig) VALUES('new', '{\"neu\",\"new\"}');
INSERT INTO system.tbl_issue_status (status_kurzbz, bezeichnung_mehrsprachig) VALUES('inProgress', '{\"in Bearbeitung\",\"in progress\"}');
INSERT INTO system.tbl_issue_status (status_kurzbz, bezeichnung_mehrsprachig) VALUES('resolved', '{\"behoben\",\"resolved\"}');";
@@ -5250,11 +5264,11 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehlertyp LIMIT 1;"))
fehlertyp_kurzbz character varying(32),
bezeichnung_mehrsprachig varchar(32)[]
);
COMMENT ON TABLE system.tbl_fehlertyp IS 'Tabelle mit fehlertyp für tbl_fehler';
ALTER TABLE system.tbl_fehlertyp ADD CONSTRAINT pk_tbl_fehlertyp PRIMARY KEY (fehlertyp_kurzbz);
INSERT INTO system.tbl_fehlertyp (fehlertyp_kurzbz, bezeichnung_mehrsprachig) VALUES('warning', '{\"warnung\",\"warning\"}');
INSERT INTO system.tbl_fehlertyp (fehlertyp_kurzbz, bezeichnung_mehrsprachig) VALUES('error', '{\"fehler\",\"error\"}');
INSERT INTO system.tbl_fehlertyp (fehlertyp_kurzbz, bezeichnung_mehrsprachig) VALUES('info', '{\"info\",\"info\"}');";
@@ -5290,7 +5304,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehler LIMIT 1;"))
fehlertyp_kurzbz character varying(32) NOT NULL,
app character varying(32) NOT NULL
);
COMMENT ON TABLE system.tbl_fehler IS 'Tabelle zur Pflege von Fehlerfällen';
COMMENT ON COLUMN system.tbl_fehler.fehlercode IS 'Eindeutiger interner Fehlercode';
COMMENT ON COLUMN system.tbl_fehler.fehler_kurzbz IS 'Eindeutige Kurzbezeichnung für den Fehler';
@@ -5298,13 +5312,13 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehler LIMIT 1;"))
COMMENT ON COLUMN system.tbl_fehler.fehlertext IS 'Interner, eigens definierter Fehlertext mit Platzhaltern für Parameter';
COMMENT ON COLUMN system.tbl_fehler.fehlertyp_kurzbz IS 'Typ bzw Schweregrad (z.B. warnung, fehler)';
COMMENT ON COLUMN system.tbl_fehler.app IS 'Ursprungsapp des Fehlers';
ALTER TABLE system.tbl_fehler ADD CONSTRAINT pk_tbl_fehler PRIMARY KEY (fehlercode);
ALTER TABLE system.tbl_fehler ADD CONSTRAINT pk_tbl_fehler PRIMARY KEY (fehlercode);
ALTER TABLE system.tbl_fehler ADD CONSTRAINT fk_tbl_fehler_fehlertyp_kurzbz FOREIGN KEY (fehlertyp_kurzbz) REFERENCES system.tbl_fehlertyp(fehlertyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_fehler ADD CONSTRAINT fk_tbl_fehler_app FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_fehler ADD CONSTRAINT uk_tbl_fehler_fehlercode_fehler_kurzbz UNIQUE (fehlercode, fehler_kurzbz); -- for upsert ON CONFLICT
ALTER TABLE system.tbl_fehler ADD CONSTRAINT uk_tbl_fehler_fehlercode_extern_app UNIQUE (fehlercode_extern, app); -- for recognizing external errors
INSERT INTO system.tbl_fehler (fehlercode, fehlertext, fehlertyp_kurzbz, app) VALUES ('UNKNOWN_ERROR', 'Fehler ist aufgetreten', 'error', 'core');
";
@@ -5339,31 +5353,31 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_fehler_zustaendigkeiten L
oe_kurzbz character varying(32),
funktion_kurzbz character varying(16)
);
COMMENT ON TABLE system.tbl_fehler_zustaendigkeiten IS 'Tabelle zum Hinzufügen für Zuständigkeiten für einzelne Fehler';
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.fehlercode IS 'Eindeutiger interner Fehlercode';
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.person_id IS 'person_id der zuständigen Person';
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.oe_kurzbz IS 'Zuständigkeit für einen fehlercode für eine ganze OE';
COMMENT ON COLUMN system.tbl_fehler_zustaendigkeiten.funktion_kurzbz IS 'Zusätzliche Einschränkung der OE Zuständigkeit nach funktion';
CREATE SEQUENCE system.seq_fehlerzustaendigkeiten_id
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE ONLY system.tbl_fehler_zustaendigkeiten ALTER COLUMN fehlerzustaendigkeiten_id SET DEFAULT nextval('system.seq_fehlerzustaendigkeiten_id'::regclass);
GRANT SELECT, UPDATE ON SEQUENCE system.seq_fehlerzustaendigkeiten_id TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE system.seq_fehlerzustaendigkeiten_id TO fhcomplete;
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT pk_tbl_fehler_zustaendigkeiten PRIMARY KEY (fehlerzustaendigkeiten_id);
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT pk_tbl_fehler_zustaendigkeiten PRIMARY KEY (fehlerzustaendigkeiten_id);
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_fehlercode FOREIGN KEY (fehlercode) REFERENCES system.tbl_fehler(fehlercode) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT fk_tbl_fehler_zustaendigkeiten_funktion_kurzbz FOREIGN KEY (funktion_kurzbz) REFERENCES public.tbl_funktion(funktion_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT uk_tbl_fehler_zustaendigkeiten_fehlercode_person_id UNIQUE (fehlercode, person_id);
ALTER TABLE system.tbl_fehler_zustaendigkeiten ADD CONSTRAINT uk_tbl_fehler_zustaendigkeiten_fehlercode_oe_kurzbz_funktion_kurzbz UNIQUE (fehlercode, oe_kurzbz, funktion_kurzbz);";
@@ -5407,7 +5421,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_issue LIMIT 1;"))
updatevon character varying(32),
updateamum timestamp without time zone
);
COMMENT ON TABLE system.tbl_issue IS 'Tabelle zur Verfolgung von Problemen/Fehlern von verschiedenen Systemen';
COMMENT ON COLUMN system.tbl_issue.issue_id IS 'Primärschlüssel';
COMMENT ON COLUMN system.tbl_issue.fehlercode IS 'Identifikationscode des Problems/Fehlers, kann von anderem System kommen oder eigens definiert sein';
@@ -5420,26 +5434,26 @@ if(!$result = @$db->db_query("SELECT 1 FROM system.tbl_issue LIMIT 1;"))
COMMENT ON COLUMN system.tbl_issue.person_id IS 'Id der Person, für welche das issue besteht';
COMMENT ON COLUMN system.tbl_issue.oe_kurzbz IS 'Betroffene Organisationseinheit';
COMMENT ON COLUMN system.tbl_issue.status_kurzbz IS 'Verarbeitsungsstatus';
CREATE SEQUENCE system.seq_issue_id
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE ONLY system.tbl_issue ALTER COLUMN issue_id SET DEFAULT nextval('system.seq_issue_id'::regclass);
GRANT SELECT, UPDATE ON SEQUENCE system.seq_issue_id TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE system.seq_issue_id TO fhcomplete;
ALTER TABLE system.tbl_issue ADD CONSTRAINT pk_tbl_issue PRIMARY KEY (issue_id);
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_fehlercode FOREIGN KEY (fehlercode) REFERENCES system.tbl_fehler(fehlercode) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_verarbeitetvon FOREIGN KEY (verarbeitetvon) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_issue ADD CONSTRAINT fk_tbl_issue_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE system.tbl_issue ADD CONSTRAINT chk_tbl_issue_person_id_oe_kurzbz CHECK (person_id IS NOT NULL OR oe_kurzbz IS NOT NULL);
CREATE INDEX idx_tbl_issue_person_id ON system.tbl_issue USING btree (person_id);
+159
View File
@@ -0,0 +1,159 @@
<?php
/* Copyright (C) 2021 FH-Burgenland
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: mlehrner
*/
/*
Dieses Admin-Skript speichert alle Gemeinden in die DB. (Es gibt derzeit keinen Foreign Key auf diese Tabelle dadurch könnte die Tabelle einfach gelöscht und neu befüllt werden)
Zuerst von https://www.bis.ac.at/BISSuite die Excel Datei herunter laden und zu einen csv konvertieren.
Die unnötigen Zeilen über der Head Zeile entfernen
Die Tabelle bis.tbl_gemeinde löschen. -> delete from bis.tbl_gemeinde;
Skript aufrufen, csv auswählen und hochladen.
Datei wird eingelesen und in die DB gespeichert.
*/
require_once('../../config/system.config.inc.php');
require_once(dirname(__FILE__).'/../../include/functions.inc.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/../../include/gemeinde.class.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt('basis/gemeinde'))
{
die('Sie haben keine Berechtigung fuer diese Seite');
}
$tmp_gemeinde_ar = array();
if (isset($_FILES['parsefile']) && $_FILES['parsefile']['error'] == 0)
{
$rows = array_map('str_getcsv', file( $_FILES['parsefile']['tmp_name'] ));
$header = array_shift($rows);
$data = array();
foreach ($rows as $row)
{
$data[] = array_combine($header, $row);
}
foreach ($data as $gemeinde_details)
{
//Wenn nicht gültig dann überspringen
if ($gemeinde_details['Gültig'] == 'Nein') continue;
//es können mehrere plz in einer zeile stehen
$plzs = explode(' ', trim($gemeinde_details['PLZ']));
foreach ($plzs as $plz)
{
$tmp_obj_gemeinde = null;
$tmp_obj_gemeinde = new gemeinde();
$tmp_obj_gemeinde->plz = $plz;
$tmp_obj_gemeinde->name = $gemeinde_details['Gemeindename'];
$tmp_obj_gemeinde->ortschaftskennziffer = $gemeinde_details['Ortschaftskennziffer'];
$tmp_obj_gemeinde->ortschaftsname = $gemeinde_details['Ortschaftsname'];
$tmp_obj_gemeinde->bulacode = $gemeinde_details['BULA_Code'];
$tmp_obj_gemeinde->bulabez = $gemeinde_details['BULA_Bez'];
$tmp_obj_gemeinde->kennziffer = $gemeinde_details['Gemeindekennziffer'];
$tmp_obj_gemeinde->save();
$tmp_gemeinde_ar[] = $tmp_obj_gemeinde;
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Set Gemeinde</title>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
</head>
<body>
<h2>Gemeinden aktualisieren</h2>
Diese Seite dient dazu die Gemeinde Kodex Tabelle zu aktualisieren.<br /><br />
Die Gemeinde Tabelle muss zuvor manuell geleert werden<br />
<b>Filesyntax:</b>(Standard xlsx-File von https://www.bis.ac.at/BISSuite, gespeichert als csv! erste Zeile ist Header (alles was oberhalb ist kann entfernt werden) -> dann Daten)
<br/><br/>
<table border="1">
<tbody>
<tr>
<td>Gemeindekennziffer</td>
<td>Gemeindename</td>
<td>Ortschaftskennziffer</td>
<td>Ortschaftsname</td>
<td>PLZ</td>
<td>BULA_Code</td>
<td>BULA_Bez</td>
<td>Gültig</td>
</tr>
<tr>
<td>10101</td>
<td>Eisenstadt</td>
<td>1</td>
<td>Eisenstadt</td>
<td>7000</td>
<td>1</td>
<td>BGLD</td>
<td>Ja</td>
</tr>
<tr>
<td>10101</td>
<td>Eisenstadt</td>
<td>2</td>
<td>Kleinhöflein im Burgenland</td>
<td>7000 7001 7002</td>
<td>1</td>
<td>BGLD</td>
<td>Ja</td>
</tr>
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</tbody>
</table>
<hr>
<form enctype="multipart/form-data" method="post">
<br>PLZ Kodextabelle <input name="parsefile" type="file" />
<input type="submit" value="hochladen" />
</form>
<hr>
<div>
<pre>
<?php
if ($tmp_gemeinde_ar)
{
print_r($tmp_gemeinde_ar);
}
?>
</pre>
</div>
</body>
</html>