]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Логирование изменения
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 2 Oct 2025 10:15:02 +0000 (13:15 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 2 Oct 2025 10:15:02 +0000 (13:15 +0300)
erp24/controllers/MarketplacePricesController.php

index 95f62e49ef25abdfadda2970641b9f7989ec1267..59bb3f35df2d3958814fea6cc328728822068446 100644 (file)
@@ -163,17 +163,22 @@ class MarketplacePricesController extends Controller
 
         if ($this->request->isPost) {
             if ($model->load($this->request->post()) && $model->save()) {
-                // Логирование создания
-                $mpPriceLog = new MarketplacePricesLog([
-                    'marketplace_prices_id' => $model->id,
-                    'price_before'          => null,
-                    'price_after'           => $model->price,
-                    'old_price_before'      => null,
-                    'old_price_after'       => $model->old_price,
-                    'action'                => 1, // create
-                ]);
+                $userId = Yii::$app->user->id ?? null;
+               
+                $mpPriceLog = new MarketplacePricesLog();
+                $mpPriceLog->marketplace_prices_id = $model->id;
+                $mpPriceLog->price_before = null;
+                $mpPriceLog->price_after = $model->price;
+                $mpPriceLog->old_price_before = null;
+                $mpPriceLog->old_price_after = $model->old_price;
+                $mpPriceLog->changed_at = date('Y-m-d H:i:s');
+                $mpPriceLog->changed_by = $userId;
+                $mpPriceLog->action = 1; // create
+
                 if (!$mpPriceLog->save()) {
-                    Yii::error("Ошибка создания лога цены: " . json_encode($mpPriceLog->getErrors()), __METHOD__);
+                    Yii::error("Ошибка создания лога цены: " . json_encode($mpPriceLog->getErrors()) . ". User ID: {$userId}, Model ID: {$model->id}", __METHOD__);
+                } else {
+                    Yii::warning("Лог цены успешно создан. Model ID: {$model->id}, User ID: {$userId}", __METHOD__);
                 }
 
                 return $this->redirect(['view', 'id' => $model->id]);
@@ -222,26 +227,31 @@ class MarketplacePricesController extends Controller
         $model = $this->findModel($id);
 
         if ($this->request->isPost && $model->load($this->request->post())) {
-            // Сохраняем предыдущие значения для логирования
-            $beforePrice = $model->price;
-            $beforeOldPrice = $model->old_price;
+            $beforePrice     = $model->getOldAttribute('price');
+            $beforeOldPrice  = $model->getOldAttribute('old_price');
+        
+            $changedPrice    = $model->price     !== $beforePrice;
+            $changedOldPrice = $model->old_price !== $beforeOldPrice;
+
+            $userId = Yii::$app->user->id ?? null;
 
             if ($model->save()) {
-                // Логирование обновления
-                if ($beforePrice !== $model->price || $beforeOldPrice !== $model->old_price) {
-                    $mpPriceLog = new MarketplacePricesLog([
-                        'marketplace_prices_id' => $model->id,
-                        'price_before'          => $beforePrice,
-                        'price_after'           => $model->price,
-                        'old_price_before'      => $beforeOldPrice,
-                        'old_price_after'       => $model->old_price,
-                        'action'                => 2, // update
-                    ]);
+                if ($changedPrice || $changedOldPrice) {
+                    $mpPriceLog = new MarketplacePricesLog();
+                    $mpPriceLog->marketplace_prices_id = $model->id;
+                    $mpPriceLog->action               = 2; // update
+                    $mpPriceLog->price_before         = $beforePrice;
+                    $mpPriceLog->price_after          = $model->price;
+                    $mpPriceLog->old_price_before     = $beforeOldPrice;
+                    $mpPriceLog->old_price_after      = $model->old_price;
+                    $mpPriceLog->changed_at = date('Y-m-d H:i:s');
+                    $mpPriceLog->changed_by = $userId;
                     if (!$mpPriceLog->save()) {
-                        Yii::error("Ошибка создания лога цены: " . json_encode($mpPriceLog->getErrors()), __METHOD__);
+                        Yii::error("Ошибка создания лога цены: " . json_encode($mpPriceLog->getErrors()) . ". User ID: {$userId}, Model ID: {$model->id}", __METHOD__);
+                    } else {
+                        Yii::warning("Лог цены успешно создан. Model ID: {$model->id}, User ID: {$userId}", __METHOD__);
                     }
                 }
-
                 return $this->redirect(['view', 'id' => $model->id]);
             }
         }