]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Подсказка склада для яндекса origin/feature_smirnov_2024_11_14_marketplace_select_yandex_warehouse
authorAlexander Smirnov <fredeom@mail.ru>
Thu, 14 Nov 2024 14:19:40 +0000 (17:19 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Thu, 14 Nov 2024 14:19:40 +0000 (17:19 +0300)
erp24/api2/controllers/YandexMarketController.php
erp24/commands/MarketplaceController.php
erp24/config/console.php
erp24/config/params.php
erp24/controllers/MarketplaceStoreController.php
erp24/views/marketplace-store/_form.php
erp24/views/marketplace-store/create.php

index 769ec38be44875a37e7d9389fc974cb024fe0113..e49f85b1244fc1506a5d75d32d8c753f4116db3f 100644 (file)
@@ -2,16 +2,13 @@
 
 namespace app\controllers;
 
-use Matrix\Matrix;
 use Yii;
-use yii\grid\GridView;
 use yii\helpers\ArrayHelper;
 use yii\rest\Controller;
 use OpenAPI\Client\Configuration;
 use OpenAPI\Client\Api;
 use OpenAPI\Client\Model;
 use GuzzleHttp;
-use yii_app\records\MarketplaceStore;
 use yii_app\records\MatrixErp;
 use yii_app\records\Products1c;
 use yii_app\records\ProductsClass;
@@ -23,7 +20,7 @@ class YandexMarketController extends Controller
 
         $output = '';
 
-        $config = Configuration::getDefaultConfiguration()->setApiKey('Api-Key', 'ACMA:r3sa2VyjkgcO0aOxGoyAWuGH15g5mWAqXRMuylVA:a0bccb7e');
+        $config = Configuration::getDefaultConfiguration()->setApiKey('Api-Key', Yii::$app->params['YANDEX_MARKET_API_KEY']);
 
 //        $apiInstance = new Api\CampaignsApi(
 //            new GuzzleHttp\Client(),
index b7008ad19b98c272fcaee1986a53713106f06397..588c51051a222b6fb8cd2f4723c2f323b74d6f27 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace yii_app\commands;
 
+use Yii;
 use yii\console\Controller;
 use yii\helpers\ArrayHelper;
 use yii_app\records\MarketplaceStore;
@@ -19,7 +20,7 @@ class MarketplaceController extends Controller
     public function actionYandex() {
         $infoForMarketplace = MarketplaceService::infoForMarketplace(2);
 
-        $config = Configuration::getDefaultConfiguration()->setApiKey('Api-Key', 'ACMA:r3sa2VyjkgcO0aOxGoyAWuGH15g5mWAqXRMuylVA:a0bccb7e');
+        $config = Configuration::getDefaultConfiguration()->setApiKey('Api-Key', Yii::$app->params['YANDEX_MARKET_API_KEY']);
 
         $products = Products1c::find()->alias('p')->leftJoin('products_class pc', 'p.parent_id = pc.category_id')
             ->where(['pc.tip' => [ProductsClass::MARKETPLACE, ProductsClass::MARKETPLACE_ADDITIONAL]])->all();
index 5c2269baa7beab1c0b6ab550daf6e0fa4148775f..d75b8bf4060edba94bf74eafc1c761db60116be2 100755 (executable)
@@ -1,5 +1,7 @@
 <?php
 
+$params = require __DIR__ . '/params.php';
+
 Yii::setAlias('@yii_app/commands', 'commands');
 Yii::setAlias('@yii_app', dirname(__DIR__));
 
@@ -49,6 +51,7 @@ $config = [
         'db' => require dirname(__DIR__) . '/config/db.php',
         //'db2' => require dirname(__DIR__) . '/config/db2.php',
     ],
+    'params' => $params,
 ];
 
 if (YII_ENV_DEV) {
index 7dfdb4ea32c4c38a8bad55b9a470003e8a168d86..f0185ff7d3b1016a36bf91b93a15bcfc584e6072 100644 (file)
@@ -14,4 +14,5 @@ return [
         ['Login' => 'ipbelo-n2-ci',   'Password' => '8h09h42q38'],
     ],
     'SWITCH_USER_COOKIE_PASSWORD' => '123pass@WORD',
+    'YANDEX_MARKET_API_KEY' => 'ACMA:r3sa2VyjkgcO0aOxGoyAWuGH15g5mWAqXRMuylVA:a0bccb7e',
 ];
index 944533805bb5c3f218ebbbe61b2ebd83e40b290d..22448b182d3449aa5894ea68e561a21df0ad1005 100644 (file)
@@ -1,15 +1,18 @@
 <?php
 
 namespace app\controllers;
+
 use Yii;
 use yii\data\ActiveDataProvider;
-use yii\helpers\ArrayHelper;
 use yii\web\Controller;
 use yii\web\NotFoundHttpException;
-use yii_app\records\Admin;
 use yii_app\records\CityStore;
 use yii_app\records\Firms;
 use yii_app\records\MarketplaceStore;
+use OpenAPI\Client\Configuration;
+use OpenAPI\Client\Api;
+use OpenAPI\Client\Model;
+use GuzzleHttp;
 
 class MarketplaceStoreController extends Controller
 {
@@ -53,12 +56,24 @@ class MarketplaceStoreController extends Controller
             return $this->redirect(['view', 'id' => $model->id]);
         }
 
+        $campaignNameById = [];
+
+        $config = Configuration::getDefaultConfiguration()->setApiKey('Api-Key', Yii::$app->params['YANDEX_MARKET_API_KEY']);
+        $apiInstance = new Api\CampaignsApi(new GuzzleHttp\Client(), $config);
+        $campaigns = $apiInstance->getCampaigns();
+        /* @var $campaigns Model\GetCampaignsResponse */
+        foreach ($campaigns->getCampaigns() as $campaign) {
+            /* @var $campaign Model\CampaignDTO */
+            $campaignNameById[$campaign->getId()] = $campaign->getDomain();
+        }
+
         return $this->render('create', [
             'model' => $model,
             'stores' => $stores,
             'storesGuid' => $storesGuid,
             'firms' => $firms,
-            'warehouses' => $warehouses
+            'warehouses' => $warehouses,
+            'campaignNameById' => $campaignNameById,
         ]);
     }
 
