private function removeRecurringCommission() { $this->debug('2checkout INS plugin: Removing recurring commisions with orderId: ' . $this->getSubscriptionID()); $commissions = Pap_Features_RecurringCommissions_Main::getRecurringSelect($this->getSubscriptionID())->getAllRows(); $recurringCommissions = new Pap_Features_RecurringCommissions_RecurringCommission(); foreach ($recurringCommissions->loadCollectionFromRecordset($commissions) as $recurringCommission) { $recurringCommission->delete(); } }
/** * @param $orderId * @return Gpf_DbEngine_Row_Collection * @throws Gpf_Exception */ private function loadRecurringCommissionFromOrderId($orderId, $userId = null) { $commissions = $this->getRecurringCommissions($orderId, $userId); if ($commissions->getSize() == 0) { throw new Gpf_Exception($this->_('Unable to load recurring commission with OrderID %s', $orderId) . (!is_null($userId) ? ' ' .$this->_('and UserId %s', $userId) : '' )); } $recurringCommissions = new Pap_Features_RecurringCommissions_RecurringCommission(); return $recurringCommissions->loadCollectionFromRecordset($commissions); }
protected function execute() { $select = new Gpf_SqlBuilder_SelectBuilder(); $select->select->addAll(Pap_Db_Table_RecurringCommissions::getInstance()); $select->from->add(Pap_Db_Table_RecurringCommissions::getName()); foreach ($select->getAllRowsIterator() as $row) { $recurringCommission = new Pap_Features_RecurringCommissions_RecurringCommission(); $recurringCommission->fillFromRecord($row); $recurringCommission->setPersistent(true); if ($this->isDone($recurringCommission->getId())) { continue; } $recurrencePreset = $recurringCommission->getRecurrencePreset(); $lastCommissionDate = $recurringCommission->getLastCommissionDate(); if ($lastCommissionDate == null) { $lastCommissionDate = $recurringCommission->getTransaction()->getDateInserted(); } $nextTimestamp = $recurrencePreset->getNextDate(Gpf_Common_DateUtils::mysqlDateTime2Timestamp($lastCommissionDate)); if ($nextTimestamp == null || $nextTimestamp > time()) { continue; } $recurringCommission->setLastCommissionDate(Gpf_Common_DateUtils::getDateTime($nextTimestamp)); if ($recurringCommission->getStatus() == Pap_Common_Constants::STATUS_APPROVED) { try { $recurringCommission->createCommissions(); } catch (Gpf_Exception $e) { Gpf_Log::critical('Recurring commissions - error create commissions: ' . $e->getMessage()); $this->setDone(); } } $recurringCommission->save(); $this->setDone(); } }