/** * 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)); }
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(); }
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(); }
/** * @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; }