public function testUpdateTreatments() { $event = $this->ev('event1'); $el = new models\Element_OphCiExamination_Dilation(); $el->event_id = $event->id; $el->eye_id = \Eye::BOTH; $el->left_treatments = array($this->getValidTreatmentMock()); $el->right_treatments = array($this->getValidTreatmentMock()); $el->save(); $this->delete_element_ids[] = $el->id; $el->updateTreatments(\Eye::LEFT, array(array('drug_id' => $this->drugs['drug1']['id'], 'drops' => 2, 'treatment_time' => '11:00'))); $el->updateTreatments(\Eye::RIGHT, array(array('drug_id' => $this->drugs['drug2']['id'], 'drops' => 2, 'treatment_time' => '11:00'))); $this->assertCount(1, models\OphCiExamination_Dilation_Treatment::model()->findAll('element_id = ? AND side = ?', array($el->id, models\OphCiExamination_Dilation_Treatment::LEFT))); $this->assertCount(1, models\OphCiExamination_Dilation_Treatment::model()->findAll('element_id = ? AND side = ?', array($el->id, models\OphCiExamination_Dilation_Treatment::RIGHT))); }
/** * set the dilation treatments against the element from the provided data. * * @param models\Element_OphCiExamination_Dilation $element * @param $data * @param $index */ protected function setComplexAttributes_Element_OphCiExamination_Dilation(models\Element_OphCiExamination_Dilation $element, $data, $index) { $model_name = \CHtml::modelName($element); foreach (array('left' => \Eye::LEFT, 'right' => \Eye::RIGHT) as $side => $eye_id) { $dilations = array(); $checker = 'has' . ucfirst($side); if ($element->{$checker}()) { if (isset($data[$model_name][$side . '_treatments'])) { foreach ($data[$model_name][$side . '_treatments'] as $idx => $p_treat) { if (@$p_treat['id']) { $dilation = models\OphCiExamination_Dilation_Treatment::model()->findByPk($p_treat['id']); } else { $dilation = new models\OphCiExamination_Dilation_Treatment(); } $dilation->attributes = $p_treat; $dilations[] = $dilation; } } } $element->{$side . '_treatments'} = $dilations; } }