]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-310] расчёт total
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 28 Feb 2025 13:15:54 +0000 (16:15 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 28 Feb 2025 13:15:54 +0000 (16:15 +0300)
erp24/controllers/MatrixStatisticsController.php
erp24/views/matrix-statistics/index.php

index dfdd4173daed722e78069d99e32d52a8794f86d4..b51514c413bad38f0bb20777be459e991726d230 100644 (file)
@@ -7,8 +7,11 @@ use yii\base\DynamicModel;
 use yii\helpers\ArrayHelper;
 use yii\web\Controller;
 use yii\web\Response;
+use yii_app\records\BouquetComposition;
+use yii_app\records\BouquetCompositionMatrixTypeHistory;
 use yii_app\records\CityStore;
 use yii_app\records\CityStoreParams;
+use yii_app\records\MatrixType;
 use yii_app\records\Sales;
 use yii_app\records\StoreDynamic;
 
@@ -35,11 +38,21 @@ class MatrixStatisticsController extends Controller {
         $model->load(Yii::$app->request->get());
 
         ///////////////////////////////////////////
-        $sales = Sales::find()->select(['SUM(summ) as total'])->where(['operation' => Sales::OPERATION_SALE])
-            ->andWhere(['>=', 'date', date($model->year . '-' . $model->month . '-01 00:00:00')])
-            ->andWhere(['<=', 'date', date($model->year . '-' . $model->month . '-10 23:59:59')])
-            ->asArray()->one();
-        $total = $sales['total'] ?? 0;
+//        $sales = Sales::find()->select(['SUM(summ) as total'])->where(['operation' => Sales::OPERATION_SALE])
+//            ->andWhere(['>=', 'date', date($model->year . '-' . $model->month . '-01 00:00:00')])
+//            ->andWhere(['<=', 'date', date($model->year . '-' . $model->month . '-10 23:59:59')])
+//            ->asArray()->one();
+        $total = 0;
+        $matrixTypes = MatrixType::find()->orderBy(['id'])->all();
+        $boquetCompositionMatrixTypeHistory = BouquetCompositionMatrixTypeHistory::find()->where(['is_active' => true])->all();
+        $matrixCost = [];
+        foreach ($boquetCompositionMatrixTypeHistory as $bcmth) {
+            /** @var BouquetCompositionMatrixTypeHistory $bcmth */
+            $bouquetComposition = BouquetComposition::findOne($bcmth->bouquet_id);
+            $cost = $bouquetComposition->getCost();
+            $matrixCost[$bcmth->matrix_type_id] = ($matrixCost[$bcmth->matrix_type_id] ?? 0) + $cost;
+            $total += $cost;
+        }
         ///////////////////////////////////////////
         $years = [];
         for ($i = 3; $i >= 0; $i--) {
@@ -49,7 +62,7 @@ class MatrixStatisticsController extends Controller {
         $stores = ArrayHelper::map(CityStore::find()->andWhere(['visible' => '1'])->all(), 'id', 'name');
 
 
-        return $this->render('index', compact('model', 'years', 'stores', 'total'));
+        return $this->render('index', compact('model', 'years', 'stores', 'total', 'matrixCost', 'matrixTypes'));
     }
 
     public function actionGetStores() {
index a2ce919537426e6211c101f0eab019503c8f3fc7..8ad8772413bbac3333b55f7bb0b0f449af853fda 100644 (file)
@@ -11,11 +11,14 @@ use yii_app\records\StoreCityList;
 use yii_app\records\Admin;
 use yii_app\records\AdminGroup;
 use yii_app\records\StoreType;
+use yii_app\records\MatrixType;
 
 /* @var $model DynamicModel */
 /* @var $years array */
 /* @var $stores array */
 /* @var $total float */
+/* @var $matrixCost array */
+/* @var $matrixTypes array */
 
 $this->registerJsFile('/js/matrix-statistics/index.js', ['position' => \yii\web\View::POS_END]);
 
@@ -163,34 +166,13 @@ $this->registerJsFile('/js/matrix-statistics/index.js', ['position' => \yii\web\
         <div class="col-2">Сумма планируемых продаж</div>
         <div class="col-2">Доля группы матрицы</div>
     </div>
-    <div class="row">
-        <div class="col-1"></div>
-        <div class="col-1">Базовая</div>
-        <div class="col-2">231 250 р.</div>
-        <div class="col-2">23%</div>
-    </div>
-    <div class="row">
-        <div class="col-1"></div>
-        <div class="col-1">Дополнительная</div>
-        <div class="col-2">45 000 р.</div>
-        <div class="col-2">4%</div>
-    </div>
-    <div class="row">
-        <div class="col-1"></div>
-        <div class="col-1">Изюмительная</div>
-        <div class="col-2">700 000 р.</div>
-        <div class="col-2">71%</div>
-    </div>
-    <div class="row">
-        <div class="col-1"></div>
-        <div class="col-1">Маркет Яндекс</div>
-        <div class="col-2">0 р.</div>
-        <div class="col-2">0 %</div>
-    </div>
-    <div class="row">
-        <div class="col-1"></div>
-        <div class="col-1">Маркет Флау</div>
-        <div class="col-2">0 р.</div>
-        <div class="col-2">0 %</div>
-    </div>
+    <?php foreach ($matrixTypes as $matrixType): ?>
+        <?php /** @var $matrixType MatrixType */ ?>
+        <div class="row">
+            <div class="col-1"></div>
+            <div class="col-1"><?= $matrixType->name ?></div>
+            <div class="col-2"><?= number_format($matrixCost[$matrixType->id], 0, '.', ' ')?>р.</div>
+            <div class="col-2"><?= number_format($total == 0 ? 0 : $matrixCost[$matrixType->id] * 100.0 / $total, 0, '.', '')?>%</div>
+        </div>
+    <?php endforeach; ?>
 </div>