function buildFrom() {
     $this->_selectBuilder->from->add(Pap_Db_Table_RecurringCommissions::getName(), 'rc');
     $this->_selectBuilder->from->addLeftJoin(Pap_Db_Table_RecurringCommissionEntries::getName(),
         "rce", "rce.recurringcommissionid = rc.recurringcommissionid AND rce.tier = 1");
     $this->_selectBuilder->from->addLeftJoin(Pap_Db_Table_Users::getName(), "pu", "rce.userid = pu.userid");
     $this->_selectBuilder->from->addLeftJoin(Gpf_Db_Table_Users::getName(), "gu", "pu.accountuserid = gu.accountuserid");
     $this->_selectBuilder->from->addLeftJoin(Gpf_Db_Table_AuthUsers::getName(), "au", "gu.authid = au.authid");
     
     $this->_selectBuilder->from->addLeftJoin(Pap_Db_Table_Transactions::getName(), "t", "t.transid = rc.transid");
     $this->_selectBuilder->from->addLeftJoin(Gpf_Db_Table_RecurrencePresets::getName(), 'rp', 'rp.recurrencepresetid = rc.recurrencepresetid');
 }
    private function massUpdateStatus($status, $ids, $response) {
        $update = new Gpf_SqlBuilder_UpdateBuilder();
        $update->set->add(Pap_Db_Table_RecurringCommissions::STATUS, $status);
        $update->from->add(Pap_Db_Table_RecurringCommissions::getName());

        $update->where->add(Pap_Db_Table_RecurringCommissions::getName().".".Pap_Db_Table_RecurringCommissions::ID, "IN", $ids);

        try {
            $update->execute();
            $response->addOk();
        } catch(Gpf_DbEngine_NoRowException $e) {
            $response->addError();
        }
    }
Beispiel #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();
        }
    }
Beispiel #4
0
 /**
  * @return Gpf_SqlBuilder_SelectBuilder
  */
 public static function getRecurringSelect($orderId, $userId = null) {
     $select = new Gpf_SqlBuilder_SelectBuilder();
     $select->select->addAll(Pap_Db_Table_RecurringCommissions::getInstance(), 'rc');
     $select->from->add(Pap_Db_Table_RecurringCommissions::getName(), 'rc');
     $select->from->addLeftJoin(Pap_Db_Table_RecurringCommissionEntries::getName(),
         'rce', 'rce.'.Pap_Db_Table_RecurringCommissionEntries::RECURRING_COMMISSION_ID.' = rc.'.Pap_Db_Table_RecurringCommissions::ID.
         ' AND rce.'.Pap_Db_Table_RecurringCommissionEntries::TIER.' = 1');
     $select->where->add('rc.'.Pap_Db_Table_RecurringCommissions::ORDER_ID, '=', $orderId);
     $select->where->add('rc.'.Pap_Db_Table_RecurringCommissions::STATUS, '=', Pap_Common_Constants::STATUS_APPROVED);
     if (!is_null($userId)) {
         $select->where->add('rce.'.Pap_Db_Table_RecurringCommissionEntries::USERID, '=', $userId);
     }
     return $select;
 }
 public function init() {
     $this->setTable(Pap_Db_Table_RecurringCommissions::getInstance());
     parent::init();
 }
 /**
  * @return Pap_Db_Table_RecurringCommissions
  */
 public static function getInstance() {
     if(self::$instance === null) {
         self::$instance = new self;
     }
     return self::$instance;
 }