/**
     * @service campaign read
     * @return Gpf_Data_RecordSet
     */
    public function getActionTypes(Gpf_Rpc_Params $params) {
        $actionTypesHeader = array(Pap_Db_Table_CommissionTypes::TYPE, Pap_Db_Table_CommissionTypes::NAME, Pap_Db_Table_CommissionTypes::ID, 'campaignName');

        $data = new Gpf_Rpc_Data($params);
        $filters = $data->getFilters();

        $statsParams = new Pap_Stats_Params();
        $statsParams->setCampaignId($filters->getFilterValue('campaignid'));
        $statsParams->setBannerId($filters->getFilterValue('bannerid'));

        $transactionTypeStats = new Pap_Stats_TransactionTypeStats($statsParams);
        $transactionTypes = $transactionTypeStats->getTypes();

        $actionTypesRecordSet = new Gpf_Data_RecordSet();
        $actionTypesRecordSet->setHeader($actionTypesHeader);

        $this->initActionCampaignNames();

        foreach ($transactionTypes as $transactionType) {
            if ($transactionType->getType() != Pap_Common_Constants::TYPE_SALE && $transactionType->getType() !=Pap_Common_Constants::TYPE_ACTION && $transactionType->getType() != Pap_Common_Constants::TYPE_RECURRING) {
                continue;
            }
            $actionTypesRecordSet->add(new Gpf_Data_Record($actionTypesHeader, array($transactionType->getType(), $transactionType->getName(), $transactionType->getCommissionTypeId(), $this->getActionCampaignName($transactionType->getCommissionTypeId()))));
        }
        return $actionTypesRecordSet;
    }
    /**
     *
     * @service affiliate_stats read
     * @param $data
     */
    public function load(Gpf_Rpc_Params $params) {
        $data = new Gpf_Rpc_Data($params);
        $filters = $data->getFilters();
		$statsParams = new Pap_Stats_Params();
		$statsParams->initFrom($filters);				
		$transactions = new Pap_Stats_Transactions($statsParams);                

        $select = new Gpf_SqlBuilder_SelectBuilder();
        $select->from->add(Pap_Db_Table_Users::getName(), "pu");
        $select->from->addInnerJoin(Gpf_Db_Table_Users::getName(), "gu", "gu.accountuserid = pu.accountuserid");
        $select->select->add("SUM(IF(pu.rtype = '". Pap_Application::ROLETYPE_AFFILIATE ."', 1, 0))", "countAffiliates");
        $select->select->add("SUM(IF(gu.rstatus = 'A', 1, 0))", "approvedAffiliates");
        $select->select->add("SUM(IF(gu.rstatus = 'P', 1, 0))", "pendingAffiliates");
        $filters->addTo($select->where);
        $select->where->add("pu.".Pap_Db_Table_Users::TYPE, "=", Pap_Application::ROLETYPE_AFFILIATE);        
        $row = $select->getOneRow();

        $data->setValue("countAffiliates", $this->checkNullValue($row->get("countAffiliates")));
        $data->setValue("approvedAffiliates", $this->checkNullValue($row->get("approvedAffiliates")));
        $data->setValue("pendingAffiliates", $this->checkNullValue($row->get("pendingAffiliates")));
        $data->setValue("totalSales", $transactions->getTotalCost()->getAll());
        $data->setValue("approvedCommissions", $transactions->getCommission()->getApproved());
        $data->setValue("pendingCommissions", $transactions->getCommission()->getPending());

        return $data;
    }
    public function getNumberOfSubaffiliates($userid = null) {
        $result = new Gpf_Data_RecordSet();
        $selectBuilder = new Gpf_SqlBuilder_SelectBuilder();
        $selectBuilder->select->add('COUNT(u.userid)', 'amount');

        $selectBuilder->from->add(Pap_Db_Table_Users::getName(), "u");
        $selectBuilder->from->addInnerJoin(Gpf_Db_Table_Users::getName(), "gu", "u.accountuserid = gu.accountuserid");
        $selectBuilder->from->addInnerJoin(Gpf_Db_Table_AuthUsers::getName(), "au", "gu.authid = au.authid");

        $selectBuilder->where->add('u.deleted', '=', Gpf::NO);
        if ($userid === null) {
            $selectBuilder->where->add('u.parentuserid', '=', Gpf_Session::getAuthUser()->getPapUserId());
        } else {
            $selectBuilder->where->add('u.parentuserid', '=', $userid);
        }
        $selectBuilder->where->add('gu.rstatus', '<>', 'D');
        if ($this->params->isDateFromDefined()) {
            $selectBuilder->where->add('u.' . Pap_Stats_Table::DATEINSERTED, '>=', $this->params->getDateFrom()->toDateTime());
        }
        if ($this->params->isDateToDefined()) {
            $selectBuilder->where->add('u.' . Pap_Stats_Table::DATEINSERTED, '<=', $this->params->getDateTo()->toDateTime());
        }
        $selectBuilder->limit->set(0, 1);

        $result->load($selectBuilder);

        if($result->getSize() == 0) {
            return 0;
        }

        foreach($result as $record) {
            return $record->get('amount');
        }
    }
	private function setDateFilter(Pap_Stats_Params $statParams, array $dateFilter) {
		$datePreset = array();
		foreach ($dateFilter as $filter) {
			$datePreset = $filter->addDateValueToArray($datePreset);
		}
		$statParams->setDateRange($datePreset["dateFrom"], $datePreset["dateTo"]);
	}	
    /**
     * @return Pap_Stats_Params
     */
    private function getStatsParams($datePreset) {
        $date = $this->getDateArray($datePreset);
        $statsParams = new Pap_Stats_Params();
        $statsParams->setDateFrom(new Gpf_DateTime($date['dateFrom']));
        $statsParams->setDateTo(new Gpf_DateTime($date['dateTo']));

        return $statsParams;
    }
