/** * @return Gpf_DbEngine_Row_Collection */ private function getTierCommissionCollection(Pap_Contexts_Tracking $context, $userId, $tier) { $context->debug('Loading tier commission collection for userid: ' . $userId . ' and tier: ' . $tier); $commissionTypeId = $context->getCommissionTypeObject()->getId(); $groupId = $this->getCommissionGroupForUser($context->getCampaignObject(), $userId); $hash = $commissionTypeId.$groupId.$tier; if (isset($this->commissions[$hash])) { $context->debug('Record found in cache.'); return $this->commissions[$hash]; } $context->debug('Trying to load commission for typeid:' . $commissionTypeId . ', groupId:' . $groupId . ',tier:' . $tier); $commission = new Pap_Db_Commission(); $commission->setCommissionTypeId($commissionTypeId); $commission->setGroupId($groupId); $commission->setTier($tier); try { $commissions = $this->loadCommissionCollectionFromData($commission); } catch (Gpf_DbEngine_NoRowException $e) { $context->debug('Error loading collection from data. returning empty collection.'); return new Gpf_DbEngine_Row_Collection(); } $context->debug('Commissions succ. loaded, saving to cache.'); $this->commissions[$hash] = $commissions; return $this->commissions[$hash]; }
protected function insertCommissionObject($tier, $subType, $commissionValueType, $commissionValue, $groupId, $commissionTypeId) { $obj = new Pap_Db_Commission(); $obj->setTier($tier); $obj->setSubtype($subType); $obj->setCommType($commissionValueType); $obj->setCommission($commissionValue); $obj->setGroupId($groupId); $obj->setCommissionTypeId($commissionTypeId); $obj->save(); }
/** * @param Pap_Db_Transaction $transaction * @return Pap_Db_Commission */ protected function getCommissionForTransaction(Pap_Db_Transaction $transaction) { $commission = new Pap_Db_Commission(); $commission->setCommissionTypeId($transaction->getCommissionTypeId()); $commission->setGroupId($transaction->getCommissionGroupId()); $commission->setTier($transaction->getTier()); try { $commission->loadFromData(array(Pap_Db_Table_Commissions::TYPE_ID, Pap_Db_Table_Commissions::GROUP_ID)); } catch (Gpf_Exception $e) { $userInGroup = Pap_Db_Table_UserInCommissionGroup::getInstance()->getUserCommissionGroup($transaction->getUserId(), $transaction->getCampaignId()); $commission->setGroupId($userInGroup->getCommissionGroupId()); try { $commission->loadFromData(array(Pap_Db_Table_Commissions::TYPE_ID, Pap_Db_Table_Commissions::GROUP_ID, Pap_Db_Table_Commissions::TIER)); } catch (Gpf_Exception $e) { throw new Gpf_Exception($this->_('Unable to find commision for transaction id=' . $transaction->getId())); } } return $commission; }