Exemple #1
0
    /**
     * Clicks - Raw
     Clicks - Unique
     Tier 1 - Trial Subscription
     Tier 1 - Recurring Subsription
     Tier 1 - Sales
     Tier 1 - Commissions
     Tier 2 - Trial Subscription
     Tier 2 - Recurring Subsription
     Tier 2 - Sales
     Tier 2 - Commissions
     Grand Total Sales
     Grand Total Commissions
     */
    public function initDataTypes(Pap_Common_Reports_StatisticsBase $statistics) {
        $statistics->clearDataTypes();

        $statistics->addDataType(new Pap_Common_Reports_Chart_ClickDataType($this->_('Clicks - Raw'), Pap_Db_Table_Clicks::RAW));
        $statistics->addDataType(new Pap_Common_Reports_Chart_ClickDataType($this->_('Clicks - Unique'), Pap_Db_Table_Clicks::UNIQUE));

        foreach ($this->getUserCommissionTypes($statistics->getCampaignId()) as $commissionTypeRecord) {
            $commissionType = new Pap_Db_CommissionType();
            $commissionType->fillFromRecord($commissionTypeRecord);
            $statistics->addDataType(new CustomOptionsInTrendsReport_TierActionDataType($commissionType, 1));
            $statistics->addDataType(new CustomOptionsInTrendsReport_TierActionDataType($commissionType, 2));
        }

        $statistics->addDataType(new CustomOptionsInTrendsReport_TierTransactionDataType(
            'saleTotalCost1', $this->_('Tier 1 - Sales'), Pap_Stats_Computer_Graph_Transactions::COUNT, 1));
        $statistics->addDataType(new CustomOptionsInTrendsReport_TierTransactionDataType(
            'saleTotalCost2', $this->_('Tier 2 - Sales'), Pap_Stats_Computer_Graph_Transactions::COUNT, 2));
        
        $statistics->addDataType(new CustomOptionsInTrendsReport_TierTransactionDataType(
            'saleCommission1', $this->_('Tier 1 - Commissions'), Pap_Stats_Computer_Graph_Transactions::COMMISSION, 1));
        $statistics->addDataType(new CustomOptionsInTrendsReport_TierTransactionDataType(
            'saleCommission2', $this->_('Tier 2 - Commissions'), Pap_Stats_Computer_Graph_Transactions::COMMISSION, 2));
        
        $statistics->addDataType(new Pap_Common_Reports_Chart_TransactionDataType(
            'saleTotalCost', $this->_('Grand Total Sales'),
            Pap_Stats_Computer_Graph_Transactions::COUNT, Pap_Common_Constants::TYPE_ACTION));
        $statistics->addDataType(new CustomOptionsInTrendsReport_TierTransactionDataType(
            'saleCommission', $this->_('Grand Total Commissions'), Pap_Stats_Computer_Graph_Transactions::COMMISSION, Pap_Stats_Computer_Graph_Transactions::ALL_TIERS));
    }
Exemple #2
0
 public function initDataTypes(Pap_Common_Reports_StatisticsBase $statistics) {
     foreach ($this->getUserCommissionTypes($statistics->getCampaignId()) as $commissionTypeRecord) {
         $commissionType = new Pap_Db_CommissionType();
         $commissionType->fillFromRecord($commissionTypeRecord);
         $statistics->addDataType(new Pap_Features_ActionCommission_ActionDataType($commissionType, Pap_Stats_Computer_Graph_Transactions::COUNT, $commissionTypeRecord->get('campaignname')));
         $statistics->addDataType(new Pap_Features_ActionCommission_ActionDataType($commissionType, Pap_Stats_Computer_Graph_Transactions::COMMISSION, $commissionTypeRecord->get('campaignname')));
         $statistics->addDataType(new Pap_Features_ActionCommission_ActionDataType($commissionType, Pap_Stats_Computer_Graph_Transactions::TOTALCOST, $commissionTypeRecord->get('campaignname')));
     }
 }
 private function disableActionCommissionInCampaigns() {
     $campaign = new Pap_Db_Campaign();
     $campaigns = $campaign->loadCollection();
     foreach ($campaigns as $campaign) {
         $commissionType = new Pap_Db_CommissionType();
         $commissionType->setCampaignId($campaign->getId());
         $commissionType->setType(Pap_Common_Constants::TYPE_ACTION);
         $commTypeCollection = $commissionType->loadCollection();
         foreach ($commTypeCollection as $commTypeRow) {
             $commTypeRow->setStatus(Pap_Db_CommissionType::STATUS_DISABLED);
             $commTypeRow->save();
         }
     }
 }
 private function addCpmCommissionToCampaigns() {
     $campaign = new Pap_Db_Campaign();
     $campaigns = $campaign->loadCollection();
     foreach ($campaigns as $campaign) {
         $commissionType = new Pap_Db_CommissionType();
         $commissionType->setCampaignId($campaign->getId());
         $commissionType->setType(Pap_Common_Constants::TYPE_CPM);
         try {
             $commissionType->loadFromData();
         } catch (Gpf_DbEngine_NoRowException $e) {
             $commissionType->setStatus(Pap_Db_CommissionType::STATUS_DISABLED);
             $commissionType->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
             $commissionType->setApproval(Pap_Db_CommissionType::APPROVAL_AUTOMATIC);
             $commissionType->setZeroOrdersCommission(Gpf::NO);
             $commissionType->setSaveZeroCommission(Gpf::NO);
             $commissionType->insert();
         }
     }
 }
	private function getFixedCost($commTypeId) {
		$commType = new Pap_Db_CommissionType();
		$commType->setId($commTypeId);
		$commType->load();
        if (($commType->getFixedcostValue()==0) || ($commType->getFixedcostValue()=='null')) {
        	return "";
        }
        return $commType->getFixedcostType().$commType->getFixedcostValue();
	}
