public function checkRules(Pap_Common_Transaction $transaction) { Gpf_Log::debug('Performance reward started'); foreach($this->getRules($transaction->getCampaignId()) as $ruleRecord) { $rule = new Pap_Features_PerformanceRewards_Rule_Transaction($transaction); $rule->fillFromRecord($ruleRecord); try { Gpf_Log::debug('Processing rule ' . $rule->getId() . ': ' . $rule->getAction()); $rule->executeAction(); Gpf_Log::debug('Rule completed'); } catch (Exception $e) { Gpf_Log::error(sprintf('Rule %s failed. Reason: %s', $rule->getId(), $e->getMessage())); } } Gpf_Log::debug('Performance reward ended'); }
protected function afterExecute(Gpf_Data_RecordSet $inputResult) { $outPutResult = new Gpf_Data_RecordSet(); $outPutResult->setHeader(array(parent::KEY_COLUMN_ID, 'number', 'rule')); foreach ($inputResult as $row) { $rule = new Pap_Features_PerformanceRewards_Rule_Transaction(); $rule->fillFromRecord($row); $rule->setCommissionGroupId($row->get('commissiongroup')); try { $outPutResult->add(array($row->get(parent::KEY_COLUMN_ID), $row->get('number'), $rule->getString())); } catch (Pap_Features_PerformanceRewards_UnknownRuleException $e) { $outPutResult->add(array($row->get(parent::KEY_COLUMN_ID), $row->get('number'), $this->_('Unknown rule (%s) - probably created with some feature or plugin - this rule will not be applied.', $rule->getAction()))); } } return $outPutResult; }