Element_OphTrConsent_Procedure::afterSave PHP Метод

afterSave() защищенный Метод

TODO: get POST handling out of here.
protected afterSave ( )
    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();
    }