Exemple #6
0
    public function commissionTypeBeforeSaveCheck(Pap_Db_CommissionType $beforeSaveType) {
        if ($beforeSaveType->getParentCommissionTypeId() == '' || $beforeSaveType->getParentCommissionTypeId() == null) {
            return;
        }
        $countries = preg_split('/,/', $beforeSaveType->getCountryCodes());

        $existingcountries = $this->getAllUsedCountryListForType($beforeSaveType);

        $intersection = array_intersect($existingcountries, $countries);
        if (count($intersection)>0) {
            throw new Gpf_Exception($this->_('One or more of countries ('.$this->resolveCountryNames($intersection).'), you selected, is already included in another country group in this commission type.'));
        }
    }
	protected function insertCommissionType($campaignId, $recurringCommission, $recurringDateType, $pap4CommType) {
		$obj = new Pap_Db_CommissionType();
		$obj->setType($pap4CommType);
		$obj->setStatus(Pap_Common_Constants::ESTATUS_ENABLED);

		// set commission type approval
		$pap3ApprovalStatus = '';
		if($pap4CommType == Pap_Common_Constants::TYPE_CLICK) {
			$pap3ApprovalStatus = $this->getPap3Setting($campaignId, 'Aff_camp_clickapproval');
		} else {
			$pap3ApprovalStatus = $this->getPap3Setting($campaignId, 'Aff_camp_saleapproval');
		}
		if($pap3ApprovalStatus == 2) {
			$obj->setApproval(Pap_Db_CommissionType::APPROVAL_AUTOMATIC);
		} else {
			$obj->setApproval(Pap_Db_CommissionType::APPROVAL_MANUAL);
		}

		// set recurring type
		if($recurringCommission == 0 || $recurringDateType == 0) {
			$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
		} else {
			switch($recurringDateType) {
				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_WEEKLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_WEEKLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_MONTHLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_MONTHLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_QUARTERLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_QUARTERLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_BIANNUALLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_SEMIANNUALLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_YEARLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_YEARLY); break;
				default:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
			}
		}

		$obj->setZeroOrdersCommission(Gpf::YES);
        $obj->setSaveZeroCommission(Gpf::YES);
		$obj->setCampaignId($campaignId);
		$obj->save();

		$this->countCommTypes++;
		return $obj;
	}
	/**
	 *
	 * @service commission write
	 * @param $fields
	 * @return Gpf_Rpc_Action
	 */
	public function deleteCommissionType(Gpf_Rpc_Params $params) {
		$action = new Gpf_Rpc_Action($params);
		$action->setErrorMessage($this->_('Failed to delete type, some transactions are connected to this type. Remove them first.'));
		$action->setInfoMessage($this->_('Commission type successfully removed'));

		$commTypeId = $action->getParam('commtypeid');

		$transaction = new Pap_Db_Transaction();
		$transaction->setCommissionTypeId($commTypeId);
		$collection = $transaction->loadCollection(array(Pap_Db_Table_Transactions::COMMISSIONTYPEID));
		if ($collection->getSize() > 0) {
			$action->addError();
			return $action;
		}

        $commissionType = new Pap_Db_CommissionType();
        $commissionType->setId($commTypeId);
        $commissionType->delete();

        $action->addOk();
        return $action;
	}
    /**
     * Load commissionType from campaignId and type
     *
     * @throws Gpf_DbEngine_NoRowException
     * @throws Gpf_DbEngine_TooManyRowsException
     *
     * @return Pap_Db_CommissionType
     */
    public function getCommissionType($campaignId, $type) {
        $commissionType = new Pap_Db_CommissionType();
        $commissionType->setCampaignId($campaignId);
        $commissionType->setType($type);
        $commissionType->loadFromData(array(Pap_Db_Table_CommissionTypes::CAMPAIGNID, Pap_Db_Table_CommissionTypes::TYPE));

        return $commissionType;
    }
 private function createReferralCommissionType() {
     $commissionType = new Pap_Db_CommissionType();
     $commissionType->setType(Pap_Common_Constants::TYPE_REFERRAL);
     $commissionType->setStatus(Pap_Db_CommissionType::STATUS_ENABLED);
     $commissionType->setApproval(Pap_Db_CommissionType::APPROVAL_AUTOMATIC);
     $commissionType->setZeroOrdersCommission(Gpf::NO);
     $commissionType->setSaveZeroCommission(Gpf::NO);
     $commissionType->insert();
 }
 private function recognizeStatus(Pap_Db_CommissionType $commissionType) {
     if($commissionType->getApproval() == Pap_Db_CommissionType::APPROVAL_AUTOMATIC) {
         return Pap_Common_Constants::STATUS_APPROVED;
     }
     return Pap_Common_Constants::STATUS_PENDING;
 }
    private function getCommissionTypeAndValue($campaignId, $userId, $commissionTypeId, $tier = null) {
        if (is_null($tier) || $tier == '') {
            $tier = 1;
        }

        // getting user
        if($userId == '') {
            $this->errorMsg = $this->_("User is not valid!");
            return false;
        }
        $user = new Pap_Common_User();
        $user->setPrimaryKeyValue($userId);
        try {
            $user->load();
        } catch (Gpf_DbEngine_NoRowException $e) {
            $this->errorMsg = $this->_("User is not valid!");
            return false;
        }

        // getting campaign
        $campaign = new Pap_Common_Campaign();
        $campaign->setId($campaignId);
        try {
            $campaign->load();
        } catch (Gpf_DbEngine_NoRowException $e) {
            $this->errorMsg = $this->_("Campaign is not valid!");
            return false;
        }
        // getting commission type
        try {
            $commissionType = new Pap_Db_CommissionType();
            $commissionType->setId($commissionTypeId);
            $commissionType->setStatus(Pap_Db_CommissionType::STATUS_ENABLED);
            $commissionType->loadFromData();
        } catch (Gpf_DbEngine_NoRowException $e) {
            $this->errorMsg = $this->_("Transaction type is not valid or doesn't exist in this campaign!");
            return false;
        }
        $fixedcostType = $commissionType->getFixedcostType();
        $fixedcostValue = $commissionType->getFixedcostValue();
        // getting commission group
        $commGroupId = $campaign->getCommissionGroupForUser($userId);
        if($commGroupId == false) {
            $this->errorMsg = $this->_("Cannot recognize commission group for this user in campaign!");
            return false;
        }

        $rsCommissions = $campaign->getCommissionsCollection($commGroupId, $commissionType->getId());
        $commType = null;
        $commValue = null;
        foreach($rsCommissions as $record) {
            if($record->get('tier') == $tier && $record->get('subtype') == 'N') {
                $commType = $record->get('commissiontype');
                $commValue = $record->get('commissionvalue');
                break;
            }
        }

        if($commType == null) {
            $this->errorMsg = $this->_("Error getting commission settings!");
            return false;
        }

        return array('type' => $commType, 'value' => $commValue, 'fixedcostValue' => $fixedcostValue, 'fixedcostType' => $fixedcostType);
    }
 protected function getActionName($type, $id) {
     if ($type != Pap_Common_Constants::TYPE_ACTION) {
         return $this->_('Sale');
     } else {
         $commType = new Pap_Db_CommissionType();
         $commType->setId($id);
         $commType->load();
         return $commType->getName();
     }
 }
    private function setSplitCommissionsBonus(Pap_Db_Campaign $campaign) {
        $commissionType = new Pap_Db_CommissionType();
        $commissionType->setCampaignId($campaign->getId());
        $commissionType->setType(Pap_Common_Constants::TYPE_SALE);
        $commissionType->loadFromData(array(Pap_Db_Table_CommissionTypes::CAMPAIGNID, Pap_Db_Table_CommissionTypes::TYPE));

        $overwriteCookie = $campaign->getOverwriteCookie();
        if ($overwriteCookie != Gpf::YES && $overwriteCookie != Gpf::NO) {
            $overwriteCookie = $this->isGeneralOverwriteAllowed();
        }

        if ($overwriteCookie == Gpf::YES) {
            $firstClickBonus = 0;
            $lastClickBonus = 100;
        } else {
            $firstClickBonus = 100;
            $lastClickBonus = 0;
        }

        Pap_Db_Table_CommissionTypeAttributes::getInstance()->setCommissionTypeAttributeValue($commissionType->getId(), Pap_Features_SplitCommissions_SplitCommissionsForm::FIRST_AFF_BONUS, $firstClickBonus);
        Pap_Db_Table_CommissionTypeAttributes::getInstance()->setCommissionTypeAttributeValue($commissionType->getId(), Pap_Features_SplitCommissions_SplitCommissionsForm::LAST_AFF_BONUS, $lastClickBonus);
    }
 public function setStatusFromType(Pap_Db_CommissionType $commissionType) {
     if($commissionType->getApproval() == Pap_Db_CommissionType::APPROVAL_AUTOMATIC) {
         $this->setStatus(Pap_Common_Constants::STATUS_APPROVED);
         return;
     }
     $this->setStatus(Pap_Common_Constants::STATUS_PENDING);
 }
 /**
  * @return Pap_Stats_Computer_Graph_Base
  */
 public function getComputer(Pap_Stats_Params $statsParameters, $timeGroupBy) {
     $computer = parent::getComputer($statsParameters, $timeGroupBy);
     $computer->setCommissionTypeId($this->commissionType->getId());
     return $computer;
 }
 /**
  * @return Pap_Db_CommissionType
  */
 private function loadCommissionType($commTypeId) {
     if (!array_key_exists($commTypeId, self::$commissionTypesCache)) {
         $commissionType = new Pap_Db_CommissionType();
         $commissionType->setId($commTypeId);
         try {
             $commissionType->load();
         } catch (Gpf_Exception $e) {
             $commissionType->setName($this->_('Unknown'));
         }
         self::$commissionTypesCache[$commTypeId] = $commissionType;
     }
     return self::$commissionTypesCache[$commTypeId];
 }
 /**
  *
  * @return Pap_Db_CommissionType
  */
 private function getNewComissionType($campaignId = null) {
     $commissionType = new Pap_Db_CommissionType();
     $commissionType->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
     $this->fill($commissionType);
     if ($campaignId != null) {
         $commissionType->setCampaignId($campaignId);
     }
     $commissionType->setStatus(Pap_Db_CommissionType::STATUS_DISABLED);
     $commissionType->insert();
     return $commissionType;
 }
 private function getCommissionTypeByCommissionTypeId($commissionTypeId) {
     if ($commissionTypeId == null || $commissionTypeId == '') {
         return null;
     }
     $commissionType = new Pap_Db_CommissionType();
     $commissionType->setId($commissionTypeId);
     try {
         $commissionType->load();
     } catch (Gpf_DbEngine_NoRowException $e) {
         return null;
     }
     return $commissionType->getType();
 }