index d4acad91f504312e44e91878864bef5de7f2369a..d10ffe70fcc7d883afb66be2781a88536a08b8fd 100644 (file)
@@ -18,8 +18,16 @@ use yii\widgets\ActiveForm;
         <?= $form->field($model, 'guid')->textInput(['maxlength' => true, 'value' => $model->guid, 'readonly' => true, 'id' => 'guid-input']) ?>
     <?= $form->field($model, 'name')->textInput(['maxlength' => true, 'value' => $model->name, 'readonly' => true, 'id' => 'name-input']) ?>
     <?= $form->field($model, 'warehouse_id')->dropDownList($warehouses, [
-        'prompt' => 'Выберите маркетплейс'
+        'prompt' => 'Выберите маркетплейс',
+        'onchange' => 'document.getElementById("yandexMarketplaces").style.display = this.value == 2 ? "block" : "none";',
     ]) ?>
+    <div id="yandexMarketplaces" class="mb-2" style="display: <?= $model->warehouse_id == 2 ? 'block' : 'none' ?>">
+        <?= Html::dropDownList('Выберите склад для яндекс маркетплейса', null, $campaignNameById,
+            [
+                'prompt' => 'Выберите склад для яндекс маркетплейса',
+                'onchange' => 'document.getElementById("marketplacestore-warehouse_guid").value = this.value;'
+            ]) ?>
+    </div>
     <?= $form->field($model, 'warehouse_guid')->textInput(['type' => 'integer']) ?>
     <?= $form->field($model, 'firm')->dropDownList($firms, ['prompt' => 'Выберите юр лицо']) ?>
 
index 12aca9348c84c5b5719d8296f3e4c7de467843ee..0cb24813aa07b114477a63f10a96104ac4f165ca 100644 (file)
@@ -7,7 +7,7 @@ $this->params['breadcrumbs'][] = ['label' => 'Список Магазинов',
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 
-<div class="marketplace-store-create">
+<div class="marketplace-store-create m-5">
 
     <h1><?= Html::encode($this->title) ?></h1>
 
@@ -16,7 +16,8 @@ $this->params['breadcrumbs'][] = $this->title;
         'stores' => $stores,
         'storesGuid' => $storesGuid,
         'firms' => $firms,
-        'warehouses' => $warehouses
+        'warehouses' => $warehouses,
+        'campaignNameById' => $campaignNameById,
     ]) ?>
 
 </div>