Пример #6
0
	protected function initDate(Pap_Stats_Params $statsParams, $timeOffset) {
		$filter = new Gpf_SqlBuilder_Filter(array("month", "DP", "LM"));
		$filter->setTimeOffset($timeOffset);
		$datePreset = $filter->addDateValueToArray(array());
		$statsParams->setDateRange($datePreset["dateFrom"], $datePreset["dateTo"]);
		
		$this->dateFrom = $datePreset["dateFrom"];
		$this->dateTo = $datePreset["dateTo"];
	}
    /**
     * @service quick_stats read
     * @param $fields
     */
    public function load(Gpf_Rpc_Params $params) {
        $data = new Gpf_Rpc_Data($params);

        $this->statsParams = $this->getStatsParams();
        $this->statsParams->initFrom($data->getFilters());

        $this->fillData($data, $params);
        return $data;
    }
Пример #8
0
	protected function initDate(Pap_Stats_Params $statsParams, $timeOffset) {
		$clientTime = $this->createCurrentTime() + $timeOffset;
		$lastStartDay = $this->getLastStartDay($clientTime);

		$this->dateFrom = Gpf_DbEngine_Database::getDateString(
		mktime(0,0,0,date("m",$clientTime), date("d",$clientTime) - $lastStartDay, date("Y",$clientTime)) - $timeOffset);

		$this->dateTo = Gpf_DbEngine_Database::getDateString(
		mktime(23,59,59,date("m",$clientTime), date("d",$clientTime) - $lastStartDay + 6, date("Y",$clientTime)) - $timeOffset);

		$statsParams->setDateRange($this->dateFrom, $this->dateTo);
	}
	/**
	 *
	 * @service campaign_stats read
	 * @param $data
	 */
	public function load(Gpf_Rpc_Params $params) {
		$data = new Gpf_Rpc_Data($params);
		$statsParams = new Pap_Stats_Params();
		$statsParams->initFrom($data->getFilters());						
		$transactions = new Pap_Stats_Transactions($statsParams);
		
		$data->setValue("totalCommisions", $transactions->getCommission()->getAll());
		$data->setValue("totalSales", $transactions->getTotalCost()->getAll());
		$data->setValue("totalPendingCommisions", $transactions->getCommission()->getPending());
		$data->setValue("totalUnpaidApprovedCommisions", $transactions->getCommission()->getApproved());
		
		return $data;
	}
	/**
	 *
	 * @service pay_affiliate_stats read
	 * @param $data
	 */
	public function load(Gpf_Rpc_Params $params) {
		$data = new Gpf_Rpc_Data($params);
		$statsParams = new Pap_Stats_Params();
		$statsParams->initFrom($data->getFilters());
		$transactions = new Pap_Stats_Transactions($statsParams);

		$data->setValue("paid", $this->getPaidData($data->getFilters()));
		$data->setValue("unpaidApprovedComm", $transactions->getCommission()->getApproved());
		$data->setValue("unpaidPendingComm", $transactions->getCommission()->getPending());
		$data->setValue("unpaidDeclinedComm", $transactions->getCommission()->getDeclined());

		return $data;
	}
    /**
     * @return Gpf_SqlBuilder_UnionBuilder
     */
    public function getStatsSelect(Pap_Stats_Params $statParams, $groupColumn, $groupColumnAlias) {
        $select = new Gpf_SqlBuilder_SelectBuilder();
        $select->select->add($groupColumn, $groupColumnAlias);
        $this->initStatsSelect($select->select);
        $select->from->add($this->name());
        $statParams->addTo($select);
        $select->groupBy->add($groupColumn);

        $unionBuilder = new Gpf_SqlBuilder_UnionBuilder();
        $unionBuilder->addSelect($select);
        $statsSelectContext = new Pap_Stats_StatsSelectContext($unionBuilder, $select, $groupColumn, $groupColumnAlias);

        Gpf_Plugins_Engine::extensionPoint('PostAffiliate.Pap_Db_Table_ClicksImpressions.getStatsSelect', $statsSelectContext);
        return $unionBuilder;
    }
	/**
	 * @return Gpf_Rpc_Params
	 */
	private function getParams($limit) {
		$params = new Gpf_Rpc_Params();
		$params->add('sort_col', 'dateinserted');
		$params->add('sort_asc', false);
		$params->add('offset', 0);
		$params->add('limit', $limit);
		$params->add('columns', array(array("id"),array("id"),array("id"),array("commission"),array("totalcost"),array("orderid"),array("productid"),array("dateinserted"),array("name"),array("rtype"),array("tier"),array("commissionTypeName"),array("rstatus"),array("payoutstatus"),array("userid"),array("username"),array("firstname"),array("lastname"),array("channel")));

		$filters = array();
			
		if ($this->statsparams->isDateFromDefined()) {
			$filters[] = array('dateinserted', 'D>=', Gpf_Common_DateUtils::getDateTime($this->statsparams->getDateFrom()->toTimeStamp() + $this->timeOffset));
		}
		if ($this->statsparams->isDateToDefined()) {
			$filters[] = array('dateinserted', 'D<=', Gpf_Common_DateUtils::getDateTime($this->statsparams->getDateTo()->toTimeStamp() + $this->timeOffset));
		}
		if ($this->statsparams->isTypeDefined()) {
			$filters[] = array('rtype', 'IN', $this->statsparams->getType());
		}
		if ($this->statsparams->isAffiliateIdDefined()) {
			$filters[] = array('userid', 'E', $this->statsparams->getAffiliateId());
		}
		if ($this->statsparams->isAccountIdDefined()) {
			$filters[] = array('accountid', 'E', $this->statsparams->getAccountId());
		}

		if (count($filters) > 0) {
			$params->add('filters', $filters);
		}

		return $params;
	}
	/**
	 *
	 * @service banner_stats read
	 * @param $data
	 */
	public function loadFilteredStatistics(Gpf_Rpc_Params $params) {
		$data = new Gpf_Rpc_Data($params);
		$statsParams = new Pap_Stats_Params();		
		$statsParams->initFrom($data->getFilters());				
		$impressions = new Pap_Stats_Impressions($statsParams);
		$clicks = new Pap_Stats_Clicks($statsParams);
		$sales = new Pap_Stats_Sales($statsParams);

		$data->setValue("impressions", $impressions->getCount()->getAll());
		$data->setValue("rawClicks", $clicks->getCount()->getRaw());
		$data->setValue("uniqueClicks", $clicks->getCount()->getUnique());
		$data->setValue("sales", $sales->getCount()->getApproved());
		$data->setValue("ctr", 0);
		if ($impressions->getCount()->getAll() !== 0) {
			$data->setValue("ctr", $clicks->getCount()->getAll() / ($impressions->getCount()->getAll() / 100));
		}

		return $data;
	}
	protected function buildWhere(Pap_Stats_Params $statParams) {
		$statParams->addTo($this->transactionsSelect);
        if ($statParams->isTypeDefined()) {
            $this->transactionsSelect->where->add(Pap_Db_Table_Transactions::R_TYPE, 'IN', explode(',', $statParams->getType()));
        }
        if ($statParams->isStatusDefined()) {
            if (is_array($statParams->getStatus())) {
                $this->transactionsSelect->where->add(Pap_Db_Table_Transactions::R_STATUS, 'IN', $statParams->getStatus());
            } else {
                $this->transactionsSelect->where->add(Pap_Db_Table_Transactions::R_STATUS, 'IN', explode(',', $statParams->getStatus()));
            }
        }   
	}
