$data = [];
$totalSum = 0.0;
$totalProductsSum = 0.0;
+ $uniqueProductsData = [];
if ($startDate && $endDate && $storeId) {
$totalSum = MotivationService::getSelfCostSumByStore($startDate, $endDate, $storeId);
// Вычисляем сумму всех товаров
foreach ($data as $item) {
- $totalProductsSum += $item['price']*$item['quantity'];
+ $totalProductsSum += $item['price'] * $item['quantity'];
}
+
+ // Группируем товары по ID и суммируем количества
+ $groupedProducts = [];
+ foreach ($data as $item) {
+ $productId = $item['product_id'];
+ if (!isset($groupedProducts[$productId])) {
+ $groupedProducts[$productId] = [
+ 'product_id' => $productId,
+ 'product_name' => $item['product_name'],
+ 'price' => $item['price'],
+ 'quantity' => $item['quantity'],
+ ];
+ } else {
+ $groupedProducts[$productId]['quantity'] += $item['quantity'];
+ }
+ }
+
+ // Преобразуем сгруппированный массив в массив значений и сортируем по имени
+ $uniqueProductsData = array_values($groupedProducts);
+ usort($uniqueProductsData, function ($a, $b) {
+ return strcmp($a['product_name'], $b['product_name']);
+ });
}
+ // Сортируем первую таблицу по имени продукта
+ usort($data, function ($a, $b) {
+ return strcmp($a['product_name'], $b['product_name']);
+ });
+
return $this->controller->render('test-self-cost', [
'storeList' => $storeList,
'model' => $model,
'data' => $data,
+ 'uniqueProductsData' => $uniqueProductsData,
'totalSum' => $totalSum,
'totalProductsSum' => $totalProductsSum,
]);
/* @var $storeList array */
/* @var $model \yii\base\DynamicModel */
/* @var $data array */
+/* @var $uniqueProductsData array */
/* @var $totalSum float */
/* @var $totalProductsSum float */
</div>
<?php if (!empty($data)): ?>
- <h2>Результаты</h2>
+ <h2>Результаты (Полные данные)</h2>
<table class="table table-bordered">
<thead>
<tr>
<tbody>
<?php foreach ($data as $item): ?>
<tr>
- <td><?= Html::encode($item['product_id']) ?>
- </td>
+ <td><?= Html::encode($item['product_id']) ?></td>
<td><?= Html::encode($item['check_id']) ?></td>
<td><?= Html::encode($item['product_name']) ?></td>
<td><?= Html::encode($item['price']) ?></td>
</table>
<h3>Общая стоимость: <?= Html::encode($totalSum) ?></h3>
<h3>Сумма всех товаров: <?= Html::encode($totalProductsSum) ?></h3>
+
+ <h2>Результаты (Уникальные товары)</h2>
+ <table class="table table-bordered">
+ <thead>
+ <tr>
+ <th>ID товара</th>
+ <th>Название</th>
+ <th>Цена</th>
+ <th>Общее кол-во</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php foreach ($uniqueProductsData as $item): ?>
+ <tr>
+ <td><?= Html::encode($item['product_id']) ?></td>
+ <td><?= Html::encode($item['product_name']) ?></td>
+ <td><?= Html::encode($item['price']) ?></td>
+ <td><?= Html::encode($item['quantity']) ?></td>
+ </tr>
+ <?php endforeach; ?>
+ </tbody>
+ </table>
<?php endif; ?>
</div>
\ No newline at end of file