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(); } }
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(); } }
/** * @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; }