]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Цены и сортировка
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 21 Apr 2025 13:15:39 +0000 (16:15 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 21 Apr 2025 13:15:39 +0000 (16:15 +0300)
erp24/controllers/MarketplaceOrdersController.php
erp24/views/marketplace-orders/index.php

index cfe16039d60380d411d4444224fa0a86031877d0..79b76859870e604c64117e29f98f251fc5f74d21 100644 (file)
@@ -21,6 +21,7 @@ use yii\filters\VerbFilter;
 use yii_app\records\MarketplaceOrderStatusHistory;
 use yii_app\records\MarketplaceOrderStatusTypes;
 use yii_app\records\MarketplaceStore;
+use yii_app\records\Prices;
 use yii_app\records\PricesDynamic;
 use yii_app\records\Products1c;
 use yii_app\records\ProductsClass;
@@ -59,6 +60,10 @@ class MarketplaceOrdersController extends Controller
         $searchModel = new MarketplaceOrdersSearch();
         $dataProvider = $searchModel->search($this->request->queryParams);
 
+        $dataProvider->sort->defaultOrder = [
+            'creation_date' => SORT_DESC,
+        ];
+
         return $this->render('index', [
             'searchModel' => $searchModel,
             'dataProvider' => $dataProvider,
@@ -74,9 +79,17 @@ class MarketplaceOrdersController extends Controller
         $marketplaceClass = ProductsClass::find()
             ->where(['tip' => [ProductsClass::MARKETPLACE]])->one();
         $product = Products1c::find()
-            ->where(['tip' => 'products'])
-            ->andWhere(['parent_id' => $marketplaceClass->category_id])
-            ->andWhere(['not', ['articule' => null]])
+            ->alias('p')
+            ->innerJoin(
+                Prices::tableName() . ' pr',
+                'pr.product_id = p.id'
+            )
+            ->where([
+                'p.tip'       => 'products',
+                'p.parent_id' => $marketplaceClass->category_id,
+            ])
+            ->andWhere(['not', ['p.articule' => null]])
+            ->andWhere(['>', 'pr.price', 0])
             ->orderBy('RANDOM()')
             ->one();
 
@@ -84,22 +97,16 @@ class MarketplaceOrdersController extends Controller
             Yii::$app->session->setFlash('error', 'Не найден ни один товар в products_1c.');
             return $this->redirect(['index']);
         }
-        $priceRecord = PricesDynamic::find()
+        $priceRecord = Prices::find()
             ->where([
                 'product_id' => $product->id,
-                'active' => 1,
-                'region_id' => 52,
-            ])
-            ->orderBy(['date_from' => SORT_DESC])
-            ->one();
+            ])->one();
 
         $price = $priceRecord ? $priceRecord->price : 0;
 
         $orderNumber = mt_rand(10_000_000, 99_999_999);
         $now = date('Y-m-d H:i:s');
         if ($mp == 1) {
-
-
             $orderDetails = [
                 'number' => $orderNumber,
                 'date' => $now,
@@ -121,7 +128,6 @@ class MarketplaceOrdersController extends Controller
                 'fake' => true,
             ];
 
-            // 4) Создаём модель заказа
             $m = new MarketplaceOrders();
             $m->marketplace_order_id = (string)$orderNumber;
             $m->marketplace_id = 1;
@@ -171,7 +177,6 @@ class MarketplaceOrdersController extends Controller
             return $this->redirect(['index']);
         }
         if ($mp == 2) {
-
             $raw = [
                 "id" => $orderNumber,
                 "status" => "PROCESSING",
@@ -272,7 +277,6 @@ class MarketplaceOrdersController extends Controller
                 return $this->redirect(['index']);
             }
 
-
             $hist = new MarketplaceOrderStatusHistory();
             $hist->order_id = $m->id;
             $hist->status_id = $status->id;
index 65a9bfddf68efecdc97124255bcabcdbf2784900..1e00ee5e9b4520a15c24a2a8642075f0a178e1ec 100644 (file)
@@ -56,7 +56,7 @@ YiiAsset::register($this);
         'columns' => [
             ['class' => 'yii\grid\SerialColumn'],
 
-            //'id',
+            'id',
             'marketplace_order_id',
             [
                 'attribute' => 'store_id',