use yii_app\records\Products1c;
use yii_app\records\Sales;
use yii_app\records\StoreDynamic;
+use yii_app\records\Timetable;
class EmployeeSalesReportController extends Controller {
public function actionIndex() {
$returns = Sales::find()->where(['operation' => Sales::OPERATION_RETURN, 'sales_check' => $salesIds])->all();
$returnIds = ArrayHelper::getColumn($returns, 'sales_check');
+ $shift = $model->shift == 0 ? [1, 2] : [$model->shift];
+ $timetable = Timetable::find()->select(['COUNT(*) as cnt', 'admin_id'])
+ ->where(['shift_id' => $shift, 'tabel' => '0'])
+ ->andWhere(['between', 'date', $model->date_start, $model->date_end])
+ ->groupBy(['admin_id'])
+ ->indexBy('admin_id')
+ ->asArray()->all();
+
$paymentsPerAdmin = [];
- $paymentsCntPerAdmin = [];
foreach ($sales as $sale) {
/** @var $sale Sales */
if (!in_array($sale->id, $returnIds)) {
$paymentsPerAdmin[$sale->seller_id] = ($paymentsPerAdmin[$sale->seller_id] ?? 0) + $sale->summ;
- $paymentsCntPerAdmin[$sale->seller_id] = ($paymentsCntPerAdmin[$sale->seller_id] ?? 0) + 1;
}
}
return ($model->sorting == 0 ? -1 : 1) * ($paymentsPerAdmin[$adminGuidPerId[$a]] - $paymentsPerAdmin[$adminGuidPerId[$b]]);
});
+
return $this->render('index', compact('model', 'clusters', 'stores', 'admins', 'adminIds',
- 'paymentsPerAdmin', 'paymentsCntPerAdmin', 'adminGuidPerId', 'productAdminNamePerGuid'));
+ 'paymentsPerAdmin', 'timetable', 'adminGuidPerId', 'productAdminNamePerGuid'));
}
}
\ No newline at end of file
/** @var $admins array */
/** @var $adminIds array */
/** @var $paymentsPerAdmin array */
-/** @var $paymentsCntPerAdmin array */
+/** @var $timetable array */
/** @var $adminGuidPerId array */
/** @var $productAdminNamePerGuid array */
<tbody>
<?php foreach ($adminIds as $adminId): ?>
<tr>
- <td><?= $admins[$adminId] ?? $productAdminNamePerGuid[$adminGuidPerId[$adminId]] . '(#' . $adminId . ')' ?></td>
+ <td><?= $admins[$adminId] ?? $productAdminNamePerGuid[$adminGuidPerId[$adminId]] . '<span style="color:red">(#' . $adminId . ')</span>' ?></td>
<td style="text-align: right;" data-sort="<?= $paymentsPerAdmin[$adminGuidPerId[$adminId]] ?>"><?= number_format($paymentsPerAdmin[$adminGuidPerId[$adminId]], 0, '', ' ') ?></td>
- <td style="text-align: right;" data-sort="<?= $paymentsPerAdmin[$adminGuidPerId[$adminId]] / $paymentsCntPerAdmin[$adminGuidPerId[$adminId]] ?>"><?= number_format($paymentsPerAdmin[$adminGuidPerId[$adminId]] / $paymentsCntPerAdmin[$adminGuidPerId[$adminId]], 0, '',' ') ?></td>
+ <td style="text-align: right;" data-sort="<?= isset($timetable[$adminId]['cnt']) ? $paymentsPerAdmin[$adminGuidPerId[$adminId]] / $timetable[$adminId]['cnt'] : 0 ?>"><?= isset($timetable[$adminId]['cnt']) ? number_format($paymentsPerAdmin[$adminGuidPerId[$adminId]] / $timetable[$adminId]['cnt'], 0, '',' ') : '<span style="color:red">смены не найдены</span>' ?></td>
</tr>
<?php endforeach; ?>
</tbody>