Пример #15
0
    protected function prepareParams() {
        $this->params->setStatus($this->getStatuses());
        $this->params->setAffiliateId($this->rule->getUserID());
        $this->params->setCampaignId($this->rule->getCampaignId());

        if (!$this->rule->getDateRange()->isAllTime()) {
            $this->params->setRange($this->rule->getDateRange());
        }
        if ($this->rule->getDate() == Pap_Features_PerformanceRewards_Rule::DATE_ALL_UNPAID_COMMISSIONS) {
            $this->params->setPayoutStatus(Pap_Common_Constants::PSTATUS_UNPAID);
        }
    }
	protected function initAllSubAffStats() {
		$statParams = new Pap_Stats_Params();
		$statParams->initFrom($this->filters);
		$statParams->setType(Pap_Common_Constants::TYPE_SALE . ',' . Pap_Common_Constants::TYPE_CLICK);
		
		$transactionStats = new Pap_Stats_Computer_TransactionsStatsBuilder($statParams, Pap_Db_Table_Transactions::USER_ID, Pap_Db_Table_Transactions::USERID, false);				      
		$transactionStats->getTransactionsWhereClause()->add(Pap_Db_Table_Transactions::PARRENT_TRANSACTION_ID, '!=', null);
		$transactionStats->getTransactionsWhereClause()->add(Pap_Db_Table_Transactions::PARRENT_TRANSACTION_ID, '<>', '');				
		$allSubStats = $transactionStats->getStatsSelect();
		
		try {
			$allSubStatsRow = $allSubStats->getOneRow();
			$this->subAffCommissions = $allSubStatsRow->get(Pap_Db_Table_Transactions::COMMISSION);
			$this->subAffSaleCount = $allSubStatsRow->get('count');
		} catch (Gpf_DbEngine_NoRowException $e) {			
			$this->subAffCommissions = 0;
			$this->subAffSaleCount = 0;
		}
	}
