public function getOptAccId() { $criteria = new CDbCriteria(); $criteria->condition = "num = :num"; $criteria->addCondition("account_id<>:account_id"); $criteria->params = array(':num' => $this->num, ':account_id' => $this->account_id); $models = Transactions::findAll($criteria); $retacc = 0; $maxsum = 0; foreach ($models as $model) { if (!$retacc && !$maxsum) { $maxsum = $model->sum; $retacc = $model->account_id; } if ($this->sum <= 0.0) { //< if ($model->sum > $maxsum) { $maxsum = $model->sum; $retacc = $model->account_id; } } else { if ($model->sum < $maxsum) { $maxsum = $model->sum; $retacc = $model->account_id; } } } return $retacc; }