]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Проверка терминалов
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 22 Aug 2025 08:30:04 +0000 (11:30 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 22 Aug 2025 08:30:04 +0000 (11:30 +0300)
erp24/api2/controllers/DataController.php

index 74a1121c007189de9e6568dcf8b58144e6bc9d2f..578433d0363c01d7dddaad1d965629d4ec9aa866 100644 (file)
@@ -1036,41 +1036,65 @@ class DataController extends BaseController
 
                     if ($arr["terminals"]) {
                         $k = 0;
+                        $products1cTerminals = Products1c::find()
+                            ->andWhere(['tip' => 'terminals'])
+                            ->indexBy('id')
+                            ->asArray()
+                            ->all();
+                        $existTerminals = Terminals::find()->indexBy('id')->asArray()->all();
                         foreach ($arr["terminals"] as $gi2 => $arr2) {
-                            $products1c2 = new Products1c;
-                            $products1c2->id = $arr2['id'];
-                            $products1c2->tip = 'terminals';
-                            $products1c2->name = $arr2["name"];
-                            $products1c2->code = $arr2["code"];
-                            $products1c2->save();
-                            if ($products1c2->getErrors()) {
-                                LogService::apiErrorLog(json_encode(["error_id" => 3, "error" => $products1c2->getErrors()], JSON_UNESCAPED_UNICODE));
+                            if (in_array($arr2['id'], $products1cTerminals)) {
+                                continue;
+                            } else {
+                                $products1c2 = new Products1c;
+                                $products1c2->id = $arr2['id'];
+                                $products1c2->tip = 'terminals';
+                                $products1c2->name = $arr2["name"];
+                                $products1c2->code = $arr2["code"];
+                                $products1c2->save();
+                                if ($products1c2->getErrors()) {
+                                    LogService::apiErrorLog(json_encode(["error_id" => 3, "error" => $products1c2->getErrors()], JSON_UNESCAPED_UNICODE));
+                                }
                             }
-                            $terminal = new Terminals;
-                            $terminal->id = $arr2["id"];
-                            $terminal->name = $arr2["name"];
-                            $terminal->code = $arr2["code"];
-                            $terminal->store_id = $arr["id"];
-                            $terminal->date = date('Y-m-d H:i:s');
-                            $terminal->posit = $k;
-                            $terminal->save();
-                            if ($terminal->getErrors()) {
-                                LogService::apiErrorLog(json_encode(["error_id" => 4, "error" => $terminal->getErrors()], JSON_UNESCAPED_UNICODE));
+
+                            if (in_array($arr2['id'], $existTerminals)) {
+                                continue;
+                            } else {
+                                $terminal = new Terminals;
+                                $terminal->id = $arr2["id"];
+                                $terminal->name = $arr2["name"];
+                                $terminal->code = $arr2["code"];
+                                $terminal->store_id = $arr["id"];
+                                $terminal->date = date('Y-m-d H:i:s');
+                                $terminal->posit = $k;
+                                $terminal->save();
+                                if ($terminal->getErrors()) {
+                                    LogService::apiErrorLog(json_encode(["error_id" => 4, "error" => $terminal->getErrors()], JSON_UNESCAPED_UNICODE));
+                                }
+                                $k++;
                             }
-                            $k++;
                         }
                     }
 
                     if ($arr['kkms']) {
+                        $products1cKkms = Products1c::find()
+                            ->andWhere(['tip' => 'kkms'])
+                            ->indexBy('id')
+                            ->asArray()
+                            ->all();
                         foreach ($arr["kkms"] as $gi2 => $arr2) {
-                            $products1c3 = new Products1c;
-                            $products1c3->id = $arr2["id"];
-                            $products1c3->tip = 'kkms';
-                            $products1c3->name = $arr2["name"];
-                            $products1c3->code = $arr2["code"];
-                            $products1c3->save();
-                            if ($products1c3->getErrors()) {
-                                LogService::apiErrorLog(json_encode(["error_id" => 5, "error" => $products1c3->getErrors()], JSON_UNESCAPED_UNICODE));
+                            if (in_array($arr2['id'], $products1cKkms)) {
+                                continue;
+                            } else {
+                                $products1c3 = new Products1c;
+                                $products1c3->id = $arr2["id"];
+                                $products1c3->tip = 'kkms';
+                                $products1c3->name = $arr2["name"];
+                                $products1c3->code = $arr2["code"];
+                                $products1c3->save();
+                                if ($products1c3->getErrors()) {
+                                    LogService::apiErrorLog(json_encode(["error_id" => 5, "error" => $products1c3->getErrors()], JSON_UNESCAPED_UNICODE));
+                                }
                             }
                         }
                     }