/**
	 * @param Gpf_Data_Record $campaign
	 * @return boolean
	 */
	private function isAffiliateInCampaign(Gpf_Data_Record $campaign) {
		try {
			Pap_Db_Table_UserInCommissionGroup::getStatus($campaign->get($this->campaignIDColumnName), $this->affiliateID);
		} catch (Gpf_DbEngine_NoRowException $e) {
			if ($campaign->get(Pap_Db_Table_Campaigns::TYPE) == Pap_Db_Campaign::CAMPAIGN_TYPE_ON_INVITATION) {
				return false;
			}
		}
		return true;
	}
 private function saveCommissionGroup($campaignId, $userId, $newCommissionGroupId) {
 	$cgTable = Pap_Db_Table_CommissionGroups::getInstance();
 	$oldCommissionGroupId = $cgTable->getUserCommissionGroup($campaignId, $userId);
 	$status = Pap_Common_Constants::STATUS_APPROVED;
 	
     if ($oldCommissionGroupId != null) {
         try {
             $status = Pap_Db_Table_UserInCommissionGroup::getStatus($campaignId, $userId);
         } catch (Gpf_DbEngine_NoRowException $e) {
             Gpf_Log::debug('Row in userincommissiongroup should exist for userId: '.$userId.' and campaignId: '.$campaignId);
         }
     	$this->deleteUserInCommissionGroups($oldCommissionGroupId, $userId);
     }
     
     $commissionGroup = new Pap_Db_CommissionGroup();
     $commissionGroup->setPrimaryKeyValue($newCommissionGroupId);
     $commissionGroup->load();
     
     if ($commissionGroup->getIsDefault() != Gpf::YES) {
     	$this->addUserInCommissionGroup($newCommissionGroupId, $userId, $status);
     }
 }
Example #3
0
 public function getCommissionGroup(Pap_Contexts_Tracking $context) {
     if ($context->getCampaignObject()->getCampaignType() != Pap_Db_Campaign::CAMPAIGN_TYPE_PUBLIC) {
         try {
             $status = Pap_Db_Table_UserInCommissionGroup::getStatus($context->getCampaignObject()->getId(), $context->getUserObject()->getId());
             if ($status != Pap_Features_PerformanceRewards_Condition::STATUS_APPROVED &&
             $status != Pap_Features_PerformanceRewards_Condition::STATUS_FIXED) {
                 throw new Gpf_Exception('');
             }
         } catch (Gpf_Exception $e) {
             $context->debug('    STOPPING, User is not approved in this campaign!');
             $context->setDoCommissionsSave(false);
             $context->setDoTrackerSave(false);
         }
     }
 }