protected function addReferralCommissions(Pap_Affiliates_User $affiliate) {
        try {
            $commissionType = Pap_Db_Table_CommissionTypes::getReferralCommissionType();
        } catch (Gpf_Exception $e) {
            return;
        }
        $referralCommissions = Pap_Db_Table_Commissions::getReferralCommissions();
        if ($commissionType->getStatus() == 'D' || $referralCommissions->getSize() < 1) {
            return;
        }
        if ($commissionType->getApproval() == Pap_Db_CommissionType::APPROVAL_MANUAL) {
            $status = 'P';
        } else {
            $status = $affiliate->getStatus();
        }

        $saveZeroCommissions = $commissionType->getSaveZeroCommissions();

        $iterator = $referralCommissions->getIterator();

        while (($affiliate = $affiliate->getParentUser()) !== null) {
            if ($iterator->valid()) {
                $commission = $iterator->current();
                $this->addTransaction($affiliate->getId(), Pap_Db_Transaction::TYPE_REFERRAL, $commission->get(Pap_Db_Table_Commissions::VALUE), $status, $commission,$saveZeroCommissions);
                $iterator->next();
            } else {
                break;
            }
        }
    }