protected function afterSave()
{
foreach ($_POST['Procedures_procedures'] as $procedure_id) {
if (!EtOphtrconsentProcedureProceduresProcedures::model()->find('element_id=? and proc_id=?', array($this->id, $procedure_id))) {
$p = new EtOphtrconsentProcedureProceduresProcedures();
$p->element_id = $this->id;
$p->proc_id = $procedure_id;
if (!$p->save()) {
throw new Exception('Unable to save procedure item: ' . print_r($p->getErrors(), true));
}
}
}
foreach (EtOphtrconsentProcedureProceduresProcedures::model()->findAll('element_id=?', array($this->id)) as $p) {
if (!in_array($p->proc_id, $_POST['Procedures_procedures'])) {
if (!$p->delete()) {
throw new Exception('Unable to delete procedure item: ' . print_r($p->getErrors(), true));
}
}
}
if (isset($_POST['Procedures_additional'])) {
foreach ($_POST['Procedures_additional'] as $procedure_id) {
if (!EtOphtrconsentProcedureAddProcsAddProcs::model()->find('element_id=? and proc_id=?', array($this->id, $procedure_id))) {
$p = new EtOphtrconsentProcedureAddProcsAddProcs();
$p->element_id = $this->id;
$p->proc_id = $procedure_id;
if (!$p->save()) {
throw new Exception('Unable to save additional procedure item: ' . print_r($p->getErrors(), true));
}
}
}
foreach (EtOphtrconsentProcedureAddProcsAddProcs::model()->findAll('element_id=?', array($this->id)) as $p) {
if (!in_array($p->proc_id, $_POST['Procedures_additional'])) {
if (!$p->delete()) {
throw new Exception('Unable to delete additional procedure item: ' . print_r($p->getErrors(), true));
}
}
}
} else {
foreach (EtOphtrconsentProcedureAddProcsAddProcs::model()->findAll('element_id=?', array($this->id)) as $p) {
if (!$p->delete()) {
throw new Exception('Unable to delete additional procedure item: ' . print_r($p->getErrors(), true));
}
}
}
return parent::afterSave();
}