Как добавить поле, рассчитанное из другой таблицы моделей в Agile Toolkit?

atk4.2.1

У меня есть две модели Invoice and Payment, я хочу добавить поле (выражение) в счет-фактуру, я могу рассчитать уже оплаченную сумму (у нее может быть несколько частичных платежей), я добавил соединение и выражение, но они не работа, каков правильный способ написать это выражение?

class Model_Invoice extends Model_Table { public $table='invoice'; function init(){ parent::init(); $this->hasOne('Customer'); $this->hasOne('Plan'); $this->addField('date')->type('date'); $this->addField('amount')->type('money'); $this->addField('cancelled')->type('boolean')->defaultValue(false); $this->join('payment','id'); $this->addExpression('amountPaid')->set('sum(payment.amount)') //*****above expression is not working*********// } } 

,

 class Model_Payment extends Model_Table { public $table='payment'; function init(){ parent::init(); $this->hasOne('Invoice'); $this->addField('date')->type('date'); $this->addField('concept'); $this->addField('amount')->type('money'); } } 

Вместо этого я мог бы выражать подобное:

 $this->addExpression('amountPaid')->set('(SELECT sum(amount) FROM payment where invoice_id=**CURRENT ID**)'); 

Но как мне получить идентификатор CURRENT в модели ???

Понял! Это было как-то документировано здесь: http://agiletoolkit.org/learn/understand/model/intro

Это правильный способ сделать это: Inside Model_Invoice:

  $this->hasMany('Payment'); $this->addExpression('amountPaid')->set($this->refSQL('Payment')->sum('amount')); 

Теперь я действительно понял, что такое porpuse of hasMany ()