Example #1
0
 private function getSubscriptionStatusImpl($forceRecheck)
 {
     if ($this->isRecurring->get() == false) {
         return false;
         // not even a recurring order.
     }
     $rebillsLeft = $this->rebillsLeft->get();
     if ($rebillsLeft == -1 || $rebillsLeft > 0) {
         return self::ACTIVE_SUBSCRIPTION;
     }
     // if order is invoice
     $filter = new ARSelectFilter();
     $filter->setCondition(new EqualsCond(new ARFieldHandle(__CLASS__, 'parentID'), $this->getID()));
     $filter->addField('(SELECT SUM(IF(CustomerOrder.rebillsLeft >= 0, CustomerOrder.rebillsLeft, 0 )))', '', 'rebillsLeft');
     $filter->addField('(SELECT SUM(IF(CustomerOrder.rebillsLeft = -1, 1, 0 )))', '', 'isInfinite');
     $filter->setGrouping(new ARFieldHandle(__CLASS__, 'parentID'));
     $data = ActiveRecordModel::getRecordSetArray(__CLASS__, $filter);
     if (count($data) == 1 && ($data[0]['isInfinite'] > 0 || $data[0]['rebillsLeft'] > 0)) {
         return self::ACTIVE_SUBSCRIPTION;
     }
     return false;
 }
Example #2
0
 private function getOrderArray(ARSet $orders)
 {
     $orderArray = $orders->toArray();
     $ids = array();
     foreach ($orderArray as $key => $order) {
         $ids[$order['ID']] = $key;
     }
     ClassLoader::import('application.model.order.OrderNote');
     $f = new ARSelectFilter(new INCond(new ARFieldHandle('OrderNote', 'orderID'), empty($ids) ? array(-1) : array_keys($ids)));
     $f->mergeCondition(new EqualsCond(new ARFieldHandle('OrderNote', 'isAdmin'), 1));
     $f->mergeCondition(new EqualsCond(new ARFieldHandle('OrderNote', 'isRead'), 0));
     $f->setGrouping(new ARFieldHandle('OrderNote', 'orderID'));
     $query = new ARSelectQueryBuilder();
     $query->setFilter($f);
     $query->includeTable('OrderNote');
     $query->removeFieldList();
     $query->addField('COUNT(*)', null, 'cnt');
     $query->addField('orderID');
     foreach (ActiveRecordModel::getDataBySQL($query->getPreparedStatement(ActiveRecord::getDBConnection())) as $res) {
         $orderArray[$ids[$res['orderID']]]['unreadMessageCount'] = $res['cnt'];
     }
     return $orderArray;
 }
Example #3
0
 private function getActiveDates()
 {
     $date = date("Y-m-d");
     $f = new ARSelectFilter();
     $f->setCondition(new AndChainCondition(array(gte(f('EyeExamSchedule.date'), $date), isnull(f('EyeExamSchedule.eyeExamRequestID')))));
     $f->setGrouping(f('EyeExamSchedule.date'));
     $f->setLimit(self::ACTIVE_DATES_LIMIT);
     $timeList = ActiveRecordModel::getRecordSetFields('EyeExamSchedule', $f, array('date'));
     // as result is an array of arrays with single value
     $activeTimes = array();
     foreach ($timeList as $id) {
         $activeTimes[] = $id['date'];
     }
     return $activeTimes;
 }