/** * Basic select to retrieve Article data. * desc Item; +--------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+---------+-------+ | objectID | bigint(20) | NO | PRI | NULL | | | Sku_Number | varchar(85) | YES | | NULL | | | Client_Code | varchar(85) | YES | MUL | NULL | | | Client_SKU | varchar(85) | YES | MUL | NULL | | | Description | varchar(255) | YES | | NULL | | | UOM | varchar(85) | YES | | NULL | | | Per_Unit_Weight | varchar(85) | YES | | NULL | | | Retail_Price | varchar(85) | YES | | NULL | | | Case_Pack | varchar(85) | YES | | NULL | | | UPC | varchar(85) | YES | MUL | NULL | | | Colour | varchar(85) | YES | | NULL | | | Zone | varchar(85) | YES | | NULL | | | Delivery_Number | varchar(85) | YES | MUL | NULL | | | PO_Number | varchar(85) | YES | MUL | NULL | | | Description_2 | varchar(255) | YES | | NULL | | | Vendor_Item_Number | varchar(85) | YES | | NULL | | | Cases_Ordered | varchar(85) | YES | | NULL | | | Master_Pack_Cube | varchar(85) | YES | | NULL | | | Master_Pack_Weight | varchar(85) | YES | | NULL | | | Total_Weight | varchar(85) | YES | | NULL | | | Total_Cube | varchar(85) | YES | | NULL | | +--------------------+--------------+------+-----+---------+-------+ 21 rows in set (0.00 sec) * @return mixed */ private function articleSelect() { // using the Eloquent model return Item::from('Item as Article')->select('Article.objectID', 'Article.Sku_Number', 'Article.Client_Code', 'Article.Client_SKU', 'Article.Description', 'Article.UOM', 'Article.Per_Unit_Weight', 'Article.Retail_Price', 'Article.Case_Pack', 'Article.UPC', 'Article.Colour', 'Article.Zone', 'Article.Delivery_Number', 'Article.PO_Number', 'Article.Description_2', 'Article.Vendor_Item_Number', 'Article.Cases_Ordered', 'Article.Master_Pack_Cube', 'Article.Master_Pack_Weight', 'Article.Total_Weight', 'Article.Total_Cube')->join('itemKit', 'itemKit.parentID', '=', 'Article.objectID')->distinct(); }
private function findAdditional($container) { /* * Here we want to change the contents within the $container, not the $container, * so retrieve/setup $items as an array_expression holding those contents */ $items = $container; // if $container is a paginator if (is_a($container, 'Illuminate\\Pagination\\LengthAwarePaginator')) { $items = $container->items(); } elseif (!is_array($container) && !is_a($container, 'Illuminate\\Support\\Collection')) { $items = array($container); } //dd(__METHOD__."(".__LINE__.")",compact('container','items')); //Log::debug(__METHOD__."(".__LINE__."): container class: ".get_class($container)); //Log::debug(__METHOD__."(".__LINE__."): items class: ".(is_array($items) ? "array(".count($items).")" : get_class($items))); foreach ($items as $upc) { if (isset($upc)) { // could be null if find($id) did not find an article /* * Add these fields from Item_Additional | rework | varchar(85) | YES | | NULL | | */ $additionals = ItemAdditional::where('objectID', $upc->objectID)->get(); foreach ($additionals as $additional) { $upc->{$additional}['Name'] = $additional['Value']; } /* * Add these fields from Article | parentID | varchar(85) | YES | | NULL | | | parentSKU | varchar(85) | YES | | NULL | | | Quantity | bigint(20) | YES | | NULL | | */ $articles = Item::from('Item as Article')->join('itemKit', 'itemKit.parentID', '=', 'Article.objectID')->select('Article.objectID', 'Article.Client_SKU', 'itemKit.Quantity')->distinct()->where('itemKit.objectID', '=', $upc->objectID)->get(); foreach ($articles as $article) { $parents = $upc->parents; $parents[$article->objectID] = (object) ['parentID' => $article->objectID, 'parentSKU' => $article->Client_SKU, 'Quantity' => $article->Quantity]; $upc->parents = $parents; } //dd(__METHOD__.'('.__LINE__.')',compact('container','items','upc','additionals','articles','parents')); } } return $container; }