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; } } }