public function createCommissions() { $comissionEntry = new Pap_Db_RecurringCommissionEntry(); $comissionEntry->setRecurringCommissionId($this->getId()); try { $parentTransaction = $this->getTransaction(); } catch (Gpf_Exception $e) { $parentTransaction = null; } foreach ($comissionEntry->loadCollection() as $comissionEntry) { if (!$this->isExistsUser($comissionEntry->getUserId())) { Gpf_log::error('Recurring commissions - createCommissions: user does not exist: ' . $comissionEntry->getUserId()); if ($comissionEntry->getTier() == '1') { return; } else { continue; } } $transaction = new Pap_Common_Transaction(); $transaction->setDateInserted(Gpf_Common_DateUtils::now()); $transaction->setType(Pap_Common_Constants::TYPE_RECURRING); $transaction->setTier($comissionEntry->getTier()); $transaction->setUserId($comissionEntry->getUserId()); $transaction->setCommissionTypeId($this->getCommissionTypeId()); $transaction->setParentTransactionId($this->getTransactionId()); $transaction->setCommission($comissionEntry->getCommission()); $transaction->setPayoutStatus(Pap_Common_Transaction::PAYOUT_UNPAID); $transaction->setStatus(Pap_Common_Constants::STATUS_APPROVED); $transaction->setOrderId($this->getOrderId()); if ($parentTransaction != null) { if ($transaction->getOrderId() == '') { $transaction->setOrderId($parentTransaction->getOrderId()); } $transaction->setProductId($parentTransaction->getProductId()); $transaction->setTotalCost($parentTransaction->getTotalCost()); $transaction->setCampaignId($parentTransaction->getCampaignId()); $transaction->setBannerId($parentTransaction->getBannerId()); $transaction->setParentBannerId($parentTransaction->getParentBannerId()); $transaction->setCountryCode($parentTransaction->getCountryCode()); $transaction->setData1($parentTransaction->getData1()); $transaction->setData2($parentTransaction->getData2()); $transaction->setData3($parentTransaction->getData3()); $transaction->setData4($parentTransaction->getData4()); $transaction->setData5($parentTransaction->getData5()); } $transaction->save(); } }
public function saveCommissions(Pap_Contexts_Tracking $context) { $context->debug('Saving recurring commissions started'); $commissionType = $context->getCommissionTypeObject(); if ($commissionType == null) { $context->debug('No commission type defined. Recurring commissions saving ended'); return; } if ($commissionType->getRecurrencePresetId() == Pap_Db_CommissionType::RECURRENCE_NONE || $commissionType->getRecurrencePresetId() == null) { $context->debug('Saving recurring commissions ended - No recurring commissions defined'); return; } $tier = 1; $currentUser = $context->getUserObject(); $currentCommission = $context->getCommission($tier, Pap_Db_Table_Commissions::SUBTYPE_RECURRING); if ($currentUser == null || $currentCommission == null) { $context->debug('Saving recurring commissions ended - current user or current commission is null'); return; } $recurringCommission = new Pap_Db_RecurringCommission(); $relatedTransaction = $this->getTransaction($context); $recurringCommission->setOrderId($relatedTransaction->getOrderId()); $recurringCommission->setTransactionId($relatedTransaction->getTransactionId()); $recurringCommission->setRecurrencePresetId($commissionType->getRecurrencePresetId()); $recurringCommission->setCommissionTypeId($commissionType->getId()); $recurringCommission->setStatus($relatedTransaction->getStatus()); $recurringCommission->setLastCommissionDate($relatedTransaction->getDateInserted()); $recurringCommission->insert(); $context->debug('Recurring commission successfully saved.'); while($currentUser != null && $currentCommission != null && $tier < 100) { $rcEntry = new Pap_Db_RecurringCommissionEntry(); $rcEntry->setRecurringCommissionId($recurringCommission->getId()); $rcEntry->setUserId($currentUser->getId()); $rcEntry->setTier($tier); $rcEntry->setCommission($currentCommission->getCommission($context->getRealTotalCost())); $rcEntry->insert(); $tier++; $currentUser = $currentUser->getParentUser(); $currentCommission = $context->getCommission($tier, Pap_Db_Table_Commissions::SUBTYPE_RECURRING); } $context->debug('Saving recurring commissions ended'); $context->debug(""); }