コード例 #1
0
ファイル: Save.class.php プロジェクト: AmineCherrai/rostanvo
    public function save(Pap_Contexts_Impression $context) {
        $context->debug('  Saving impression started');

        $impression = $this->createRowImpression();
        $impression->setAccountId($context->getAccountId());
        $impression->setUserId($context->getUserObject()->getId());
        $impression->setBannerId($context->getBannerId());
        $impression->setParentBannerId($context->getParentBannerId());
        $impression->setCampaignId($context->getCampaignId());
        $impression->setChannel($context->getChannelId());
        $impression->setCountryCode('');
        if (!$this->isGeoIpImpressionsDisabled()) {
            $impression->setCountryCode($context->getCountryCode());
        }
        $impression->setData1($context->getClickData1());
        $impression->setData2($context->getClickData2());
        $time = new Gpf_DateTime($context->getDate());
        $impression->setTime($time->getHourStart()->toDateTime());

        try {
        	$this->saveAndIncrementImpressionCount($context, $impression);
        } catch (Gpf_Exception $e) {
        	$context->debug($this->_('Saving impression interrupted: %s', $e->getMessage()));
        }

        $context->debug('  Saving impression ended');
    }
コード例 #2
0
ファイル: Main.class.php プロジェクト: AmineCherrai/rostanvo
	public function saveCommission(Pap_Contexts_Impression $context) {
	    $context->debug('    Impression: CPM commission starting');
	    $cpmCommission = new Pap_Db_CpmCommission();
	    $cpmCommission->setUserId($context->getUserObject()->getId());
	    $cpmCommission->setBannerId($context->getBannerObject()->getId());
	    try {
	        $context->debug('    Impression: load CPM impression count for user: '******' banner: ' . $context->getBannerObject()->getId());
	        $cpmCommission->load();
	        $cpmCommission->setCount($cpmCommission->getCount()+$context->getCount());
	        $context->debug('    Impression: CPM actual impression count: ' . $cpmCommission->getCount());
	        if ($cpmCommission->getCount() < self::IMPRESSION_COUNT_PER_COMMISSION) {
	            $cpmCommission->save();
	            $context->debug('    Impression: CPM actual impression count saved.');
	        } else {
	            try {
	                while ($cpmCommission->getCount() >= self::IMPRESSION_COUNT_PER_COMMISSION) {
	                    $cpmCommission->setCount($cpmCommission->getCount()-self::IMPRESSION_COUNT_PER_COMMISSION);
                        $this->saveCpmTransaction($context);
                        $context->debug('    Impression: CPM commission created');
	                }
	            } catch (Pap_Tracking_Exception $e) {
	                $context->debug($this->_sys("CPM commissions not defined in campaign %s",
	                                               $context->getCampaignObject()->getName()));
                    $cpmCommission->setCount($cpmCommission->getCount() % self::IMPRESSION_COUNT_PER_COMMISSION);
	                $context->debug('    Impression: CPM commission not defined, CPM impression count set ' . $cpmCommission->getCount() % self::IMPRESSION_COUNT_PER_COMMISSION);
	            }

	            $cpmCommission->save();
	        }
	    } catch (Gpf_DbEngine_NoRowException $e) {
	        $cpmCommission->setCount($context->getCount());
	        $cpmCommission->save();
	        $context->debug('    Impression: CPM commission not impression count, count set: ' . $context->getCount());
	    }
	    $context->debug('    Impression: CPM commission ending');
	}