]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление характеристик в таблицу
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 28 Nov 2024 13:15:38 +0000 (16:15 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 28 Nov 2024 13:15:38 +0000 (16:15 +0300)
erp24/api2/controllers/DataController.php
erp24/records/Products1c.php

index d8b43180316f3039878e529b5d8f2c96111640ae..04aa6e35b616e391160d328740464ac8fa438354 100644 (file)
@@ -49,8 +49,8 @@ class DataController extends BaseController {
 
     const OUT_DIR =
 //        __DIR__ . "/../json";
-       // "/www/api2/json";
-    "/var/www/erp24/api2/json";
+        "/www/api2/json";
+   // "/var/www/erp24/api2/json";
 
 
 //          "/var/www/www-root/data/www/api.bazacvetov24.ru/data/json";
@@ -576,6 +576,39 @@ class DataController extends BaseController {
                         LogService::apiErrorLog(json_encode(["error_id" => 8, "error" => $products1c6->getErrors()], JSON_UNESCAPED_UNICODE));
                     }
 
+                    foreach ($arr as $key => $property) {
+                        if (!in_array($key, Products1c::PRODUCT1C_FIELDS)) {
+                            if (empty($property)) continue;
+                            $propertyType = Products1cPropType::findOne(['id' => $key]);
+                            if (!$propertyType) {
+                                $propertyType = new Products1cPropType();
+                                $propertyType->id = $key;
+                                $propertyType->name = $key;
+                                if (!$propertyType->save()) {
+                                    LogService::apiErrorLog(json_encode(["error_id" => 8.1,
+                                        "error" => $propertyType->getErrors()],
+                                        JSON_UNESCAPED_UNICODE));
+                                    continue;
+                                }
+                            }
+                            $additionalCharacteristic = Products1cAdditionalCharacteristics::findOne([
+                                'product_id' => $arr["id"],
+                                'property_id' => $key
+                            ]);
+                            if (!$additionalCharacteristic && !empty($property)) {
+                                $additionalCharacteristic = new Products1cAdditionalCharacteristics();
+                                $additionalCharacteristic->product_id = $arr["id"];
+                                $additionalCharacteristic->property_id = $key;
+                            }
+                            $additionalCharacteristic->value = $property;
+                            if (!$additionalCharacteristic->save()) {
+                                LogService::apiErrorLog(json_encode(["error_id" => 8.2,
+                                    "error" => $additionalCharacteristic->getErrors()],
+                                    JSON_UNESCAPED_UNICODE));
+                            }
+                        }
+                    }
+
                     if (!empty($arr["AdditionCharacteristics"])) {
                         $passedCharacteristics = array_column($arr["AdditionCharacteristics"], null, "id");
                         $currentCharacteristics = Products1cAdditionalCharacteristics::find()
index 11b180eee921340ac6870d4edd4aae69bdc651dd..2a4e9ef0dba8c306c130ddea2d1411421aedb08a 100644 (file)
@@ -19,6 +19,8 @@ use yii\helpers\ArrayHelper;
  */
 class Products1c extends \yii\db\ActiveRecord
 {
+
+    const PRODUCT1C_FIELDS = ['id', 'parent_id', 'tip', 'code', 'name', 'articule', 'view', 'components', 'AdditionCharacteristics'];
     /**
      * {@inheritdoc}
      */