Wywołanie Funkcji Z Innego Modelu

Witam, mam problem z wywołaniem funkcji z innego modelu (nie wiem w którym momencie to wywołać).

Mam 2 tabele:

  1. Płatności

  2. Kwartalnie

W tabeli płatności wpisuje kwotę, datę i userId, po utworzeniu przekazuję te dane do formularza Kwartalnie. Po wykonaniu wszystkiego - tzn. stworzeniu płatności z tyloma i tyloma ratami itd chciałbym wywołać funkcję która oblicza mi saldo danego użytkownika w płatnościach.

Tutaj pojawia się problem, ponieważ obliczenia są dokonywane dopiero po wpisaniu i zapisaniu w bazie Kwartalnie. Kolejność: Płatności -> Kwartalnie -> Obliczenie salda. Jak mogę to zrobić ? W modelu Kwartalnie po afterSave() ? W kontrolerze ?

Obliczenie salda


public function getTotals($ids)

        {

                $connection=Yii::app()->db;

                $command=$connection->createCommand("SELECT SUM(rata1) FROM `kwartalnie` where payment_paymentId=$ids");

(...)

               $command5=$connection->createCommand("SELECT SUM(wplata1) FROM `kwartalnie` where payment_paymentId=$ids");

(...)

                $amount = $command->queryScalar();

                $rest = $command5->queryScalar();

                return $wynik = $rest-$amount;

        }

Myślałem nad czymś w rodzaju:

W modelu Kwartalnie funkcja afterSave() i dać coś ala $model->saldo = $model-> getTotals(), ale samo wywołanie robi się dla mnie zbyt zagmatwane…

Póki co udało mi się wywołać funkcją afterSave() z modelu Kwartalnie, ale przypisując wartość stałą.

EDIT:

Udało mi się osiągnąć to co chciałem:


public function afterSave()

        {

            parent::afterSave();

            $payment = new Payment;

            $payment->isNewRecord = false;


            $test = Payment::model()->getTotals($this->payment_paymentId);

            

            Payment::model()->updateByPk($this->payment_paymentId, array('saldo'=>$test));

            //$payment->saveAttributes(array('saldo'=>$bla));

        }