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;
$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--) {
$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() {
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]);
<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>