private function workupList(&$list, $fields) { if (!$list) { return; } foreach ($list as &$v) { $v['icon'] = shopProductStocksLogModel::getIcon($v['type']); if (!$v['description']) { if ($v['after_count'] === null) { $v['description'] = _w('In stock value updated to ∞'); } else { $v['description'] = sprintf(_w('In stock value updated to %d'), $v['after_count']); } } else { if ($v['type'] == self::TYPE_ORDER) { $v['description'] = sprintf(_w($v['description']), '<a href="?action=orders#/order/' . $v['order_id'] . '/">' . shopHelper::encodeOrderId($v['order_id']) . '</a>'); } } } unset($v); $stock_ids = array(); foreach ($list as $v) { $stock_ids[] = $v['stock_id']; } $model = new shopStockModel(); $stocks = $model->getByField('id', array_unique($stock_ids), 'id'); foreach ($list as &$v) { if (isset($stocks[$v['stock_id']])) { $v['stock_name'] = $stocks[$v['stock_id']]['name']; } } unset($v); foreach ($fields as $f) { if ($f == 'sku_name') { $sku_ids = array(); foreach ($list as $v) { $sku_ids[] = $v['sku_id']; } $model = new shopProductSkusModel(); $skus = $model->select('id,sku,name')->where("id IN(" . implode(',', array_unique($sku_ids)) . ")")->fetchAll('id'); foreach ($list as &$v) { if (isset($skus[$v['sku_id']])) { $v['sku_name'] = $skus[$v['sku_id']]['name']; if ($v['sku_name']) { if ($skus[$v['sku_id']]['sku']) { $v['sku_name'] .= ' (' . $skus[$v['sku_id']]['sku'] . ')'; } } else { if ($skus[$v['sku_id']]['sku']) { $v['sku_name'] = $skus[$v['sku_id']]['sku']; } } } } unset($v); } if ($f == 'product_name') { $product_ids = array(); foreach ($list as $v) { $product_ids[] = $v['product_id']; } $model = new shopProductModel(); $products = $model->select('id,name')->where("id IN (" . implode(',', array_unique($product_ids)) . ")")->fetchAll('id'); foreach ($list as &$v) { if (isset($products[$v['product_id']])) { $v['product_name'] = $products[$v['product_id']]['name']; } } unset($v); } } }