public function run() { $time1 = microtime(); Pap3Compatibility_Migration_OutputWriter::logOnce("Deleting migrated data from existing PAP4 tables<br/>"); try { $this->deleteTable(Pap_Db_Table_Campaigns::getName()); $this->deleteTable(Pap_Db_Table_CommissionGroups::getName()); $this->deleteTable(Pap_Db_Table_CommissionTypes::getName()); $this->deleteTable(Pap_Db_Table_Commissions::getName()); $this->deleteTable(Pap_Db_Table_UserInCommissionGroup::getName()); $this->deleteTable(Gpf_Db_Table_FormFields::getName()); $this->deleteTable(Gpf_Db_Table_FieldGroups::getName()); $this->deleteTable(Pap_Db_Table_Transactions::getName()); $this->deleteTable(Pap_Db_Table_Clicks::getName()); $this->deleteTable(Pap_Db_Table_RawClicks::getName()); $this->deleteTable(Pap_Db_Table_Impressions::getName()); $this->deleteTable(Pap_Db_Table_Banners::getName()); $this->deleteTable(Gpf_Db_Table_FieldGroups::getName()); $this->deleteTable(Pap_Db_Table_PayoutsHistory::getName()); $this->deleteTable(Pap_Db_Table_Payouts::getName()); $this->deleteTable(Gpf_Db_Table_Currencies::getName()); $this->deleteTable(Gpf_Db_Table_MailAccounts::getName()); } catch(Exception $e) { Pap3Compatibility_Migration_OutputWriter::log(" Errror: ".$e->getMessage()."<br/>"); } $time2 = microtime(); Pap3Compatibility_Migration_OutputWriter::logDone($time1, $time2); }
private function deleteUserInCommissionGroups($commissionGroupId, $userId) { $delete = new Gpf_SqlBuilder_DeleteBuilder(); $delete->from->add(Pap_Db_Table_UserInCommissionGroup::getName()); $delete->where->add(Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID, '=', $commissionGroupId); $delete->where->add(Pap_Db_Table_UserInCommissionGroup::USER_ID, '=', $userId); $delete->execute(); }
protected function buildFrom() { $this->_selectBuilder->from->add(Pap_Db_Table_UserInCommissionGroup::getName(), "uicg"); $onCondition = "uicg.".Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID." = cg.".Pap_Db_Table_CommissionGroups::ID; $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_CommissionGroups::getName(), "cg", $onCondition); $onCondition = "cg.".Pap_Db_Table_CommissionGroups::CAMPAIGN_ID. " = c." .Pap_Db_Table_Campaigns::ID; $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_Campaigns::getName(), "c", $onCondition); }
/** * @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 removeCommissionGroups() { $delete = new Gpf_SqlBuilder_DeleteBuilder(); $delete->delete->add('cg'); $delete->from->add(Pap_Db_Table_UserInCommissionGroup::getName(), 'ucg'); $delete->from->addRightJoin(Pap_Db_Table_CommissionGroups::getName(), 'cg', 'ucg.'.Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID.'=cg.'.Pap_Db_Table_CommissionGroups::ID); $delete->from->addInnerJoin(Pap_Db_Table_Campaigns::getName(), 'c', 'cg.'.Pap_Db_Table_CommissionGroups::CAMPAIGN_ID.'=c.'.Pap_Db_Table_Campaigns::ID); $delete->where->add('cg.'.Pap_Db_Table_CommissionGroups::IS_DEFAULT, '=', Gpf::NO); $delete->delete(); }
protected function buildFrom() { $this->_selectBuilder->from->add(Pap_Db_Table_UserInCommissionGroup::getName(), 'ucg'); $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_CommissionGroups::getName(), 'cg', 'cg.'.Pap_Db_Table_CommissionGroups::ID.'=ucg.'.Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID); $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_Users::getName(), 'u', 'ucg.userid=u.userid'); $this->_selectBuilder->from->addInnerJoin(Gpf_Db_Table_Users::getName(), 'gu', 'u.accountuserid=gu.accountuserid'); $this->_selectBuilder->from->addInnerJoin(Gpf_Db_Table_AuthUsers::getName(), 'au', 'au.authid=gu.authid'); }
/** * * @return Pap_Db_UserInCommissionGroup */ protected function getUserCommissionGroup() { if($this->userInGroup !== null) { return $this->userInGroup; } try { $userInGroup = Pap_Db_Table_UserInCommissionGroup::getInstance()->getUserCommissionGroup( $this->getCurrentUserId(), $this->transaction->getCampaignId()); } catch (Gpf_DbEngine_TooManyRowsException $e) { Gpf_Log::error(sprintf('Database not in consistent state. User %s has many commission groups', $userId)); Pap_Db_Table_UserInCommissionGroup::removeUserFromCampaignGroups($userId, $campaignId); $userInGroup = new Pap_Db_UserInCommissionGroup(); $userInGroup->setStatus(Pap_Features_PerformanceRewards_Condition::STATUS_APPROVED); $userInGroup->setUserId($userId); } return $this->userInGroup = $userInGroup; }
/** * * @service user_comm_group write * @param ids, status * @return Gpf_Rpc_Action */ public function changeStatus(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); $action->setInfoMessage($this->_("Selected commission group(s) are changed")); $action->setErrorMessage($this->_("Failed to change status")); $update = new Gpf_SqlBuilder_UpdateBuilder(); $update->set->add(Pap_Db_Table_UserInCommissionGroup::STATUS, $action->getParam("status")); $update->from->add(Pap_Db_Table_UserInCommissionGroup::getName()); foreach ($action->getIds() as $id) { $update->where->add(Pap_Db_Table_UserInCommissionGroup::ID, "=", $id, "OR"); } try { $update->execute(); $action->addOk(); } catch(Gpf_DbEngine_NoRowException $e) { $action->addError(); } return $action; }
public function removeUserFromCampaignGroups($campaignId) { Pap_Db_Table_UserInCommissionGroup::removeUserFromCampaignGroups($this->getUserId(), $campaignId); }
/** * * @param $campaignId * @param $commissionType * @param $affiliateId * @return Gpf_Data_RecordSet */ public function getAllUserCommissionTypes($campaignId = null, $commissionType = null, $affiliateId = null) { $selectBuilder = $this->getAllCommissionTypesSelect($campaignId, $commissionType); $selectBuilder->select->add(Pap_Db_Table_Campaigns::NAME, 'campaignname', 'c'); $selectBuilder->from->addInnerJoin(Pap_Db_Table_Campaigns::getName(), 'c', 'ct.'.self::CAMPAIGNID.'=c.'.Pap_Db_Table_Campaigns::ID); if (Gpf_Session::getAuthUser()->getAccountId() != Gpf_Db_Account::DEFAULT_ACCOUNT_ID) { $selectBuilder->where->add(Pap_Db_Table_Campaigns::ACCOUNTID, '=', Gpf_Session::getAuthUser()->getAccountId()); } if ($affiliateId !== null && $affiliateId !== '') { $selectBuilder->from->addLeftJoin(Pap_Db_Table_CommissionGroups::getName(), 'cg', 'ct.'.self::CAMPAIGNID.'=cg.'.Pap_Db_Table_CommissionGroups::CAMPAIGN_ID); $selectBuilder->from->addLeftJoin(Pap_Db_Table_UserInCommissionGroup::getName(), 'uicg', 'cg.'.Pap_Db_Table_CommissionGroups::ID.'=uicg.'.Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID); $condition = new Gpf_SqlBuilder_CompoundWhereCondition(); $subCondition = new Gpf_SqlBuilder_CompoundWhereCondition(); $subCondition->add('uicg.'.Pap_Db_Table_UserInCommissionGroup::USER_ID, '=', $affiliateId); $subCondition->add('uicg.'.Pap_Db_Table_UserInCommissionGroup::STATUS, '=', 'A'); $condition->addCondition($subCondition, 'OR'); $condition->add('c.'.Pap_Db_Table_Campaigns::TYPE, '=', 'P', 'OR'); $selectBuilder->where->addCondition($condition); $selectBuilder->groupBy->add('ct.'.self::ID); } return $selectBuilder->getAllRows(); }
private function getAffiliateCount() { $banner = new Pap_Db_Banner(); $banner->setId($this->form->getFieldValue(Pap_Features_Coupon_CreateCoupons::BANNER_ID)); try { $banner->load(); $campaignId = $banner->getCampaignId(); } catch (Gpf_DbEngine_NoRowException $e) { $campaignId = null; } $campaign = new Pap_Db_Campaign(); $campaign->setId($campaignId); try { $campaign->load(); $campaignType = $campaign->getCampaignType(); } catch (Gpf_DbEngine_NoRowException $e) { $campaignType = null; } if ($campaignType != Pap_Db_Campaign::CAMPAIGN_TYPE_PUBLIC) { return Pap_Db_Table_UserInCommissionGroup::getUsersInCommissionGroupCount($campaignId); } return Pap_Db_Table_Users::getInstance()->getAffiliateCount(); }
protected function buildFrom(){ $this->_selectBuilder->from->add(Pap_Db_Table_Campaigns::getName(), 'ca'); $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_CommissionGroups::getName(), 'cg', 'cg.' . Pap_Db_Table_CommissionGroups::CAMPAIGN_ID . '=ca.' . Pap_Db_Table_Campaigns::ID); $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_UserInCommissionGroup::getName(), 'uic', 'uic.' . Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID . '=cg.' . Pap_Db_Table_CommissionGroups::ID); }
private function addCampaignFilterToSelect(Gpf_Common_SelectBuilderCompoundRecord $selectRecord, $campaignId){ $select = $selectRecord->getSelectBuilder(); $select->where->add('cg.campaignid','=',$campaignId); $select->from->addLeftJoin(Pap_Db_Table_UserInCommissionGroup::getName(),'uic','uic.userid=u.userid'); $select->from->addLeftJoin(Pap_Db_Table_CommissionGroups::getName(),'cg','cg.commissiongroupid=uic.commissiongroupid'); $select->groupBy->add('u.userid'); }
/** * * @return Gpf_SqlBuilder_SelectBuilder */ protected function getAffiliatesCountSelect() { $select = new Gpf_SqlBuilder_SelectBuilder(); $select->select->add('COUNT(ucg.'.Pap_Db_Table_UserInCommissionGroup::ID.')'); $select->from->add(Pap_Db_Table_UserInCommissionGroup::getName(), 'ucg'); $select->where->add('ucg.' . Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID, '=', 'cg.'.Pap_Db_Table_CommissionGroups::ID, 'AND', false); $select->from->addInnerJoin(Pap_Db_Table_Users::getName(), 'u', 'ucg.userid=u.userid'); $select->where->add('u.rtype', '=', Pap_Application::ROLETYPE_AFFILIATE); return $select; }
public function getUserInCommissionGroup($campaignId, $userId) { $selectBuilder = new Gpf_SqlBuilder_SelectBuilder(); $selectBuilder->select->add('ucg.'.Pap_Db_Table_UserInCommissionGroup::ID, 'usercommgroupid'); $selectBuilder->from->add(Pap_Db_Table_UserInCommissionGroup::getName(), 'ucg'); $selectBuilder->from->addInnerJoin(Pap_Db_Table_CommissionGroups::getName(), 'cg', 'ucg.'.Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID.'=cg.'.Pap_Db_Table_CommissionGroups::ID); $selectBuilder->where->add('cg.'.Pap_Db_Table_CommissionGroups::CAMPAIGN_ID, '=', $campaignId); $selectBuilder->where->add('ucg.'.Pap_Db_Table_UserInCommissionGroup::USER_ID, '=', $userId); try { $userInCommisionGroupId = $selectBuilder->getOneRow(); } catch (Gpf_DbEngine_NoRowException $e) { return null; } return $userInCommisionGroupId->get('usercommgroupid'); }
/** * @param Pap_Db_Transaction $transaction * @return Pap_Db_Commission */ protected function getCommissionForTransaction(Pap_Db_Transaction $transaction) { $commission = new Pap_Db_Commission(); $commission->setCommissionTypeId($transaction->getCommissionTypeId()); $commission->setGroupId($transaction->getCommissionGroupId()); $commission->setTier($transaction->getTier()); try { $commission->loadFromData(array(Pap_Db_Table_Commissions::TYPE_ID, Pap_Db_Table_Commissions::GROUP_ID)); } catch (Gpf_Exception $e) { $userInGroup = Pap_Db_Table_UserInCommissionGroup::getInstance()->getUserCommissionGroup($transaction->getUserId(), $transaction->getCampaignId()); $commission->setGroupId($userInGroup->getCommissionGroupId()); try { $commission->loadFromData(array(Pap_Db_Table_Commissions::TYPE_ID, Pap_Db_Table_Commissions::GROUP_ID, Pap_Db_Table_Commissions::TIER)); } catch (Gpf_Exception $e) { throw new Gpf_Exception($this->_('Unable to find commision for transaction id=' . $transaction->getId())); } } return $commission; }
public static function getStatus($campaignId, $userId) { $select = new Gpf_SqlBuilder_SelectBuilder(); $select->select->add(Pap_Db_Table_UserInCommissionGroup::STATUS); $select->from->add(Pap_Db_Table_CommissionGroups::getName(), 'cg'); $select->from->addInnerJoin(Pap_Db_Table_UserInCommissionGroup::getName(), 'ucg', 'cg.'.Pap_Db_Table_CommissionGroups::ID.'=ucg.'.Pap_Db_Table_UserInCommissionGroup::COMMISSION_GROUP_ID); $select->where->add('cg.'.Pap_Db_Table_CommissionGroups::CAMPAIGN_ID, '=', $campaignId); $select->where->add('ucg.'.Pap_Db_Table_UserInCommissionGroup::USER_ID, '=', $userId); $row = $select->getOneRow(); return $row->get(Pap_Db_Table_UserInCommissionGroup::STATUS); }
protected function initAffiliateCount() { if ($this->campaignType != Pap_Db_Campaign::CAMPAIGN_TYPE_PUBLIC) { return Pap_Db_Table_UserInCommissionGroup::getUsersInCommissionGroupCount($this->campaignId); } return Pap_Db_Table_Users::getAffiliateCount(); }