Exemple #20
0
 /**
  * @return Pap_Db_AffiliateTrackingCode
  */
 private function loadAffiliateTrackingCode(Pap_Db_CommissionType $commissionType, Pap_Common_User $affiliate) {
     $code = new Pap_Db_AffiliateTrackingCode();
     $code->setAffiliateId($affiliate->getId());
     $code->setCommissionTypeId($commissionType->getId());
     $code->setStatus(Pap_Common_Constants::STATUS_APPROVED);
     $code->loadFromData();
     return $code;
 }
    public function insertCommissionType($type) {
        $commissionType = new Pap_Db_CommissionType();
        $commissionType->setCampaignId($this->getId());
        $commissionType->setType($type);
        $commissionType->setStatus(Pap_Db_CommissionType::STATUS_ENABLED);
        $commissionType->setApproval(Pap_Db_CommissionType::APPROVAL_AUTOMATIC);
        $commissionType->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
        $commissionType->setZeroOrdersCommission(Gpf::NO);
        $commissionType->setSaveZeroCommission(Gpf::NO);
        $commissionType->insert();

        return $commissionType->getId();
    }
 /**
  * @return Pap_Db_CommissionType
  */
 protected function getCommTypeFromCampaignAndRtype($campaignId, $rtype) {
     $commObj = new Pap_Db_CommissionType();
     $commObj->setCampaignId($campaignId);
     $commObj->setType($rtype);
     $commObj->loadFromData(array(Pap_Db_Table_CommissionTypes::CAMPAIGNID, Pap_Db_Table_CommissionTypes::TYPE));
     return $commObj;
 }