From a54c7a3492ce5cca896883c7e031a02e93d19470 Mon Sep 17 00:00:00 2001
From: KarpAlex
Date: Mon, 26 Jun 2023 19:15:27 +0200
Subject: [PATCH 01/15] UHSTAT1 data: added tables
---
system/dbupdate_3.4.php | 1 +
...uhstat1_daten_ueber_das_bewerbungstool.php | 124 ++++++++++++++++++
2 files changed, 125 insertions(+)
create mode 100644 system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index 9fda09bba..5687d4ca3 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -39,6 +39,7 @@ require_once('dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php')
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/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
+require_once('dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
diff --git a/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
new file mode 100644
index 000000000..c27e068c6
--- /dev/null
+++ b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
@@ -0,0 +1,124 @@
+db_query('SELECT 1 FROM bis.tbl_abschluss LIMIT 1'))
+{
+ $qry = "CREATE TABLE bis.tbl_abschluss
+ (
+ ausbildung_code integer NOT NULL,
+ abschluss_bez varchar(128),
+ bezeichnung character varying(128)[],
+ aktiv boolean NOT NULL DEFAULT true,
+ in_oesterreich boolean,
+ CONSTRAINT tbl_abschluss_pk PRIMARY KEY (ausbildung_code)
+ );
+
+ COMMENT ON TABLE bis.tbl_abschluss IS 'Key-Table of graduation';
+ COMMENT ON COLUMN bis.tbl_abschluss.aktiv IS 'Shows wether graduation is still valid.';
+ COMMENT ON COLUMN bis.tbl_abschluss.in_oesterreich IS 'Shows if graduation was obtained in Austria.';
+
+ GRANT SELECT ON bis.tbl_abschluss TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_abschluss TO vilesci;
+
+ -- prefill values
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(110, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(121, 'Lehre', '{\"Lehre\", \"Apprenticeship\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(122, 'Mittlere Schule ohne Matura', '{\"Mittlere Schule ohne Matura (z.B. Handelsschule, Fachschule)\", \"School for intermediate vocational education (without university entrance qualification)\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(123, 'Meisterprüfung', '{\"Meisterprüfung\", \"Master craftsman\'s diploma\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(131, 'AHS', '{\"AHS (allgemein bildende höhere Schule)\", \"Academic secondary school\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(132, 'BHS', '{\"BHS (berufsbildende höhere Schule, z.B. HAK, HTL)\", \"College for higher vocational education\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(133, 'Sonstige Hochschulzugangsberechtigung', '{\"Sonstige Hochschulzugangsberechtigung (z.B. Berufsreifeprüfung)\", \"Other university entrance qualification (e.g. \'Berufsreifeprüfung\')\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(141, 'Akademie', '{\"Akademie (z.B. PÄDAK, SOZAK)\", \"Academy (for example PÄDAK, SOZAK)\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(142, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(210, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(220, 'Ausbildung ohne Hochschulzugangsberechtigung', '{\"Lehre oder mittlere Schule ohne Matura/Ausbildung ohne Hochschulzugangsberechtigung\", \"Apprenticeship or school for intermediate vocational education (education without university entrance qualification)\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(230, 'Ausbildung mit Hochschulzugangsberechtigung', '{\"Höhere Schule mit Matura / Ausbildung mit Hochschulzugangsberechtigung (z.B. Abitur)\", \"Higher secondary school with university entrance qualification\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(240, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(999, 'unbekannt', '{\"Ich weiß nicht, welchen Abschluss meine erziehungsberechtigte Person erlangt hat.\", \"I do not know what degree my legal guardian got.\"}');
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'bis.tbl_abschluss: '.$db->db_last_error().'
';
+ else
+ echo ' bis.tbl_abschluss: Tabelle hinzugefuegt
';
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1'))
+{
+ $qry = "CREATE SEQUENCE bis.tbl_uhstat1daten_uhstat1daten_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ START WITH 1
+ CACHE 1
+ NO CYCLE;
+
+ CREATE TABLE bis.tbl_uhstat1daten
+ (
+ uhstat1daten_id integer DEFAULT nextval('bis.tbl_uhstat1daten_uhstat1daten_id_seq'::regclass),
+ geburtsstaat varchar(3),
+ mutter_geburtsstaat varchar(3),
+ mutter_bildungsstaat varchar(3),
+ mutter_geburtsjahr smallint,
+ mutter_bildungmax integer,
+ vater_geburtsstaat varchar(3),
+ vater_bildungsstaat varchar(3),
+ vater_geburtsjahr smallint,
+ vater_bildungmax integer,
+ person_id integer NOT NULL
+ );
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_geburtsstaat FOREIGN KEY (geburtsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_geburtsstaat FOREIGN KEY (mutter_geburtsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_bildungsstaat FOREIGN KEY (mutter_bildungsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_bildungmax FOREIGN KEY (mutter_bildungmax)
+ REFERENCES bis.tbl_abschluss (ausbildung_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_geburtsstaat FOREIGN KEY (vater_geburtsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_bildungsstaat FOREIGN KEY (vater_bildungsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_bildungmax FOREIGN KEY (vater_bildungmax)
+ REFERENCES bis.tbl_abschluss (ausbildung_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_person_id FOREIGN KEY (person_id)
+ REFERENCES public.tbl_person (person_id) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ COMMENT ON TABLE bis.tbl_uhstat1daten IS 'UHSTAT1 data for a person (statistical data)';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.geburtsstaat IS 'Birthplace of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsstaat IS 'Birth country of mother of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_bildungsstaat IS 'Education country of mother of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsjahr IS 'Birth year of mother of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_bildungmax IS 'Highest completed level of education of mother (code)';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_geburtsstaat IS 'Birth country of father of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_bildungsstaat IS 'Education country of father of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_geburtsjahr IS 'Birth year of father of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_bildungmax IS 'Highest completed level of education of father (code)';
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO vilesci;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'bis.tbl_uhstat1daten: '.$db->db_last_error().'
';
+ else
+ echo ' bis.tbl_uhstat1daten: Tabelle hinzugefuegt
';
+}
From 0a961d8e95b33a5e300586d84d598bd7b10c0346 Mon Sep 17 00:00:00 2001
From: KarpAlex
Date: Tue, 27 Jun 2023 11:00:13 +0200
Subject: [PATCH 02/15] UHSTAT1 bis.tbl_abschluss: added default values for
in_oesterreich boolean
---
...uhstat1_daten_ueber_das_bewerbungstool.php | 26 +++++++++----------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
index c27e068c6..7395ac0bc 100644
--- a/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
+++ b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
@@ -23,19 +23,19 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_abschluss LIMIT 1'))
GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_abschluss TO vilesci;
-- prefill values
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(110, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(121, 'Lehre', '{\"Lehre\", \"Apprenticeship\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(122, 'Mittlere Schule ohne Matura', '{\"Mittlere Schule ohne Matura (z.B. Handelsschule, Fachschule)\", \"School for intermediate vocational education (without university entrance qualification)\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(123, 'Meisterprüfung', '{\"Meisterprüfung\", \"Master craftsman\'s diploma\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(131, 'AHS', '{\"AHS (allgemein bildende höhere Schule)\", \"Academic secondary school\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(132, 'BHS', '{\"BHS (berufsbildende höhere Schule, z.B. HAK, HTL)\", \"College for higher vocational education\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(133, 'Sonstige Hochschulzugangsberechtigung', '{\"Sonstige Hochschulzugangsberechtigung (z.B. Berufsreifeprüfung)\", \"Other university entrance qualification (e.g. \'Berufsreifeprüfung\')\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(141, 'Akademie', '{\"Akademie (z.B. PÄDAK, SOZAK)\", \"Academy (for example PÄDAK, SOZAK)\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(142, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(210, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(220, 'Ausbildung ohne Hochschulzugangsberechtigung', '{\"Lehre oder mittlere Schule ohne Matura/Ausbildung ohne Hochschulzugangsberechtigung\", \"Apprenticeship or school for intermediate vocational education (education without university entrance qualification)\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(230, 'Ausbildung mit Hochschulzugangsberechtigung', '{\"Höhere Schule mit Matura / Ausbildung mit Hochschulzugangsberechtigung (z.B. Abitur)\", \"Higher secondary school with university entrance qualification\"}');
- INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(240, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}');
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(110, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(121, 'Lehre', '{\"Lehre\", \"Apprenticeship\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(122, 'Mittlere Schule ohne Matura', '{\"Mittlere Schule ohne Matura (z.B. Handelsschule, Fachschule)\", \"School for intermediate vocational education (without university entrance qualification)\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(123, 'Meisterprüfung', '{\"Meisterprüfung\", \"Master craftsman\'s diploma\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(131, 'AHS', '{\"AHS (allgemein bildende höhere Schule)\", \"Academic secondary school\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(132, 'BHS', '{\"BHS (berufsbildende höhere Schule, z.B. HAK, HTL)\", \"College for higher vocational education\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(133, 'Sonstige Hochschulzugangsberechtigung', '{\"Sonstige Hochschulzugangsberechtigung (z.B. Berufsreifeprüfung)\", \"Other university entrance qualification (e.g. \'Berufsreifeprüfung\')\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(141, 'Akademie', '{\"Akademie (z.B. PÄDAK, SOZAK)\", \"Academy (for example PÄDAK, SOZAK)\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(142, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(210, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(220, 'Ausbildung ohne Hochschulzugangsberechtigung', '{\"Lehre oder mittlere Schule ohne Matura/Ausbildung ohne Hochschulzugangsberechtigung\", \"Apprenticeship or school for intermediate vocational education (education without university entrance qualification)\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(230, 'Ausbildung mit Hochschulzugangsberechtigung', '{\"Höhere Schule mit Matura / Ausbildung mit Hochschulzugangsberechtigung (z.B. Abitur)\", \"Higher secondary school with university entrance qualification\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(240, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}', false);
INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(999, 'unbekannt', '{\"Ich weiß nicht, welchen Abschluss meine erziehungsberechtigte Person erlangt hat.\", \"I do not know what degree my legal guardian got.\"}');
";
From 68fbc13a691c6f791f72faa711f128d9682e2204 Mon Sep 17 00:00:00 2001
From: KarpAlex
Date: Sat, 15 Jul 2023 19:57:51 +0200
Subject: [PATCH 03/15] added first version of uhstat1 form, added unique
constraint for person_id in uhstat1daten table, added permissions for
uhstat1daten sequence
---
application/controllers/codex/UHSTAT1.php | 301 ++++++++++++++++++
application/models/codex/Abschluss_model.php | 28 ++
.../models/codex/Uhstat1daten_model.php | 14 +
application/views/codex/uhstat1.php | 217 +++++++++++++
...uhstat1_daten_ueber_das_bewerbungstool.php | 6 +-
5 files changed, 565 insertions(+), 1 deletion(-)
create mode 100644 application/controllers/codex/UHSTAT1.php
create mode 100644 application/models/codex/Abschluss_model.php
create mode 100644 application/models/codex/Uhstat1daten_model.php
create mode 100644 application/views/codex/uhstat1.php
diff --git a/application/controllers/codex/UHSTAT1.php b/application/controllers/codex/UHSTAT1.php
new file mode 100644
index 000000000..071368aae
--- /dev/null
+++ b/application/controllers/codex/UHSTAT1.php
@@ -0,0 +1,301 @@
+ 'admin:r',
+ 'saveUHSTAT1Data' => 'admin:rw'
+ )
+ );
+
+ // load ci libs
+ $this->load->library('form_validation');
+
+ // load ci helpers
+ $this->load->helper(array('form', 'url'));
+
+ // load models
+ $this->load->model('codex/Oehbeitrag_model', 'OehbeitragModel');
+ $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
+ $this->load->model('system/Sprache_model', 'SpracheModel');
+ $this->load->model('codex/Abschluss_model', 'AbschlussModel');
+ $this->load->model('codex/Uhstat1daten_model', 'Uhstat1datenModel');
+
+ $this->loadPhrases(
+ array(
+ 'ui',
+ 'uhstat'
+ )
+ );
+ }
+
+ public function index()
+ {
+ $formData = $this->_getFormData();
+
+ if (!hasData($formData)) show_error("No form data could be loaded");
+
+ $this->load->view("codex/uhstat1.php", array('formData' => getData($formData)));
+ }
+
+ /**
+ * Add or update UHSTAT1 data
+ */
+ public function saveUHSTAT1Data()
+ {
+ $person_id = $this->input->get('person_id');
+
+ if (!isset($person_id) || !is_numeric($person_id)) show_error("Person Id missing");
+
+ $this->form_validation->set_error_delimiters('', '');
+
+ // check required fields
+ $this->form_validation->set_rules('geburtsstaat', 'Geburtsstaat', 'required', array('required' => $this->p->t('uhstat', 'feldFehlt')));
+ $this->form_validation->set_rules(
+ 'mutter_geburtsstaat',
+ 'Geburtsstaat Mutter',
+ 'required',
+ array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ );
+ $this->form_validation->set_rules(
+ 'mutter_bildungsstaat',
+ 'Bildungsstaat Mutter',
+ 'required',
+ array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ );
+ $this->form_validation->set_rules(
+ 'mutter_geburtsjahr',
+ 'Geburtsjahr Mutter',
+ 'required',
+ array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ );
+ $this->form_validation->set_rules(
+ 'mutter_bildungmax',
+ 'Höchste Ausbildung Mutter',
+ 'required|callback_bildungsstaat_bildungmax_check[m]',
+ array(
+ 'required' => $this->p->t('uhstat', 'feldFehlt'),
+ 'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung')
+ //'Land der höchsten Ausbildung muss mit Bildungsstaat übereinstimmen'
+ // Bildungsstaat should correspond to state of bildung max
+ )
+ );
+ $this->form_validation->set_rules(
+ 'vater_geburtsstaat',
+ 'Geburtsstaat Vater',
+ 'required',
+ array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ );
+ $this->form_validation->set_rules(
+ 'vater_bildungsstaat',
+ 'Bildungsstaat Vater',
+ 'required',
+ array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ );
+ $this->form_validation->set_rules(
+ 'vater_geburtsjahr',
+ 'Geburtsjahr Vater',
+ 'required',
+ array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ );
+ $this->form_validation->set_rules(
+ 'vater_bildungmax',
+ 'Höchste Ausbildung Vater',
+ 'required|callback_bildungsstaat_bildungmax_check[v]',
+ array(
+ 'required' => $this->p->t('uhstat', 'feldFehlt'),
+ 'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung')
+ )
+ );
+
+ $uhstat1datenRes = null;
+ if ($this->form_validation->run()) // if valid
+ {
+ // get post fields
+ $geburtsstaat = $this->input->post('geburtsstaat');
+ $mutter_geburtsstaat = $this->input->post('mutter_geburtsstaat');
+ $mutter_geburtsjahr = $this->input->post('mutter_geburtsjahr');
+ $mutter_bildungsstaat = $this->input->post('mutter_bildungsstaat');
+ $mutter_bildungmax = $this->input->post('mutter_bildungmax');
+ $vater_geburtsstaat = $this->input->post('vater_geburtsstaat');
+ $vater_geburtsjahr = $this->input->post('vater_geburtsjahr');
+ $vater_bildungsstaat = $this->input->post('vater_bildungsstaat');
+ $vater_bildungmax = $this->input->post('vater_bildungmax');
+
+ $uhstat1datenloadRes = $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id));
+
+ if (hasData($uhstat1datenloadRes))
+ {
+ $uhstat1datenRes = $this->Uhstat1datenModel->update(
+ array('person_id' => $person_id),
+ array(
+ 'geburtsstaat' => $geburtsstaat,
+ 'mutter_geburtsstaat' => $mutter_geburtsstaat,
+ 'mutter_geburtsjahr' => $mutter_geburtsjahr,
+ 'mutter_bildungsstaat' => $mutter_bildungsstaat,
+ 'mutter_bildungmax' => $mutter_bildungmax,
+ 'vater_geburtsstaat' => $vater_geburtsstaat,
+ 'vater_geburtsjahr' => $vater_geburtsjahr,
+ 'vater_bildungsstaat' => $vater_bildungsstaat,
+ 'vater_bildungmax' => $vater_bildungmax
+ )
+ );
+ }
+ else
+ {
+ $uhstat1datenRes = $this->Uhstat1datenModel->insert(
+ array(
+ 'geburtsstaat' => $geburtsstaat,
+ 'mutter_geburtsstaat' => $mutter_geburtsstaat,
+ 'mutter_geburtsjahr' => $mutter_geburtsjahr,
+ 'mutter_bildungsstaat' => $mutter_bildungsstaat,
+ 'mutter_bildungmax' => $mutter_bildungmax,
+ 'vater_geburtsstaat' => $vater_geburtsstaat,
+ 'vater_geburtsjahr' => $vater_geburtsjahr,
+ 'vater_bildungsstaat' => $vater_bildungsstaat,
+ 'vater_bildungmax' => $vater_bildungmax,
+ 'person_id' =>$person_id
+ )
+ );
+ }
+ }
+
+ $formData = $this->_getFormData();
+
+ if (!hasData($formData)) show_error("No data found");
+
+ // pass success/error messages to view
+ $successMessage = isset($uhstat1datenRes) && isSuccess($uhstat1datenRes) ? $this->p->t('uhstat', 'erfolgreichGespeichert') : '';
+ $errorMessage = isset($uhstat1datenRes) && isError($uhstat1datenRes) ? $this->p->t('uhstat', 'fehlerBeimSpeichern') : '';
+
+ // load view with form data
+ $this->load->view("codex/uhstat1.php", array(
+ 'formData' => getData($formData),
+ 'successMessage' => $successMessage,
+ 'errorMessage' => $errorMessage
+ ));
+ }
+
+ /**
+ * Check callback for Bildungsstaat - if Bildungsstaat is Austria, a highest education should be in Austria.
+ * @param $bildungmax
+ * @param $bildungsstaat_typ - mother (m) or father (v)
+ * @return bool true if valid, false otherwise
+ */
+ public function bildungsstaat_bildungmax_check($bildungmax, $bildungsstaat_typ)
+ {
+ // valid if no type passed
+ if (!isset($bildungsstaat_typ)) return true;
+
+ // get correct input
+ if ($bildungsstaat_typ == 'm') // mutter
+ $bildungsstaat = $this->input->post('mutter_bildungsstaat');
+ elseif ($bildungsstaat_typ == 'v') // vater
+ $bildungsstaat = $this->input->post('vater_bildungsstaat');
+ else
+ return true;
+
+ if (!isset($bildungsstaat)) return true;
+
+ // find out if abschluss is in Austria
+ $this->AbschlussModel->addSelect("in_oesterreich");
+ $abschlussRes = $this->AbschlussModel->load($bildungmax);
+
+ if (hasData($abschlussRes))
+ {
+ $in_oesterreich = getData($abschlussRes)[0]->in_oesterreich;
+ // invalid if abschluss in Austria, but not Bildungsstaat, or abschluss not in Austria, but Bildungsstaat in Austria
+ return ($in_oesterreich && $bildungsstaat == self::CODEX_OESTERREICH) || (!$in_oesterreich && $bildungsstaat != self::CODEX_OESTERREICH);
+ }
+
+ return false;
+ }
+
+ /**
+ * Gets initial data needed to display UHSTAT1 form.
+ */
+ private function _getFormData()
+ {
+ $person_id = $this->input->get('person_id');
+
+ if (!isset($person_id) || !is_numeric($person_id)) return error("Person Id missing");
+
+ $formData = array(
+ 'nation' => array(),
+ 'abschluss_oesterreich' => array(),
+ 'abschluss_nicht_oesterreich' => array(),
+ 'jahre' => array(),
+ 'languageIdx' => $this->_getLanguageIndex(),
+ 'person_id' => $person_id
+ );
+
+ $nationTextFieldName = $formData['languageIdx'] == 1 ? 'langtext' : 'engltext';
+
+ // get nation list
+ $this->load->model('codex/Nation_model', 'NationModel');
+
+ $this->NationModel->addSelect("nation_code, $nationTextFieldName AS nation_text");
+ $this->NationModel->addOrder("nation_text");
+ $nationRes = $this->NationModel->load();
+
+ if (isError($nationRes)) return $nationRes;
+
+ if (hasData($nationRes)) $formData['nation'] = getData($nationRes);
+
+ // get abschluss list
+ $abschlussRes = $this->AbschlussModel->getActiveAbschluesse();
+
+ if (isError($abschlussRes)) return $abschlussRes;
+
+ $abschlussData = getData($abschlussRes);
+
+ if (hasData($abschlussRes))
+ {
+ foreach (getData($abschlussRes) as $abschluss)
+ {
+ if ($abschluss->in_oesterreich === true)
+ $formData['abschluss_oesterreich'][] = $abschluss;
+ elseif ($abschluss->in_oesterreich === false)
+ $formData['abschluss_nicht_oesterreich'][] = $abschluss;
+ else
+ {
+ $formData['abschluss_oesterreich'][] = $abschluss;
+ $formData['abschluss_nicht_oesterreich'][] = $abschluss;
+ }
+ }
+ }
+
+ // get realistic birth years, dated back from current year
+ $currYear = date("Y");
+ $formData['jahre'] = range($currYear - self::UPPER_BOUNDARY_YEARS, $currYear - self::LOWER_BOUNDARY_YEARS);
+
+ return success($formData);
+ }
+
+ /**
+ * Gets language index of currently logged in user.
+ * @return int (the index, start at 1)
+ */
+ private function _getLanguageIndex()
+ {
+ $idx = 1;
+ $this->SpracheModel->addSelect('index');
+ $langRes = $this->SpracheModel->loadWhere(array('sprache' => getUserLanguage()));
+
+ if (hasData($langRes))
+ {
+ $idx = getData($langRes)[0]->index;
+ }
+
+ return $idx;
+ }
+}
diff --git a/application/models/codex/Abschluss_model.php b/application/models/codex/Abschluss_model.php
new file mode 100644
index 000000000..93b940ed2
--- /dev/null
+++ b/application/models/codex/Abschluss_model.php
@@ -0,0 +1,28 @@
+dbTable = 'bis.tbl_abschluss';
+ $this->pk = 'ausbildung_code';
+ }
+
+ public function getActiveAbschluesse()
+ {
+ return $this->execQuery(
+ '
+ SELECT
+ ausbildung_code, bezeichnung, in_oesterreich
+ FROM
+ bis.tbl_abschluss
+ WHERE
+ aktiv
+ ORDER BY CASE WHEN in_oesterreich THEN 0 ELSE 1 END, ausbildung_code'
+ );
+ }
+}
diff --git a/application/models/codex/Uhstat1daten_model.php b/application/models/codex/Uhstat1daten_model.php
new file mode 100644
index 000000000..9bca44b58
--- /dev/null
+++ b/application/models/codex/Uhstat1daten_model.php
@@ -0,0 +1,14 @@
+dbTable = 'bis.tbl_uhstat1daten';
+ $this->pk = 'uhstat1daten_id';
+ }
+}
diff --git a/application/views/codex/uhstat1.php b/application/views/codex/uhstat1.php
new file mode 100644
index 000000000..48397a387
--- /dev/null
+++ b/application/views/codex/uhstat1.php
@@ -0,0 +1,217 @@
+load->view(
+ 'templates/FHC-Header',
+ array(
+ 'title' => 'UHSTAT1Formular',
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'dialoglib' => true,
+ 'phrases' => array(
+ 'ui' => array('speichern')
+ )
+ )
+);
+?>
+
+
+
+
+ p->t('uhstat', 'uhstat1AnmeldungUeberschrift') ?>
+
+
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
index 7395ac0bc..bbd168073 100644
--- a/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
+++ b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
@@ -12,7 +12,7 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_abschluss LIMIT 1'))
bezeichnung character varying(128)[],
aktiv boolean NOT NULL DEFAULT true,
in_oesterreich boolean,
- CONSTRAINT tbl_abschluss_pk PRIMARY KEY (ausbildung_code)
+ CONSTRAINT pk_tbl_abschluss PRIMARY KEY (ausbildung_code)
);
COMMENT ON TABLE bis.tbl_abschluss IS 'Key-Table of graduation';
@@ -102,6 +102,8 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1'))
REFERENCES public.tbl_person (person_id) MATCH SIMPLE
ON DELETE RESTRICT ON UPDATE CASCADE;
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT uk_uhstat1daten_person_id UNIQUE(person_id);
+
COMMENT ON TABLE bis.tbl_uhstat1daten IS 'UHSTAT1 data for a person (statistical data)';
COMMENT ON COLUMN bis.tbl_uhstat1daten.geburtsstaat IS 'Birthplace of person';
COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsstaat IS 'Birth country of mother of person';
@@ -115,6 +117,8 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1'))
GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO web;
GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO vilesci;
+ GRANT SELECT, UPDATE ON bis.tbl_uhstat1daten_uhstat1daten_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON bis.tbl_uhstat1daten_uhstat1daten_id_seq TO web;
";
if(!$db->db_query($qry))
From f5ace15f7b9c39519377e1c1edc1e8957976f1c3 Mon Sep 17 00:00:00 2001
From: KarpAlex
Date: Mon, 24 Jul 2023 14:15:22 +0200
Subject: [PATCH 04/15] added phrases to UHSTAT1 form
---
application/controllers/codex/UHSTAT1.php | 24 +-
application/views/codex/uhstat1.php | 81 +++--
system/phrasesupdate.php | 420 ++++++++++++++++++++++
3 files changed, 494 insertions(+), 31 deletions(-)
diff --git a/application/controllers/codex/UHSTAT1.php b/application/controllers/codex/UHSTAT1.php
index 071368aae..7deeb9eea 100644
--- a/application/controllers/codex/UHSTAT1.php
+++ b/application/controllers/codex/UHSTAT1.php
@@ -42,6 +42,8 @@ class UHSTAT1 extends FHC_Controller
{
$formData = $this->_getFormData();
+ if (isError($formData)) show_error(getError($formData));
+
if (!hasData($formData)) show_error("No form data could be loaded");
$this->load->view("codex/uhstat1.php", array('formData' => getData($formData)));
@@ -59,31 +61,31 @@ class UHSTAT1 extends FHC_Controller
$this->form_validation->set_error_delimiters('', '');
// check required fields
- $this->form_validation->set_rules('geburtsstaat', 'Geburtsstaat', 'required', array('required' => $this->p->t('uhstat', 'feldFehlt')));
+ $this->form_validation->set_rules('geburtsstaat', 'Geburtsstaat', 'required', array('required' => $this->p->t('uhstat', 'angabeFehlt')));
$this->form_validation->set_rules(
'mutter_geburtsstaat',
'Geburtsstaat Mutter',
'required',
- array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ array('required' => $this->p->t('uhstat', 'angabeFehlt'))
);
$this->form_validation->set_rules(
'mutter_bildungsstaat',
'Bildungsstaat Mutter',
'required',
- array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ array('required' => $this->p->t('uhstat', 'angabeFehlt'))
);
$this->form_validation->set_rules(
'mutter_geburtsjahr',
'Geburtsjahr Mutter',
'required',
- array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ array('required' => $this->p->t('uhstat', 'angabeFehlt'))
);
$this->form_validation->set_rules(
'mutter_bildungmax',
'Höchste Ausbildung Mutter',
'required|callback_bildungsstaat_bildungmax_check[m]',
array(
- 'required' => $this->p->t('uhstat', 'feldFehlt'),
+ 'required' => $this->p->t('uhstat', 'angabeFehlt'),
'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung')
//'Land der höchsten Ausbildung muss mit Bildungsstaat übereinstimmen'
// Bildungsstaat should correspond to state of bildung max
@@ -93,26 +95,26 @@ class UHSTAT1 extends FHC_Controller
'vater_geburtsstaat',
'Geburtsstaat Vater',
'required',
- array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ array('required' => $this->p->t('uhstat', 'angabeFehlt'))
);
$this->form_validation->set_rules(
'vater_bildungsstaat',
'Bildungsstaat Vater',
'required',
- array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ array('required' => $this->p->t('uhstat', 'angabeFehlt'))
);
$this->form_validation->set_rules(
'vater_geburtsjahr',
'Geburtsjahr Vater',
'required',
- array('required' => $this->p->t('uhstat', 'feldFehlt'))
+ array('required' => $this->p->t('uhstat', 'angabeFehlt'))
);
$this->form_validation->set_rules(
'vater_bildungmax',
'Höchste Ausbildung Vater',
'required|callback_bildungsstaat_bildungmax_check[v]',
array(
- 'required' => $this->p->t('uhstat', 'feldFehlt'),
+ 'required' => $this->p->t('uhstat', 'angabeFehlt'),
'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung')
)
);
@@ -171,7 +173,9 @@ class UHSTAT1 extends FHC_Controller
$formData = $this->_getFormData();
- if (!hasData($formData)) show_error("No data found");
+ if (isError($formData)) show_error(getError($formData));
+
+ if (!hasData($formData)) show_error("No form data could be loaded");
// pass success/error messages to view
$successMessage = isset($uhstat1datenRes) && isSuccess($uhstat1datenRes) ? $this->p->t('uhstat', 'erfolgreichGespeichert') : '';
diff --git a/application/views/codex/uhstat1.php b/application/views/codex/uhstat1.php
index 48397a387..918364cf6 100644
--- a/application/views/codex/uhstat1.php
+++ b/application/views/codex/uhstat1.php
@@ -19,11 +19,22 @@ $this->load->view(
p->t('uhstat', 'uhstat1AnmeldungUeberschrift') ?>
+
+ p->t('uhstat', 'uhstat1AnmeldungEinleitungstext') ?>
+
+
-
load->view('templates/FHC-Footer'); ?>
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 0bc748c80..09f2633b8 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -18123,6 +18123,426 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'angabeFehlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angabe fehlt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Value is missing',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'ausbildungBildungsstaatUebereinstimmung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Höchster Abschluss (unterteilt in Österreich oder im Ausland/unbekannt) passt nicht zum Staat des höchsten Abschlusses.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Highest completed level of education (divided into those acquired in Austria and those abroad/unknown) does not match country of the highest completed level of education',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erfolgreichGespeichert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erfolgreich gespeichert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Saved successfully',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'fehlerBeimSpeichern',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Speichern',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when saving',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'uhstat1AnmeldungUeberschrift',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erhebung bei der Anmeldung zu einem Studium oder bei Studienbeginn',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Survey when applying for a study or at the start of studies',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'uhstat1AnmeldungEinleitungstext',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Senden der Daten ist nur möglich, wenn die Sozialversicherungsnummer (bzw. das Ersatzkennzeichen) gültig ist und alle Fragen beantwortet worden sind. Wenn Sie etwas nicht wissen, wählen Sie die Antwortmöglichkeit „unbekannt“, aber beantworten Sie bitte alle Fragen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Sending the data is only possible if the social security number (or the substitute code) is valid and all questions have been answered. If you don\'t know something, choose the answer option “unknown”, but please answer all questions.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'persoenlicheAngaben',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Persönliche Angaben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Personal data',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'persoenlicheAngabenEinleitungstext',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wenn Sie keine österreichische Sozialversicherungsnummer haben, dann fragen Sie bitte die Hochschule, an der Sie studieren möchten, nach Ihrem Ersatzkennzeichen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'If you do not have an Austrian \'Sozialversicherungsnummer\' (social security number), please ask the university or university college at which you would like to study for your substitute code (\'Ersatzkennzeichen\').',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'angabenErziehungsberechtigte',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angaben zu Ihren Erziehungsberechtigten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Information about your legal guardians',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'angabenErziehungsberechtigteEinleitungstext',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die folgenden Fragen beziehen sich auf Personen, welche für Sie erziehungsberechtigt waren oder sind (Eltern oder jene Personen, die für Sie eine entsprechende Rolle übernommen haben, wie z.B. Stief- oder Pflegeeltern).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The following issues refer to your legal guardians (parents or persons who were in the role of the parents, e.g. stepparents or foster parents).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'bitteAuswaehlen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bitte auswählen...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'please select...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erziehungsberechtigtePersonEins',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erziehungsberechtigte Person 1/Mutter',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Legal guardian 1/mother',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'geburtsjahr',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Geburtsjahr',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'year of birth',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'geburtsstaat',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Geburtsstaat',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'country of birth',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'inDenHeutigenGrenzen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'in den heutigen Grenzen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'in today\'s borders',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'hoechsterAbschlussStaat',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Staat des höchsten Abschlusses',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Country of the highest completed level of education',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'hoechsterAbschluss',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Höchster Abschluss',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Highest completed level of education',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'wennAbschlussInOesterreich',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Falls der höchste Bildungsabschluss in Österreich erworben wurde',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'If the highest level of education was completed in Austria:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'wennAbschlussNichtInOesterreich',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Falls das Land des höchsten erworbenen Bildungsabschlusses unbekannt oder nicht Österreich ist',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'If the country of the highest completed level of education is unknown or not Austria:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erziehungsberechtigtePersonZwei',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erziehungsberechtigte Person 2/Vater',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Legal guardian 2/father',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'pruefenUndSpeichern',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfen und Speichern',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Check and submit',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ )
);
From 1e082ed22524780673b41dee60bc02c1673c6052 Mon Sep 17 00:00:00 2001
From: KarpAlex
Date: Thu, 27 Jul 2023 17:13:31 +0200
Subject: [PATCH 05/15] UHSTAT1 form: removed geburtsnation as it is saved in
person table anyways, started to display existing uhstat data on form load
---
application/controllers/codex/UHSTAT1.php | 73 ++++++++++++++------
application/models/codex/Abschluss_model.php | 8 ++-
application/views/codex/uhstat1.php | 58 +++++-----------
system/phrasesupdate.php | 40 -----------
4 files changed, 73 insertions(+), 106 deletions(-)
diff --git a/application/controllers/codex/UHSTAT1.php b/application/controllers/codex/UHSTAT1.php
index 7deeb9eea..d0663c570 100644
--- a/application/controllers/codex/UHSTAT1.php
+++ b/application/controllers/codex/UHSTAT1.php
@@ -8,6 +8,17 @@ class UHSTAT1 extends FHC_Controller
const LOWER_BOUNDARY_YEARS = 160;
const UPPER_BOUNDARY_YEARS = 20;
+ private $_uhstat1Fields = array(
+ 'mutter_geburtsstaat' => array('name' => 'Geburtsstaat Mutter', 'rules' => array('required')),
+ 'mutter_geburtsjahr' => array('name' => 'Geburtsjahr Mutter', 'rules' => array('required')),
+ 'mutter_bildungsstaat' => array('name' => 'Bildungsstaat Mutter', 'rules' => array('required')),
+ 'mutter_bildungmax' => array('name' => 'Geburtsjahr Mutter', 'rules' => array('required')),
+ 'vater_geburtsstaat' => array('name' => 'Geburtsstaat Vater', 'rules' => array('required')),
+ 'vater_geburtsjahr',
+ 'vater_bildungsstaat',
+ 'vater_bildungmax'
+ );
+
public function __construct()
{
parent::__construct(
@@ -40,13 +51,17 @@ class UHSTAT1 extends FHC_Controller
public function index()
{
- $formData = $this->_getFormData();
+ $formMetaData = $this->_getFormMetaData();
- if (isError($formData)) show_error(getError($formData));
+ if (isError($formMetaData)) show_error(getError($formMetaData));
- if (!hasData($formData)) show_error("No form data could be loaded");
+ if (!hasData($formMetaData)) show_error("No form meta data could be loaded");
- $this->load->view("codex/uhstat1.php", array('formData' => getData($formData)));
+ $uhstatData = $this->_getUHSTAT1Data();
+
+ if (isError($uhstatData)) show_error(getError($uhstatData));
+
+ $this->load->view("codex/uhstat1.php", array('formMetaData' => getData($formMetaData), 'uhstatData' => getData($uhstatData)));
}
/**
@@ -61,7 +76,6 @@ class UHSTAT1 extends FHC_Controller
$this->form_validation->set_error_delimiters('', '');
// check required fields
- $this->form_validation->set_rules('geburtsstaat', 'Geburtsstaat', 'required', array('required' => $this->p->t('uhstat', 'angabeFehlt')));
$this->form_validation->set_rules(
'mutter_geburtsstaat',
'Geburtsstaat Mutter',
@@ -171,11 +185,11 @@ class UHSTAT1 extends FHC_Controller
}
}
- $formData = $this->_getFormData();
+ $formMetaData = $this->_getFormMetaData();
- if (isError($formData)) show_error(getError($formData));
+ if (isError($formMetaData)) show_error(getError($formMetaData));
- if (!hasData($formData)) show_error("No form data could be loaded");
+ if (!hasData($formMetaData)) show_error("No form data could be loaded");
// pass success/error messages to view
$successMessage = isset($uhstat1datenRes) && isSuccess($uhstat1datenRes) ? $this->p->t('uhstat', 'erfolgreichGespeichert') : '';
@@ -183,7 +197,7 @@ class UHSTAT1 extends FHC_Controller
// load view with form data
$this->load->view("codex/uhstat1.php", array(
- 'formData' => getData($formData),
+ 'formMetaData' => getData($formMetaData),
'successMessage' => $successMessage,
'errorMessage' => $errorMessage
));
@@ -227,22 +241,23 @@ class UHSTAT1 extends FHC_Controller
/**
* Gets initial data needed to display UHSTAT1 form.
*/
- private function _getFormData()
+ private function _getFormMetaData()
{
$person_id = $this->input->get('person_id');
if (!isset($person_id) || !is_numeric($person_id)) return error("Person Id missing");
- $formData = array(
+ $languageIdx = $this->_getLanguageIndex();
+
+ $formMetaData = array(
'nation' => array(),
'abschluss_oesterreich' => array(),
'abschluss_nicht_oesterreich' => array(),
'jahre' => array(),
- 'languageIdx' => $this->_getLanguageIndex(),
'person_id' => $person_id
);
- $nationTextFieldName = $formData['languageIdx'] == 1 ? 'langtext' : 'engltext';
+ $nationTextFieldName = $languageIdx == 1 ? 'langtext' : 'engltext';
// get nation list
$this->load->model('codex/Nation_model', 'NationModel');
@@ -253,10 +268,10 @@ class UHSTAT1 extends FHC_Controller
if (isError($nationRes)) return $nationRes;
- if (hasData($nationRes)) $formData['nation'] = getData($nationRes);
+ if (hasData($nationRes)) $formMetaData['nation'] = getData($nationRes);
// get abschluss list
- $abschlussRes = $this->AbschlussModel->getActiveAbschluesse();
+ $abschlussRes = $this->AbschlussModel->getActiveAbschluesse($languageIdx);
if (isError($abschlussRes)) return $abschlussRes;
@@ -267,22 +282,38 @@ class UHSTAT1 extends FHC_Controller
foreach (getData($abschlussRes) as $abschluss)
{
if ($abschluss->in_oesterreich === true)
- $formData['abschluss_oesterreich'][] = $abschluss;
+ $formMetaData['abschluss_oesterreich'][] = $abschluss;
elseif ($abschluss->in_oesterreich === false)
- $formData['abschluss_nicht_oesterreich'][] = $abschluss;
+ $formMetaData['abschluss_nicht_oesterreich'][] = $abschluss;
else
{
- $formData['abschluss_oesterreich'][] = $abschluss;
- $formData['abschluss_nicht_oesterreich'][] = $abschluss;
+ $formMetaData['abschluss_oesterreich'][] = $abschluss;
+ $formMetaData['abschluss_nicht_oesterreich'][] = $abschluss;
}
}
}
// get realistic birth years, dated back from current year
$currYear = date("Y");
- $formData['jahre'] = range($currYear - self::UPPER_BOUNDARY_YEARS, $currYear - self::LOWER_BOUNDARY_YEARS);
+ $formMetaData['jahre'] = range($currYear - self::UPPER_BOUNDARY_YEARS, $currYear - self::LOWER_BOUNDARY_YEARS);
- return success($formData);
+ return success($formMetaData);
+ }
+
+ /**
+ * Gets initial data needed to display UHSTAT1 form.
+ */
+ private function _getUHSTAT1Data()
+ {
+ $person_id = $this->input->get('person_id');
+
+ if (!isset($person_id) || !is_numeric($person_id)) return error("Person Id missing");
+
+ $this->Uhstat1datenModel->addSelect("
+ mutter_geburtsstaat, mutter_geburtsjahr, mutter_bildungsstaat, mutter_bildungmax,
+ vater_geburtsstaat, vater_geburtsjahr, vater_bildungsstaat, vater_bildungmax"
+ );
+ return $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id));
}
/**
diff --git a/application/models/codex/Abschluss_model.php b/application/models/codex/Abschluss_model.php
index 93b940ed2..2907deff1 100644
--- a/application/models/codex/Abschluss_model.php
+++ b/application/models/codex/Abschluss_model.php
@@ -12,17 +12,19 @@ class Abschluss_model extends DB_Model
$this->pk = 'ausbildung_code';
}
- public function getActiveAbschluesse()
+ public function getActiveAbschluesse($languageIndex)
{
return $this->execQuery(
'
SELECT
- ausbildung_code, bezeichnung, in_oesterreich
+ ausbildung_code, bezeichnung[?], in_oesterreich
FROM
bis.tbl_abschluss
WHERE
aktiv
- ORDER BY CASE WHEN in_oesterreich THEN 0 ELSE 1 END, ausbildung_code'
+ ORDER BY
+ CASE WHEN in_oesterreich THEN 0 ELSE 1 END, ausbildung_code',
+ array($languageIndex)
);
}
}
diff --git a/application/views/codex/uhstat1.php b/application/views/codex/uhstat1.php
index 918364cf6..c670373d0 100644
--- a/application/views/codex/uhstat1.php
+++ b/application/views/codex/uhstat1.php
@@ -23,34 +23,7 @@ $this->load->view(
p->t('uhstat', 'uhstat1AnmeldungEinleitungstext') ?>
-