OEModule\OphCiExamination\controllers\DefaultController::setComplexAttributes_Element_OphCiExamination_ColourVision PHP Method

setComplexAttributes_Element_OphCiExamination_ColourVision() protected method

Set the colour vision readings against the Element_OphCiExamination_ColourVision element.
protected setComplexAttributes_Element_OphCiExamination_ColourVision ( Element_OphCiExamination_ColourVision $element, $data, $index )
$element Element_OphCiExamination_ColourVision
$data
$index
    protected function setComplexAttributes_Element_OphCiExamination_ColourVision($element, $data, $index)
    {
        $model_name = \CHtml::modelName($element);
        foreach (array('left' => \Eye::LEFT, 'right' => \Eye::RIGHT) as $side => $eye_id) {
            $readings = array();
            $checker = 'has' . ucfirst($side);
            if ($element->{$checker}()) {
                if (isset($data[$model_name][$side . '_readings'])) {
                    foreach ($data[$model_name][$side . '_readings'] as $p_read) {
                        if (@$p_read['id']) {
                            if (!($reading = models\OphCiExamination_ColourVision_Reading::model()->findByPk($p_read['id']))) {
                                $reading = new models\OphCiExamination_ColourVision_Reading();
                            }
                        } else {
                            $reading = new models\OphCiExamination_ColourVision_Reading();
                        }
                        $reading->attributes = $p_read;
                        $reading->eye_id = $eye_id;
                        $readings[] = $reading;
                    }
                }
            }
            $element->{$side . '_readings'} = $readings;
        }
    }
DefaultController