From 56d28077500bf1472136c15f296330c04667f1e4 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 3 Jun 2024 17:26:12 +0300 Subject: [PATCH] fix average payment --- .../controllers/EmployeeSalesReportController.php | 14 +++++++++++--- erp24/views/employee-sales-report/index.php | 6 +++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/erp24/controllers/EmployeeSalesReportController.php b/erp24/controllers/EmployeeSalesReportController.php index 30a13f02..7f6acbd1 100644 --- a/erp24/controllers/EmployeeSalesReportController.php +++ b/erp24/controllers/EmployeeSalesReportController.php @@ -12,6 +12,7 @@ use yii_app\records\ExportImportTable; 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() { @@ -82,13 +83,19 @@ class EmployeeSalesReportController extends Controller { $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; } } @@ -109,7 +116,8 @@ class EmployeeSalesReportController extends Controller { 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 diff --git a/erp24/views/employee-sales-report/index.php b/erp24/views/employee-sales-report/index.php index 5320dbf8..e527b9ee 100644 --- a/erp24/views/employee-sales-report/index.php +++ b/erp24/views/employee-sales-report/index.php @@ -12,7 +12,7 @@ use dosamigos\datetimepicker\DateTimePicker; /** @var $admins array */ /** @var $adminIds array */ /** @var $paymentsPerAdmin array */ -/** @var $paymentsCntPerAdmin array */ +/** @var $timetable array */ /** @var $adminGuidPerId array */ /** @var $productAdminNamePerGuid array */ @@ -76,9 +76,9 @@ use dosamigos\datetimepicker\DateTimePicker; - + (#' . $adminId . ')' ?> - + смены не найдены' ?> -- 2.39.5