public function buildIndex($type = false, $type_id = false, $chain = false, $strSearch = false, $provider_id = false, $brand_id = false) { $purchaseModel = new Purchase(); $labelModel = new Label(); $userModel = new User(); $count = $this->_glob['_countProductsOfPage']; if (isset($_GET['show']) and $_GET['show'] == 'all') { $count = $this->_glob['_maxCountProductsOfPage']; } $purchases = $purchaseModel->getPurchases($type, $type_id, $strSearch, $count, $provider_id, $brand_id); $productsIds = $purchases->pluck('product_id'); $productsIds = $productsIds->toArray(); $labels = $labelModel->getLabelsByProductsId($productsIds); foreach ($purchases as $purchase) { $purchase->zakup = $this->getRub($purchase->base_price * ((100 - $purchase->discount_price) / 100) * ($this->_glob['_curr'][$purchase->currency]['RATE'] * ((100 + $purchase->raise) / 100)) * ((100 - $purchase->discount_bulk) / 100), $purchase->currency); //та самая ебанутая формула расчета закупа if (count($labels) > 0) { $arLabel = []; foreach ($labels as $label) { if ($purchase->product_id == $label->product_id) { $arLabel[] = $label; } } $purchase->labels = $arLabel; } } $userTemplates = $userModel->getTemplates('purchases'); $serializeFields = $userModel->getFields(Auth::User()->template_purch_id, 'purchases'); $showFields = false; if ($serializeFields != null) { $showFields = unserialize($serializeFields->fields); } $pathToProduct = '/product'; if ($type == 'category') { $pathToProduct = '/product/category/' . $type_id[0]; } if ($type == 'brand') { $pathToProduct = '/product/brand/' . $type_id; } if ($type == 'product') { $pathToProduct = '/product/product/' . $type_id; } if ($type == 'label') { $pathToProduct = '/product/label/' . $type_id; } if ($type == 'flag') { $pathToProduct = '/product/flag/'; } if ($strSearch) { $pathToProduct = '/product/search/' . $strSearch; } return view('purchases.index')->with('title', 'Условия и цены')->with('purchases', $purchases)->with('chain', $chain)->with('pathToProduct', $pathToProduct)->with('templates', $userTemplates)->with('fields', $showFields); }