/**
  *
  * @return Pap_Db_Commission
  */
 protected function getCommissionForTransaction() {
     $transactions = new Gpf_SqlBuilder_SelectBuilder();
     $transactions->select->add('c.'.Pap_Db_Table_Commissions::TYPE);
     $transactions->select->add('c.'.Pap_Db_Table_Commissions::VALUE);
     $transactions->where->add('t.'.Pap_Db_Table_Transactions::TRANSACTION_ID, '=', $this->transaction->getId());
     $transactions->where->add('c.'.Pap_Db_Table_Commissions::SUBTYPE,'=',self::getCommissionTypeFromTransaction($this->transaction->getType()));
     $this->initTransactionSql($transactions);
     
     $commission = new Pap_Db_Commission();
     $commission->fillFromRecord($transactions->getOneRow());
     return $commission;
 }
    /**
     * @param Pap_Db_Transaction $transaction
     * @param Gpf_DbEngine_Row_Collection $affectedTransactions
     * @return Pap_Db_Transaction
     */
    protected function getChildTransaction(Pap_Db_Transaction $transaction, Gpf_DbEngine_Row_Collection $affectedTransactions) {
        foreach ($affectedTransactions as $affectedTransaction) {
            if ($affectedTransaction->getParentTransactionId() == $transaction->getId() &&
            $affectedTransaction->getType() == $transaction->getType()) {
                return $affectedTransaction;
            }
        }

        $childTransaction = new Pap_Db_Transaction();
        $childTransaction->setType($transaction->getType());
        $childTransaction->setParentTransactionId($transaction->getId());
        try {
            $childTransaction->loadFromData(array(Pap_Db_Table_Transactions::R_TYPE, Pap_Db_Table_Transactions::PARRENT_TRANSACTION_ID));
        } catch (Gpf_Exception $e) {
            return null;
        }
        return  $childTransaction;
    }