]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix(ERP-247): improve delivery save error logging in MarketplaceService
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Sat, 28 Feb 2026 18:57:39 +0000 (21:57 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Sat, 28 Feb 2026 18:57:39 +0000 (21:57 +0300)
- Log deliveryText when type not recognized (was silent return false)
- Log delivery model errors + deliveryText when model.save() fails
  (previously logged wrong model's errors - marketplaceOrder instead)
- Fix callers to log order id instead of empty marketplaceOrder.getErrors()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
erp24/services/MarketplaceService.php

index 5d1d7108208069bf1897c3c3332371d591bc9c3b..72f14935a00c08d33b6351301d56c629428b627c 100644 (file)
@@ -2868,7 +2868,7 @@ class MarketplaceService
                     if (isset($orderDetails['delivery'])) {
                         $deliveryRecord = self::saveFromDeliveryText($marketplaceOrder->id, $orderDetails['delivery']);
                         if (!$deliveryRecord) {
-                            Yii::error('Не удалось сохранить доставку' . json_encode($marketplaceOrder->getErrors(), JSON_UNESCAPED_UNICODE));
+                            Yii::error('Не удалось сохранить доставку для заказа #' . $marketplaceOrder->id, 'marketplace');
                         }
                     }
                 } else {
@@ -2903,7 +2903,7 @@ class MarketplaceService
                         if (isset($orderDetails['delivery'])) {
                             $deliveryRecord = self::saveFromDeliveryText($marketplaceOrder->id, $orderDetails['delivery']);
                             if (!$deliveryRecord) {
-                                Yii::error('Не удалось сохранить доставку' . json_encode($marketplaceOrder->getErrors(), JSON_UNESCAPED_UNICODE));
+                                Yii::error('Не удалось сохранить доставку для заказа #' . $marketplaceOrder->id, 'marketplace');
                             }
                         }
                     } else {
@@ -3151,6 +3151,7 @@ class MarketplaceService
             $model->service_name = 'UNKNOWN';
             $model->partner_type = 'UNKNOWN';
         } else {
+            Yii::warning('Не распознан тип доставки. deliveryText: ' . $deliveryText, 'marketplace');
             return false;
         }
 
@@ -3198,7 +3199,16 @@ class MarketplaceService
         $model->latitude = $address['latitude'];
         $model->longitude = $address['longitude'];
 
-        return $model->save();
+        if (!$model->save()) {
+            Yii::error(
+                'Не удалось сохранить модель доставки: '
+                . json_encode($model->getErrors(), JSON_UNESCAPED_UNICODE)
+                . ' deliveryText: ' . $deliveryText,
+                'marketplace'
+            );
+            return false;
+        }
+        return true;
     }
 
     public static function parseAddressFromDeliveryText(string $text): array