Пример #17
0
    /**
     * @return Pap_Stats_Params
     */
    public function getStatsParams($datePreset) {
        $date = $this->getDateArray($datePreset);
        $statsParams = new Pap_Stats_Params();
        $statsParams->setDateFrom(new Gpf_DateTime($date["dateFrom"]));
        $statsParams->setDateTo(new Gpf_DateTime($date["dateTo"]));
        
        $statsParams = $this->modifyStatsParams($statsParams);

        return $statsParams;
    }
Пример #18
0
 protected function setAffiliateId(Pap_Stats_Params $statsParameters, $userId) {
      $statsParameters->setAffiliateId(Gpf_Session::getAuthUser()->getPapUserId());
  }
    /**
     * @return Pap_Stats_Params
     */
    protected function getStatsParameters() {
        $params = new Pap_Stats_Params();

        $dateRangeFilter = new Gpf_SqlBuilder_Filter();
        $dateRange = $dateRangeFilter->decodeDatePreset(Pap_Features_CompressedCommissionPlacementModel_Processor::getRecurrencePreset());
        $params->setDateRange($dateRange['dateFrom'], $dateRange['dateTo']);

        $params->setStatus($this->getStatuses());
        return $params;
    }
Пример #20
0
 /**
  * @return Pap_Stats_Params
  */
 protected function getStatsParameters() {
     $statsParameters = new Pap_Stats_Params();
     $statsParameters->setDateRange($this->statsDateParams["dateFrom"],
     $this->statsDateParams["dateTo"]);
     $statsParameters->setStatus(Pap_Common_Constants::STATUS_APPROVED);
     return $this->addParamsWithDateRangeFilter($statsParameters);
 }
	/**
	 * @return Pap_Stats_Params
	 */
	private function getLastDayStatsParams() {
		$statsParams = new Pap_Stats_Params();
		$statsParams->setDateFrom(new Gpf_DateTime(time()-86400));
		$statsParams->setDateTo(new Gpf_DateTime(time()));
		return $statsParams;
	}
