private function profileDefault($mode = 'run', $priceType = null) { if ($mode == 'info') { return ['name' => 'Базовый', 'description' => 'Профиль по умолчанию']; } if ($mode == 'run') { $offers = \app\models\Offers::find()->all(); $arCsv = ['Название;Поставщик;Исходная цена;Посчитанная цена;Количество']; $providers = \app\models\Providers::find()->all(); $arProviders = []; foreach ($providers as $value) { $arProviders[$value->id] = $value->name; } foreach ($offers as $offer) { $name = \app\components\Goods::getName($offer->goods_id); $provider = $arProviders[$offer->providers_id]; $price = $offer->price; $quantity = $offer->quantity; // print $name; $calcPrice = $price * \app\components\CalculationDiscount::calc($offer->goods_id, $offer->providers_id, $priceType); // $calcPrice = \app\components\CalculationDiscount::calc($offer); $arCsv[] = "{$name};{$provider};{$price};{$calcPrice};{$quantity}"; } $csv = implode(chr(10), $arCsv); $this->_unloadStr('prise.csv', iconv('utf-8', 'windows-1251', $csv)); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Offers::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'quantity' => $this->quantity, 'fix_price' => $this->fix_price, 'providers_id' => $this->providers_id, 'goods_id' => $this->goods_id, 'price' => $this->price]); return $dataProvider; }