/** * Get a count or list of skus * * @param string $rtrn What data to return * @param int $pId products * @param array $filters Filters to apply to data retrieval * @return mixed */ public function skus($rtrn = 'list', $pId, $filters = array()) { if (!isset($filters['sort'])) { $filters['sort'] = 'title'; } if (!isset($filters['sort_Dir'])) { $filters['sort_Dir'] = 'ASC'; } $warehouse = new Warehouse(); switch (strtolower($rtrn)) { case 'count': $this->_count = $warehouse->getProductSkus($pId, 'count', false); return $this->_count; break; case 'list': case 'rows': case 'results': default: if (!($results = $warehouse->getProductSkus($pId, 'rows', false))) { $results = array(); } else { // Get SKUs info $results = $warehouse->getSkusInfo($results, true, $filters); // Strip to just info $resultsPlain = array(); foreach ($results as $k => $res) { $resultsPlain[] = $res['info']; } $results = $resultsPlain; } $this->_products = new \Hubzero\Base\ItemList($results); return $this->_products; } }
/** * Get all items in the transaction * * @param int transaction ID * @return array of items in the transaction, false if no items in transaction */ protected static function getTransactionItems($tId) { $db = \App::get('db'); $sql = "SELECT `sId`, `tiQty`, `tiPrice` FROM `#__cart_transaction_items` ti WHERE ti.`tId` = {$tId}"; $db->setQuery($sql); $db->query(); if (!$db->getNumRows()) { return false; } $allSkuInfo = $db->loadObjectList('sId'); $skus = $db->loadColumn(); $warehouse = new Warehouse(); $skuInfo = $warehouse->getSkusInfo($skus); // Update skuInfo with transaction info foreach ($skuInfo as $sId => $sku) { $transactionInfo = new \stdClass(); $transactionInfo->qty = $allSkuInfo[$sId]->tiQty; $transactionInfo->tiPrice = $allSkuInfo[$sId]->tiPrice; $skuInfo[$sId]['transactionInfo'] = $transactionInfo; unset($transactionInfo); } if (empty($skuInfo)) { return false; } return $skuInfo; }