Пример #1
0
    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);
    }
Пример #3
0
    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();
        }
    }