]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix part 007
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 31 May 2024 18:50:37 +0000 (21:50 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 31 May 2024 18:50:37 +0000 (21:50 +0300)
erp24/controllers/EmployeeSalesReportController.php
erp24/views/employee-sales-report/index.php

index bf7500fe005b917934e4c9f24d2c6f59da28a70c..30a13f02f3e822b2a270e2499143bf43704a7f1e 100644 (file)
@@ -8,6 +8,8 @@ use yii\helpers\ArrayHelper;
 use yii\web\Controller;
 use yii_app\records\Admin;
 use yii_app\records\CityStore;
+use yii_app\records\ExportImportTable;
+use yii_app\records\Products1c;
 use yii_app\records\Sales;
 use yii_app\records\StoreDynamic;
 
@@ -43,7 +45,7 @@ class EmployeeSalesReportController extends Controller {
         }
 
         $salesQuery = Sales::find()
-            ->select(['id', 'summ', 'admin_id'])
+            ->select(['id', 'summ', 'seller_id'])
             ->where(['operation' => Sales::OPERATION_SALE])
             ->andWhere(['>', 'admin_id', 0])
             ->andWhere(['order_id' => ['0', '']])
@@ -83,19 +85,31 @@ class EmployeeSalesReportController extends Controller {
         $paymentsPerAdmin = [];
         $paymentsCntPerAdmin = [];
         foreach ($sales as $sale) {
+            /** @var $sale Sales */
             if (!in_array($sale->id, $returnIds)) {
-                $paymentsPerAdmin[$sale->admin_id] = ($paymentsPerAdmin[$sale->admin_id] ?? 0) + $sale->summ;
-                $paymentsCntPerAdmin[$sale->admin_id] = ($paymentsCntPerAdmin[$sale->admin_id] ?? 0) + 1;
+                $paymentsPerAdmin[$sale->seller_id] = ($paymentsPerAdmin[$sale->seller_id] ?? 0) + $sale->summ;
+                $paymentsCntPerAdmin[$sale->seller_id] = ($paymentsCntPerAdmin[$sale->seller_id] ?? 0) + 1;
             }
         }
 
-        $admins = Admin::find()->select(['id', 'name'])->where(['id' => array_keys($paymentsPerAdmin)])->all();
+        $eit = ExportImportTable::find()->select(['entity_id', 'export_val'])
+            ->where(['entity' => 'admin', 'export_id' => '1', 'export_val' => array_keys($paymentsPerAdmin)])->all();
+
+        $adminGuidPerId = ArrayHelper::map($eit,'entity_id' , 'export_val');
+        $adminIds = ArrayHelper::getColumn($eit, "entity_id");
+
+        $productsAdmins = Products1c::find()->select(['id', 'name'])->where([
+            'tip' => 'admin', 'id' => array_keys($paymentsPerAdmin)])->all();
+        $productAdminNamePerGuid = ArrayHelper::map($productsAdmins, 'id', 'name');
+
+        $admins = Admin::find()->select(['id', 'name'])->where(['id' => $adminIds])->all();
         $admins = ArrayHelper::map($admins, 'id', 'name');
 
-        $adminIds = array_keys($paymentsPerAdmin);
-        usort($adminIds, function($a, $b) use ($paymentsPerAdmin, $model) { return ($model->sorting == 0 ? -1 : 1) * ($paymentsPerAdmin[$a] - $paymentsPerAdmin[$b]); });
+        usort($adminIds, function($a, $b) use ($adminGuidPerId, $paymentsPerAdmin, $model) {
+            return ($model->sorting == 0 ? -1 : 1) * ($paymentsPerAdmin[$adminGuidPerId[$a]] - $paymentsPerAdmin[$adminGuidPerId[$b]]);
+        });
 
         return $this->render('index', compact('model', 'clusters', 'stores', 'admins', 'adminIds',
-            'paymentsPerAdmin', 'paymentsCntPerAdmin'));
+            'paymentsPerAdmin', 'paymentsCntPerAdmin', 'adminGuidPerId', 'productAdminNamePerGuid'));
     }
 }
\ No newline at end of file
index 33c45066288dc73af904c20c6caf5cb7c914bba0..74def0f41410cb86d6642dfc49aab98a0ccf14b1 100644 (file)
@@ -13,6 +13,8 @@ use dosamigos\datetimepicker\DateTimePicker;
 /** @var $adminIds array */
 /** @var $paymentsPerAdmin array */
 /** @var $paymentsCntPerAdmin array */
+/** @var $adminGuidPerId array */
+/** @var $productAdminNamePerGuid array */
 
 ?>
 
@@ -74,9 +76,9 @@ use dosamigos\datetimepicker\DateTimePicker;
         <tbody>
             <?php foreach ($adminIds as $adminId): ?>
             <tr>
-                <td><?= $admins[$adminId] ?? '#' . $adminId ?></td>
-                <td style="text-align: right;"><?= number_format($paymentsPerAdmin[$adminId], 0, '', ' ') ?></td>
-                <td style="text-align: right;"><?= number_format($paymentsPerAdmin[$adminId] / $paymentsCntPerAdmin[$adminId], 0, '',' ') ?></td>
+                <td><?= $admins[$adminId] ?? $productAdminNamePerGuid[$adminGuidPerId[$adminId]] . '(#' . $adminId . ')' ?></td>
+                <td style="text-align: right;"><?= number_format($paymentsPerAdmin[$adminGuidPerId[$adminId]], 0, '', ' ') ?></td>
+                <td style="text-align: right;"><?= number_format($paymentsPerAdmin[$adminGuidPerId[$adminId]] / $paymentsCntPerAdmin[$adminGuidPerId[$adminId]], 0, '',' ') ?></td>
             </tr>
             <?php endforeach; ?>
         </tbody>