Exemple #1
0
 /**
  * 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]);
 }
Exemple #2
0
 public function getProvider()
 {
     return $this->hasOne(\app\modules\autoparts\models\PartProviderSearch::className(), ['id' => 'provider_id']);
 }
Exemple #3
0
 /**
  * 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;
 }
Exemple #4
0
 private function getProviderId($provider)
 {
     $provider = PartProviderSearch::find()->select('id')->where('name = :name', [':name' => $provider])->one();
     if (empty($provider)) {
         throw new Exception('Провайдер не определен в базе данных');
     }
     return $provider->id;
 }
Exemple #5
0
 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]);
 }