]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix average payment
authorAlexander Smirnov <fredeom@mail.ru>
Mon, 3 Jun 2024 14:26:12 +0000 (17:26 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Mon, 3 Jun 2024 14:26:12 +0000 (17:26 +0300)
erp24/controllers/EmployeeSalesReportController.php
erp24/views/employee-sales-report/index.php

index 30a13f02f3e822b2a270e2499143bf43704a7f1e..7f6acbd1689334aa052203fd9127a95261436810 100644 (file)
@@ -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
index 5320dbf8b7c7b6b7fa21daa7d60d93864285e279..e527b9ee78c172fed20ad1b87051d9156cfb4820 100644 (file)
@@ -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;
         <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>