UHSTAT1 form: removed geburtsstaat from database table, data is shown if uhstat entry already exists

This commit is contained in:
KarpAlex
2023-07-28 22:15:26 +02:00
parent 1e082ed225
commit 349e9b9442
3 changed files with 98 additions and 123 deletions
+76 -106
View File
@@ -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('<span class="text-danger">', '</span>');
// 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);
}
/**
+22 -11
View File
@@ -13,7 +13,18 @@ $this->load->view(
)
);
?>
<?php
// init data
$mutter_geburtsjahr = isset($uhstatData->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' : '';
?>
<div class="container">
<div class="tab-content">
<h3>
@@ -39,7 +50,7 @@ $this->load->view(
<?php foreach ($formMetaData['jahre'] as $jahr): ?>
<option
value="<?php echo $jahr ?>"
<?php echo set_value('mutter_geburtsjahr') == $jahr ? " selected" : "" ?>>
<?php echo $jahr == $mutter_geburtsjahr ? " selected" : "" ?>>
<?php echo $jahr ?>
</option>
<?php endforeach; ?>
@@ -59,7 +70,7 @@ $this->load->view(
<?php foreach ($formMetaData['nation'] as $nation): ?>
<option
value="<?php echo $nation->nation_code ?>"
<?php echo set_value('mutter_geburtsstaat') == $nation->nation_code ? " selected" : "" ?>>
<?php echo $mutter_geburtsstaat == $nation->nation_code ? " selected" : "" ?>>
<?php echo $nation->nation_text ?>
</option>
<?php endforeach; ?>
@@ -79,7 +90,7 @@ $this->load->view(
<?php foreach ($formMetaData['nation'] as $nation): ?>
<option
value="<?php echo $nation->nation_code ?>"
<?php echo set_value('mutter_bildungsstaat') == $nation->nation_code ? " selected" : "" ?>>
<?php echo $mutter_bildungsstaat == $nation->nation_code ? " selected" : "" ?>>
<?php echo $nation->nation_text ?>
</option>
<?php endforeach; ?>
@@ -98,7 +109,7 @@ $this->load->view(
<?php foreach ($formMetaData['abschluss_oesterreich'] as $abschluss): ?>
<option
value="<?php echo $abschluss->ausbildung_code ?>"
<?php echo set_value('mutter_bildungmax') == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $mutter_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $abschluss->bezeichnung ?>
</option>
<?php endforeach; ?>
@@ -108,7 +119,7 @@ $this->load->view(
<?php foreach ($formMetaData['abschluss_nicht_oesterreich'] as $abschluss): ?>
<option
value="<?php echo $abschluss->ausbildung_code ?>"
<?php echo set_value('mutter_bildungmax') == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $mutter_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $abschluss->bezeichnung ?>
</option>
<?php endforeach; ?>
@@ -126,7 +137,7 @@ $this->load->view(
<?php foreach ($formMetaData['jahre'] as $jahr): ?>
<option
value="<?php echo $jahr ?>"
<?php echo set_value('vater_geburtsjahr') == $jahr ? " selected" : "" ?>>
<?php echo $vater_geburtsjahr == $jahr ? " selected" : "" ?>>
<?php echo $jahr ?>
</option>
<?php endforeach; ?>
@@ -146,7 +157,7 @@ $this->load->view(
<?php foreach ($formMetaData['nation'] as $nation): ?>
<option
value="<?php echo $nation->nation_code ?>"
<?php echo set_value('vater_geburtsstaat') == $nation->nation_code ? " selected" : "" ?>>
<?php echo $vater_geburtsstaat == $nation->nation_code ? " selected" : "" ?>>
<?php echo $nation->nation_text ?>
</option>
<?php endforeach; ?>
@@ -166,7 +177,7 @@ $this->load->view(
<?php foreach ($formMetaData['nation'] as $nation): ?>
<option
value="<?php echo $nation->nation_code ?>"
<?php echo set_value('vater_bildungsstaat') == $nation->nation_code ? " selected" : "" ?>>
<?php echo $vater_bildungsstaat == $nation->nation_code ? " selected" : "" ?>>
<?php echo $nation->nation_text ?>
</option>
<?php endforeach; ?>
@@ -187,7 +198,7 @@ $this->load->view(
<?php foreach ($formMetaData['abschluss_oesterreich'] as $abschluss): ?>
<option
value="<?php echo $abschluss->ausbildung_code ?>"
<?php echo set_value('vater_bildungmax') == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $vater_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $abschluss->bezeichnung ?>
</option>
<?php endforeach; ?>
@@ -197,7 +208,7 @@ $this->load->view(
<?php foreach ($formMetaData['abschluss_nicht_oesterreich'] as $abschluss): ?>
<option
value="<?php echo $abschluss->ausbildung_code ?>"
<?php echo set_value('vater_bildungmax') == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $vater_bildungmax == $abschluss->ausbildung_code ? " selected" : "" ?>>
<?php echo $abschluss->bezeichnung ?>
</option>
<?php endforeach; ?>
@@ -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';