From 184a9cf911622c40428aaa29c4a46c45948162bc Mon Sep 17 00:00:00 2001
From: Vladimir Fomichev
Date: Tue, 26 Aug 2025 16:35:38 +0300
Subject: [PATCH] =?utf8?q?=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=BE=D1=81?=
=?utf8?q?=D1=82=D0=B0=D1=82=D0=BA=D0=BE=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
---
.../MarketplaceOrdersController.php | 71 +++++++++++++++++++
erp24/views/marketplace-orders/index.php | 1 +
.../marketplace-orders/yandex-stocks.php | 53 ++++++++++++++
3 files changed, 125 insertions(+)
create mode 100644 erp24/views/marketplace-orders/yandex-stocks.php
diff --git a/erp24/controllers/MarketplaceOrdersController.php b/erp24/controllers/MarketplaceOrdersController.php
index 07c89f42..a56526cc 100644
--- a/erp24/controllers/MarketplaceOrdersController.php
+++ b/erp24/controllers/MarketplaceOrdersController.php
@@ -4,12 +4,14 @@ namespace app\controllers;
use app\records\OrdersUnion;
+use OpenAPI\Client\Configuration;
use OpenAPI\Client\ObjectSerializer;
use Yii;
use yii\base\Exception;
use yii\data\ArrayDataProvider;
use yii\db\Expression;
use yii\db\Query;
+use yii\helpers\ArrayHelper;
use yii_app\helpers\DataHelper;
use yii_app\models\FlowwowOrdersForm;
use yii_app\records\MarketplaceOrderDelivery;
@@ -22,6 +24,7 @@ use yii\filters\VerbFilter;
use yii_app\records\MarketplaceOrderStatusHistory;
use yii_app\records\MarketplaceOrderStatusTypes;
use yii_app\records\MarketplaceStore;
+use yii_app\records\MatrixErp;
use yii_app\records\Prices;
use yii_app\records\PricesDynamic;
use yii_app\records\Products1c;
@@ -809,6 +812,74 @@ class MarketplaceOrdersController extends Controller
}
return $this->redirect(['index']);
}
+
+
+ public function actionYandexStocks() {
+
+
+ $infoForMarketplace = MarketplaceService::infoForMarketplace(2);
+
+ $products = Products1c::find()->alias('p')->leftJoin('products_class pc', 'p.parent_id = pc.category_id')
+ ->where(['pc.tip' => [ProductsClass::MARKETPLACE, ProductsClass::MARKETPLACE_ADDITIONAL]])->all();
+ $matrixErp = MatrixErp::find()->where(['guid' => ArrayHelper::getColumn($products, 'id')])->all();
+ $matrixErpByGuid = [];
+ $hiddenOfferings = [];
+ foreach ($matrixErp as $matrix) {
+ /* @var $matrix MatrixErp */
+ $matrixErpByGuid[$matrix->guid] = $matrix;
+ $hiddenOfferings [] = [
+ "offerId" => $matrix->guid,
+ ];
+ }
+
+ $campaignIds = ArrayHelper::map(MarketplaceStore::find()->where(['warehouse_id' => 2])->all(), 'warehouse_guid', 'guid');
+ $skus = [];
+ foreach (array_keys($campaignIds) as $campaignId) {
+ foreach ($infoForMarketplace as $storeId => $guidsWithCnt) {
+ if ($campaignIds[$campaignId] != $storeId) {
+ continue;
+ }
+
+ foreach ($guidsWithCnt as $guid => $cnt) {
+ $skus[$campaignId][] = [
+ "sku" => $guid,
+ "items" => [
+ [
+ "count" => $cnt,
+ "updatedAt" => date("c"),
+ ]
+ ]
+ ];
+ }
+ }
+ }
+ //var_dump($skus);die();
+ $flattenSkus = [];
+ foreach ($skus as $campaignId => $sku) {
+ foreach ($sku as $item) {
+ $flattenSkus[] = [
+ "guid" => $item['sku'],
+ "count" => $item['items'][0]['count'],
+ "campaignId" => $campaignId,
+ ];
+ }
+ }
+ $dataProvider = new ArrayDataProvider([
+ 'allModels' => $flattenSkus,
+ 'sort' => [
+ 'attributes' => ['guid', 'count', 'campaignId'],
+ ],
+ 'pagination' => [
+ 'pageSize' => 200,
+ ],
+ ]);
+
+ return $this->render('yandex-stocks', ['dataProvider' => $dataProvider]);
+
+
+
+ }
+
/**
* Deletes an existing MarketplaceOrders model.
* If deletion is successful, the browser will be redirected to the 'index' page.
diff --git a/erp24/views/marketplace-orders/index.php b/erp24/views/marketplace-orders/index.php
index a2461d54..5eaf7bf9 100644
--- a/erp24/views/marketplace-orders/index.php
+++ b/erp24/views/marketplace-orders/index.php
@@ -43,6 +43,7 @@ YiiAsset::register($this);
= Html::a('ÐиÑÑма Ñ Ð·Ð°ÐºÐ°Ð·Ð°Ð¼Ð¸', ['/marketplace-flowwow-emails/index'], ['class' => 'btn btn-success']) ?>
= Html::a('ÐÑовеÑка поÑÑÑ', ['/marketplace-orders/get-flowwow-orders'], ['class' => 'btn btn-success']) ?>
= Html::a('СÑаÑÑÑÑ Ð·Ð°ÐºÐ°Ð·Ð¾Ð² в 1С', ['/crud/marketplace-order1c-statuses/index'], ['class' => 'btn btn-success']) ?>
+ = Html::a('ÐÑÑаÑки ЯндекÑ', ['/marketplace-orders/yandex-stocks'], ['class' => 'btn btn-success']) ?>