Exemplo n.º 1
0
	private function spilloverChosenAffiliate(Pap_Common_User $child, Pap_Common_User $originalParentUser) {
		$user = $this->userTree->getChosenUser(Gpf_Settings::get(Pap_Settings::MATRIX_AFFILIATE));
		if ($user === null) {
			$child->setParentUserId(self::NONE_PARENT_USER_ID);
			return;
		}
		$this->initLimit($this->matrixWidth);
		$parent = $this->getParent(array($user));
		if ($parent === null) {
			$parent = $this->getParentSpillover($user);
			if ($parent === null) {
				$child->setParentUserId($user->getId());
				return;
			}
		}
		$child->setParentUserId($parent->getId());
	}
 private function getChildAffilitesMails($parent){
     $tree = new Pap_Common_UserTree();
     $children = $tree->getChildren($parent);
     foreach($children as $child){
         $this->childAffiliates[] = $child->getEmail();
         $this->getChildAffilitesMails($child);
     }
 }
Exemplo n.º 3
0
 private function getTransaction(Pap_Contexts_Tracking $context) {
     $userTree = new Pap_Common_UserTree();
     $tier = 1;
     $currentUser = $context->getUserObject();
     $currentTransaction = $context->getTransaction($tier);
     
     while ($currentUser != null && $tier < 100) {
         if ($currentTransaction != null) {
             $transactionId = $currentTransaction->getTransactionId();
             if ($transactionId != null && $transactionId != '') {
                 return $currentTransaction;
             }
         }
         $tier++;
         $currentUser = $userTree->getParent($currentUser);
         $currentTransaction = $context->getTransaction($tier);
     }
     return $context->getTransaction();
 }
Exemplo n.º 4
0
 protected function checkForCycle(Pap_Affiliates_User $potentialParent, $userId) {
     $tree = new Pap_Common_UserTree();
     $tree->startCheckingLoops();
     $affiliate = $potentialParent;
     while ($affiliate != null){
         if ($userId == $affiliate->getId()) {
             return false;
         }
         $affiliate = $tree->getParent($affiliate);
     }
     return true;
 }