public function recognize(Pap_Contexts_Tracking $context, $customStatus = null) { $context->debug('Recognizing commission settings started'); $campaign = $context->getCampaignObject(); if($campaign == null) { $context->debug(' Error, campaign cannot be null!'); return; } $commissionType = $context->getCommissionTypeObject(); if ($commissionType == null) { $context->debug(' No commission type found for this action'); return; } try { $commissionCollection = $this->getCommissionsCollection($context); foreach($commissionCollection as $dbCommission) { $commission = new Pap_Tracking_Common_Commission(); $commission->loadFrom($dbCommission); $commission->setStatusFromType($commissionType); if ($customStatus != null) { $commission->setStatus($customStatus); } $context->addCommission($commission); } $context->debug(' Commission settings loaded, # of tiers: ' . $commissionCollection->getSize()); } catch(Exception $e) { $context->debug(' EXCEPTION, STOPPING. Exception message: '.$e->getMessage()); return; } $context->debug('Recognizing commission settings ended'); $context->debug(''); }
public function computeCustomCommissions(Pap_Contexts_Action $context) { $context->debug('Custom commission computing started'); $commission = $context->getCustomCommissionFromRequest(); if($commission != '') { $context->debug(" Found custom commission: ".$commission.", decoding"); $type = $this->getParameterType($commission); $commission = $this->makeCorrections($commission); $value = ''; if(is_numeric($commission) && $commission >= 0) { $value = $commission; } if($value != '') { $context->debug(" Custom commission is $type $value"); $i = 1; while ($context->getCommission($i) != null) { $context->removeCommission($i++); } $newCommission = new Pap_Tracking_Common_Commission(1, $type, $value); $newCommission->setStatus($this->recognizeStatus($context->getCommissionTypeObject())); $context->addCommission($newCommission); if ($type!='%'){ $this->recognizeCurrency->computeCustomCommission($context); } } else { $context->debug(" Custom commission has bad format"); } } else { $context->debug('No custom commission defined'); } $context->debug('Checking for forced commissions ended'); $context->debug('Custom commission computing ended'); $context->debug(""); }