diff --git a/application/controllers/codex/UHSTAT1.php b/application/controllers/codex/UHSTAT1.php index d0663c570..3ba4760a5 100644 --- a/application/controllers/codex/UHSTAT1.php +++ b/application/controllers/codex/UHSTAT1.php @@ -8,16 +8,7 @@ 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' - ); + private $_uhstat1Fields = array(); public function __construct() { @@ -47,6 +38,33 @@ class UHSTAT1 extends FHC_Controller 'uhstat' ) ); + + // set form field information + $this->_uhstat1Fields = array( + 'mutter_geburtsstaat' => array('name' => 'Geburtsstaat Mutter'), + 'mutter_geburtsjahr' => array('name' => 'Geburtsjahr Mutter'), + 'mutter_bildungsstaat' => array('name' => 'Bildungsstaat Mutter'), + 'mutter_bildungmax' => array( + 'name' => 'Geburtsjahr Mutter', + 'rules' => array( + 'callback_bildungsstaat_bildungmax_check[m]' => array( + 'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung') + ) + ) + ), + 'vater_geburtsstaat' => array('name' => 'Geburtsstaat Vater'), + 'vater_geburtsjahr' => array('name' => 'Geburtsjahr Vater'), + 'vater_bildungsstaat' => array('name' => 'Bildungsstaat Vater'), + 'vater_bildungmax' => array('name' => 'Geburtsjahr Vater'), + 'vater_bildungmax' => array( + 'name' => 'Geburtsjahr Vater', + 'rules' => array( + 'callback_bildungsstaat_bildungmax_check[v]' => array( + 'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung') + ) + ) + ) + ); } public function index() @@ -61,7 +79,13 @@ class UHSTAT1 extends FHC_Controller if (isError($uhstatData)) show_error(getError($uhstatData)); - $this->load->view("codex/uhstat1.php", array('formMetaData' => getData($formMetaData), 'uhstatData' => getData($uhstatData))); + $readonly = hasData($uhstatData); + + $this->load->view("codex/uhstat1.php", array( + 'formMetaData' => getData($formMetaData), + 'uhstatData' => getData($uhstatData), + 'readonly' => $readonly) + ); } /** @@ -75,77 +99,39 @@ class UHSTAT1 extends FHC_Controller $this->form_validation->set_error_delimiters('', ''); - // check required fields - $this->form_validation->set_rules( - 'mutter_geburtsstaat', - 'Geburtsstaat Mutter', - 'required', - array('required' => $this->p->t('uhstat', 'angabeFehlt')) - ); - $this->form_validation->set_rules( - 'mutter_bildungsstaat', - 'Bildungsstaat Mutter', - 'required', - array('required' => $this->p->t('uhstat', 'angabeFehlt')) - ); - $this->form_validation->set_rules( - 'mutter_geburtsjahr', - 'Geburtsjahr Mutter', - 'required', - 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', '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 - ) - ); - $this->form_validation->set_rules( - 'vater_geburtsstaat', - 'Geburtsstaat Vater', - 'required', - array('required' => $this->p->t('uhstat', 'angabeFehlt')) - ); - $this->form_validation->set_rules( - 'vater_bildungsstaat', - 'Bildungsstaat Vater', - 'required', - array('required' => $this->p->t('uhstat', 'angabeFehlt')) - ); - $this->form_validation->set_rules( - 'vater_geburtsjahr', - 'Geburtsjahr Vater', - 'required', - 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', 'angabeFehlt'), - 'bildungsstaat_bildungmax_check' => $this->p->t('uhstat', 'ausbildungBildungsstaatUebereinstimmung') - ) - ); + foreach ($this->_uhstat1Fields as $field => $params) + { + // all fields are required + $ruleNames = 'required'; + $ruleMessages = array('required' => $this->p->t('uhstat', 'angabeFehlt')); + + // add additional rules + if (isset($params['rules'])) + { + foreach ($params['rules'] as $ruleName => $ruleMessage) + { + $ruleNames .= '|'.$ruleName; + $ruleMessages = array_merge($ruleMessages, $ruleMessage); + } + } + + $this->form_validation->set_rules( + $field, + $params['name'], + $ruleNames, + $ruleMessages + ); + } $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'); + $uhstatData = array(); + foreach ($this->_uhstat1Fields as $field => $params) + { + $uhstatData[$field] = $this->input->post($field); + } $uhstat1datenloadRes = $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id)); @@ -153,34 +139,13 @@ class UHSTAT1 extends FHC_Controller { $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 - ) + $uhstatData ); } 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 - ) + array_merge($uhstatData, array('person_id' => $person_id)) ); } } @@ -194,12 +159,14 @@ class UHSTAT1 extends FHC_Controller // 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') : ''; + $readOnly = isSuccess($uhstat1datenRes); // load view with form data $this->load->view("codex/uhstat1.php", array( 'formMetaData' => getData($formMetaData), 'successMessage' => $successMessage, - 'errorMessage' => $errorMessage + 'errorMessage' => $errorMessage, + 'readonly' => $readOnly )); } @@ -212,7 +179,7 @@ class UHSTAT1 extends FHC_Controller public function bildungsstaat_bildungmax_check($bildungmax, $bildungsstaat_typ) { // valid if no type passed - if (!isset($bildungsstaat_typ)) return true; + if (!isset($bildungsstaat_typ) || !isset($bildungmax)) return true; // get correct input if ($bildungsstaat_typ == 'm') // mutter @@ -309,11 +276,14 @@ class UHSTAT1 extends FHC_Controller 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" + $this->Uhstat1datenModel->addSelect( + implode(', ', array_keys($this->_uhstat1Fields)) ); - return $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id)); + $uhstatRes = $this->Uhstat1datenModel->loadWhere(array('person_id' => $person_id)); + + if (isError($uhstatRes)) return $uhstatRes; + + return success(hasData($uhstatRes) ? getData($uhstatRes)[0] : null); } /** diff --git a/application/views/codex/uhstat1.php b/application/views/codex/uhstat1.php index c670373d0..470aeea84 100644 --- a/application/views/codex/uhstat1.php +++ b/application/views/codex/uhstat1.php @@ -13,7 +13,18 @@ $this->load->view( ) ); ?> - +mutter_geburtsjahr) ? $uhstatData->mutter_geburtsjahr : set_value('mutter_geburtsjahr'); +$mutter_geburtsstaat = isset($uhstatData->mutter_geburtsstaat) ? $uhstatData->mutter_geburtsstaat : set_value('mutter_geburtsstaat'); +$mutter_bildungsstaat = isset($uhstatData->mutter_bildungsstaat) ? $uhstatData->mutter_bildungsstaat : set_value('mutter_bildungsstaat'); +$mutter_bildungmax = isset($uhstatData->mutter_bildungmax) ? $uhstatData->mutter_bildungmax : set_value('mutter_bildungmax'); +$vater_geburtsjahr = isset($uhstatData->vater_geburtsjahr) ? $uhstatData->vater_geburtsjahr : set_value('vater_geburtsjahr'); +$vater_geburtsstaat = isset($uhstatData->vater_geburtsstaat) ? $uhstatData->vater_geburtsstaat : set_value('vater_geburtsstaat'); +$vater_bildungsstaat = isset($uhstatData->vater_bildungsstaat) ? $uhstatData->vater_bildungsstaat : set_value('vater_bildungsstaat'); +$vater_bildungmax = isset($uhstatData->vater_bildungmax) ? $uhstatData->vater_bildungmax : set_value('vater_bildungmax'); +$disabled = $readonly === true ? ' disabled' : ''; +?>

@@ -39,7 +50,7 @@ $this->load->view( @@ -59,7 +70,7 @@ $this->load->view( @@ -79,7 +90,7 @@ $this->load->view( @@ -98,7 +109,7 @@ $this->load->view( @@ -108,7 +119,7 @@ $this->load->view( @@ -126,7 +137,7 @@ $this->load->view( @@ -146,7 +157,7 @@ $this->load->view( @@ -166,7 +177,7 @@ $this->load->view( @@ -187,7 +198,7 @@ $this->load->view( @@ -197,7 +208,7 @@ $this->load->view( 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 bbd168073..3afc4083e 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 @@ -58,7 +58,6 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1')) 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, @@ -70,10 +69,6 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1')) 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; @@ -105,7 +100,6 @@ if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1')) 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'; 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';