Ejemplo n.º 1
0
 /**
  * Getting the items
  *
  * @param unknown $sender
  * @param unknown $param
  * @throws Exception
  *
  */
 public function getItems($sender, $param)
 {
     $results = $errors = array();
     try {
         $class = trim($this->_focusEntity);
         $pageNo = 1;
         $pageSize = DaoQuery::DEFAUTL_PAGE_SIZE;
         if (isset($param->CallbackParameter->pagination)) {
             $pageNo = $param->CallbackParameter->pagination->pageNo;
             $pageSize = $param->CallbackParameter->pagination->pageSize;
         }
         $serachCriteria = isset($param->CallbackParameter->searchCriteria) ? json_decode(json_encode($param->CallbackParameter->searchCriteria), true) : array();
         $where = array(1);
         $params = array();
         foreach ($serachCriteria as $field => $value) {
             if (is_array($value) && count($value) === 0 || is_string($value) && ($value = trim($value)) === '') {
                 continue;
             }
             $query = $class::getQuery();
             switch ($field) {
                 case 'pro.ids':
                     $value = explode(',', $value);
                     $where[] = 'pal.productId in (' . implode(", ", array_fill(0, count($value), "?")) . ')';
                     $params = array_merge($params, $value);
                     break;
                 case 'pro.categories':
                     $value = array_map(create_function('$a', 'return trim($a);'), explode(',', $value));
                     $query->eagerLoad("ProductAgeingLog.product", 'inner join', 'pro', 'pro.id = pal.productId and pro.active = 1')->eagerLoad('Product.categories', 'inner join', 'pro_cate', 'pro_cate.active = 1 and pro.id = pro_cate.productId and pro_cate.categoryId in (' . implode(", ", array_fill(0, count($value), "?")) . ')');
                     $params = array_merge($value, $params);
                     break;
                 case 'po.id':
                     ProductAgeingLog::getQuery()->eagerLoad('ProductAgeingLog.purchaseOrderItem', 'inner join', 'pal_po');
                     $where[] = '(pal_po.id = ? )';
                     $params[] = $value;
                     break;
                 case 'aged-days':
                     $where[] = 'date_add(pal.lastPurchaseTime, INTERVAL ' . intval($value) . ' DAY) < NOW()';
                     break;
             }
         }
         $stats = array();
         $objects = $class::getAllByCriteria(implode(' AND ', $where), $params, false, $pageNo, $pageSize, array('pal.lastPurchaseTime' => 'asc'), $stats);
         $results['pageStats'] = $stats;
         $results['items'] = array();
         foreach ($objects as $obj) {
             $results['items'][] = $obj->getJson(array('NOW' => UDate::now()->__toString()));
         }
     } catch (Exception $ex) {
         $errors[] = $ex->getMessage() . $ex->getTraceAsString();
     }
     $param->ResponseData = StringUtilsAbstract::getJson($results, $errors);
 }
Ejemplo n.º 2
0
 private static function _recordProductAgeingLog(ProductQtyLog $productQtyLog, $comments = '')
 {
     return ProductAgeingLog::create($productQtyLog, $comments);
 }
Ejemplo n.º 3
0
 /**
  *
  * @param ProductQtyLog			$productQtyLog
  * @param string				$comments
  * @return Ambigous <BaseEntityAbstract, GenericDAO>
  */
 public static function create(ProductQtyLog $productQtyLog, $comments = '')
 {
     $log = new ProductAgeingLog();
     $log->setProductQtyLog($productQtyLog)->setComments($comments);
     return $log->save();
 }