/** * Lists all PartProvider models. * @return mixed */ public function actionIndex() { $searchModel = new PartProviderSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); // var_dump($this->user->identity);die; return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); }
public function getProvider() { return $this->hasOne(\app\modules\autoparts\models\PartProviderSearch::className(), ['id' => 'provider_id']); }
/** * findDetails - описание функции */ public static function findDetails($params) { // здесь приходят article и provider_id из URI $details = []; $providerObj = null; $providers = PartProviderSearch::find()->where('enable = :enable', [':enable' => 1])->all(); foreach ($providers as $provider) { if ($provider->cross) { $options = ['provider_data' => $provider, 'article' => $params['article']]; if (!empty($params['store_id'])) { $options = array_merge($options, ['store_id' => (int) $params['store_id']]); } if (!empty($params['city_id'])) { $options = array_merge($options, ['city_id' => (int) $params['city_id']]); } $providerObj = Yii::$app->getModule('autoparts')->run->provider($provider->name, $options); $search_settings = ['code' => $params['article']]; $items = $providerObj->findDetails($search_settings); if (!empty($items) && is_array($items)) { foreach ($items as $item) { array_push($details, $item); } } else { continue; } } } foreach ($details as $detail) { $crosses[$detail['code']] = $detail['groupid']; } foreach ($providers as $provider) { if (!$provider->cross) { $options = ['provider_data' => $provider]; if (!empty($params['store_id'])) { $options = array_merge($options, ['store_id' => (int) $params['store_id']]); } if (!empty($params['city_id'])) { $options = array_merge($options, ['city_id' => (int) $params['city_id']]); } $providerObj = Yii::$app->getModule('autoparts')->run->provider($provider->name, $options); if (!empty($params['store_id'])) { $providerObj->store_id = (int) $params['store_id']; } $search_settings = ['code' => $params['article']]; if ($provider->name == 'Over') { $search_settings = array_merge($search_settings, ['flagpostav' => $provider->flagpostav]); } $items = $providerObj->findDetails($search_settings); if (!empty($crosses)) { $crossItems = null; foreach ($crosses as $crossCode => $crossGroup) { if (isset($items)) { if (!is_array($items)) { continue; } $crossItems = $providerObj->findDetails(['code' => $crossCode]); foreach ($crossItems as $item) { $item['groupid'] = $crossGroup; } } } if (!empty($items)) { $items = array_merge($items, $crossItems); } } if (!empty($items)) { foreach ($items as $item) { array_push($details, $item); } } } } $data_manufacturers = []; foreach ($details as $key => $arr) { $data_manufacturers[$key] = $arr['manufacture']; } $data_shipping_periods = []; foreach ($details as $key => $arr) { $data_shipping_periods[$key] = ($arr['srokmin'] + $arr['srokmax']) / 2; } $data_prices = []; foreach ($details as $key => $arr) { $data_prices[$key] = $arr['price']; } array_multisort($data_manufacturers, SORT_NATURAL | SORT_FLAG_CASE, $data_shipping_periods, $data_prices, $details); return $details; }
private function getProviderId($provider) { $provider = PartProviderSearch::find()->select('id')->where('name = :name', [':name' => $provider])->one(); if (empty($provider)) { throw new Exception('Провайдер не определен в базе данных'); } return $provider->id; }
public function actionUpload() { // $cities = new TStoreSearch(); // $citylist = $cities->getCityList(); $flagpostav = new PartProviderSearch(); $flag_postav_list = $flagpostav->get_flag_postav(); $model = new UploadForm(); if (Yii::$app->request->isPost) { $model->setAttributes(Yii::$app->request->post('UploadForm')); $model->file = UploadedFile::getInstance($model, 'file'); if ($model->file && $model->validate()) { $runtime = \Yii::getAlias('@runtime') . '/'; $model->file->saveAs($runtime . $model->file->baseName . '.' . $model->file->extension); $text['f'] = file($runtime . $model->file); $model->insertData($text); $this->redirect('index'); } } return $this->render('upload', ['model' => $model, 'flag_postav_list' => $flag_postav_list]); }