public function process(Pap_Db_Visit $visit) {
    	Gpf_Log::debug('Action processor processing...');
        $accountContext = $this->processAccount($visit);        
        if (!$accountContext->getDoTrackerSave()) {
        	Gpf_Log::debug('Saving disabled because of account problems.');
            return;
        }
        $this->visitorAffiliateCache->setAccountId($accountContext->getAccountId());

        try {
            $actions = $this->loadActions($visit->getSaleParams());
        } catch (Gpf_Exception $e) {
            Gpf_Log::debug('Action processor: ' . $e->getMessage());
            return;
        }

        foreach ($actions as $action) {
            $context = new Pap_Contexts_Action($action, $visit);
            $context->debug('Saving sale/action for visit: '.$visit->toText());
            $context->setDoCommissionsSave(true);
            $context->setAccountId($accountContext->getAccountId(), $accountContext->getAccountRecognizeMethod());
            
            try {
                $this->processAction($context);
            } catch (Gpf_Exception $e) {
                $context->debug("Saving commission interrupted: ".$e->getMessage());
            }
        }
    }
Ejemplo n.º 2
0
 private function createContext(Pap_Db_Visit $visit) {
     $context = new Pap_Contexts_Click();
     $context->setDoTrackerSave(true);
     $context->setVisit($visit);
     $context->setVisitorId($visit->getVisitorId());
     $context->setDateCreated($visit->getDateVisit());
     $this->accountRecognizer->recognize($context);
     $this->visitorAffiliateCache->setAccountId($context->getAccountId());
     return $context;
 }
    public function process(Pap_Db_Visit $visit) {
        $visitorId = $visit->getVisitorId();
        $this->logMessage('Backward compatibility processor ('.$visitorId.') - started');

        if (!$visit->isNewVisitor()) {
            $this->logMessage('Not new visitor ('.$visitorId.') - stopped');
            return;
        }

        if ($visit->getCookies() == '') {
            $this->logMessage('Not old cookie ('.$visitorId.') - stopped');
            return;
        }
        
        $this->visitorAffiliateCache->setAccountId(Gpf_Db_Account::DEFAULT_ACCOUNT_ID);
        $visitorAffiliates = $this->visitorAffiliateCache->getVisitorAffiliateAllRows($visitorId);

        $this->loadCookies($visit);

        if ($this->firstClickCookie !== null) {
            $this->logMessage('Processing first click cookie');
            $visitorAffiliates->add($this->createVisitorAffiliate($this->firstClickCookie, $visit));
            $visit->setNewVisitor(false);
        }

        if ($this->lastClickCookie !== null) {
            if ($this->firstClickCookie == null ||
            !$this->lastClickCookie->equals($this->firstClickCookie)) {
                $this->logMessage('Processing last click cookie');
                $visitorAffiliates->add($this->createVisitorAffiliate($this->lastClickCookie, $visit));
                $visit->setNewVisitor(false);
            }
        }

        if ($this->saleCookie !== null) {
            $this->logMessage('Processing sale cookie - creating visitor affiliate');
            $saleVisitorAffiliate = $this->createVisitorAffiliateFromSale($this->saleCookie, $visit);
            $this->addSaleToVisitorAffiliates($saleVisitorAffiliate, $visitorAffiliates);
            $visit->setNewVisitor(false);
        }

        $this->logMessage('Backward compatibility - finished');
    }
 protected function onCampaignRecognized(Pap_Common_Campaign $campaign, Pap_Contexts_Tracking $context) {
     parent::onCampaignRecognized($campaign, $context);
     $this->visitorAffiliateCache->setAccountId($context->getAccountId());
 }