Пример #22
0
	private function getAffiliateStats(Pap_Stats_Params $statsParams) {
		$dateFrom = '';
		try {
			$dateFrom = $statsParams->getDateFrom()->toDateTime();
		} catch (Gpf_Exception $e) {
		}
		return Pap_Db_Table_Users::getAffiliatesCount($dateFrom);
	}
Пример #23
0
 protected function modifyStatsParams(Pap_Stats_Params $statsParams) {
     $statsParams->setAffiliateId(Gpf_Session::getAuthUser()->getPapUserId());
     return $statsParams;
 }
Пример #24
0
 protected function setAffiliateId(Pap_Stats_Params $statsParameters, $userId) {
     $statsParameters->setAffiliateId($userId);
 }
	protected function buildWhere(Pap_Stats_Params $statParams) {
		$statParams->addTo($this->transactionsSelect);
		$this->transactionsSelect->where->add(Pap_Db_Table_Users::ID, '=', $this->getLoggedAffId());		
		$this->transactionsSelect->where->add(Pap_Db_Table_Transactions::PARRENT_TRANSACTION_ID, '!=', null);
		$this->transactionsSelect->where->add(Pap_Db_Table_Transactions::PARRENT_TRANSACTION_ID, '<>', '');	
	}
Пример #26
0
 public function setUser(Pap_Common_User $user) {
     $this->statsParams->setAffiliateId($user->getId());
     $this->user = $user;
 }
Пример #27
0
	/**
	 *
	 * Pap alert application handle, do not modify this source!
	 *
	 * @param String $dateFrom
	 * @param String $dateTo
	 * @param String $userId
	 * @return Gpf_Data_RecordSet
	 */
	public static function getTransactions(Pap_Stats_Params $statsParams) {
		$select = new Gpf_SqlBuilder_SelectBuilder();
		$select->select->add('tr.'.Pap_Db_Table_Transactions::USER_ID, 'userid');
		$select->select->add('au.'.Gpf_Db_Table_AuthUsers::FIRSTNAME, 'name');
		$select->select->add('au.'.Gpf_Db_Table_AuthUsers::LASTNAME, 'surname');
		$select->select->add('au.'.Gpf_Db_Table_AuthUsers::USERNAME, 'username');
		$select->select->add('pu.data1', 'weburl');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::TRANSACTION_ID, 'transid');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::TOTAL_COST, 'totalcost');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::FIXED_COST, 'fixedcost');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::ORDER_ID, 'orderid');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::PRODUCT_ID, 'productid');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::DATE_INSERTED, 'dateinserted');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::R_STATUS, 'rstatus');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::R_TYPE, 'transtype');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::PARRENT_TRANSACTION_ID, 'transkind');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::PAYOUT_STATUS, 'payoutstatus');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::DATE_APPROVED, 'dateapproved');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::COMMISSION, 'commission');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::REFERER_URL, 'refererurl');
		$select->select->add('c.'.Pap_Db_Table_Campaigns::ID, 'campcategoryid');
        $select->select->add('c.'.Pap_Db_Table_Campaigns::NAME, 'campaign');
		$select->select->add('tr.data1', 'data1');
		$select->select->add('tr.data2', 'data2');
		$select->select->add('tr.data3', 'data3');
		$select->select->add('tr.'.Pap_Db_Table_Transactions::COUNTRY_CODE, 'countrycode');
		$select->from->add(Pap_Db_Table_Transactions::getName(), 'tr');
		$select->from->addInnerJoin(Pap_Db_Table_Campaigns::getName(), 'c',
            'tr.'.Pap_Db_Table_Transactions::CAMPAIGN_ID.'=c.'.Pap_Db_Table_Campaigns::ID);
		$select->from->addInnerJoin(Pap_Db_Table_Users::getName(), 'pu',
            'tr.'.Pap_Db_Table_Transactions::USER_ID.'=pu.'.Pap_Db_Table_Users::ID);
		$select->from->addInnerJoin(Gpf_Db_Table_Users::getName(), 'gu',
            'gu.'.Gpf_Db_Table_Users::ID.'=pu.'.Pap_Db_Table_Users::ACCOUNTUSERID);
		$select->from->addInnerJoin(Gpf_Db_Table_AuthUsers::getName(), 'au',
            'gu.'.Gpf_Db_Table_Users::AUTHID.'=au.'.Gpf_Db_Table_AuthUsers::ID);

		if ($statsParams->isDateFromDefined()) {
			$select->where->add('tr.'.Pap_Db_Table_Transactions::DATE_INSERTED, '>=', $statsParams->getDateFrom()->toDateTime());
		}
		if ($statsParams->isDateToDefined()) {
			$select->where->add('tr.'.Pap_Db_Table_Transactions::DATE_INSERTED, '<=', $statsParams->getDateTo()->toDateTime());
		}
		if ($statsParams->getAffiliateId() != '') {
			$select->where->add('tr.'.Pap_Db_Table_Transactions::USER_ID, '=', $statsParams->getAffiliateId());
		}

		return $select->getAllRows();
	}
Пример #28
0
	protected function initWhereConditions() {
		$this->params->addTo($this->selectBuilder, 't');
	}
Пример #29
0
 /**
  * @return Pap_Stats_Params
  */
 protected function getStatsParameters() {
     $params = new Pap_Stats_Params();
     $params->setStatus(Pap_Common_Constants::STATUS_APPROVED);
     return $this->addParamsWithDateRangeFilter($params);
 }
    /**
     * @service traffic_stats read
     * @param $data
     */
    public function getTransactionsData(Gpf_Rpc_Params $params) {
        $data = new Gpf_Rpc_Data($params);
        $filters = $this->checkFilters($data);
        $statsParameters = new Pap_Stats_Params();
        $statsParameters->initFrom($filters);

        $transactions = new Pap_Stats_Transactions($statsParameters);

        $data->setValue("transactionsCount", $transactions->getCount()->getAll());
        $data->setValue("transactionsCountApproved", $transactions->getCount()->getApproved());
        $data->setValue("transactionsCountDeclined", $transactions->getCount()->getDeclined());
        $data->setValue("transactionsCountPaid", $transactions->getCount()->getPaid());
        $data->setValue("transactionsCountPending", $transactions->getCount()->getPending());

        $data->setValue("transactionsTotalCost", $transactions->getTotalCost()->getAll());
        $data->setValue("transactionsTotalCostApproved", $transactions->getTotalCost()->getApproved());
        $data->setValue("transactionsTotalCostDeclined", $transactions->getTotalCost()->getDeclined());
        $data->setValue("transactionsTotalCostPaid", $transactions->getTotalCost()->getPaid());
        $data->setValue("transactionTotalCostPending", $transactions->getTotalCost()->getPending());

        $data->setValue("transactionsCommission", $transactions->getCommission()->getAll());
        $data->setValue("transactionsCommissionApproved", $transactions->getCommission()->getApproved());
        $data->setValue("transactionsCommissionDeclined", $transactions->getCommission()->getDeclined());
        $data->setValue("transactionsCommissionPaid", $transactions->getCommission()->getPaid());
        $data->setValue("transactionsCommissionPending", $transactions->getCommission()->getPending());

        return $data;
    }