]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
логирование и преобразование значения held к bool
authorJoySystem_v <fvv2011@gmail.com>
Mon, 19 Aug 2024 16:43:41 +0000 (19:43 +0300)
committerJoySystem_v <fvv2011@gmail.com>
Mon, 19 Aug 2024 16:43:41 +0000 (19:43 +0300)
erp24/api2/controllers/DataController.php

index 8a8e45b070ed0149e4595dfd6d1f51b299527504..b0490a5743d506a8b2794adfaf92c6460c89b2eb 100644 (file)
@@ -44,7 +44,7 @@ class DataController extends BaseController {
 
     const OUT_DIR =
 //        __DIR__ . "/../json";
-        "/var/www/erp24/api2/json";
+        "/www/api2/json";
 //          "/var/www/www-root/data/www/api.bazacvetov24.ru/data/json";
 
     public function actionRequest() {
@@ -808,8 +808,9 @@ class DataController extends BaseController {
                 $matrixProductsIds = SalaryHelper::getMatrixProductsIds();
             }
 
-            if (!empty($result['checks']) && count($result['checks']) > 1) {
+            if (!empty($result['checks']) && count($result['checks']) < 300) {
                 foreach ($result["checks"] as $arr) {
+
                     $check_id = $arr["id"];
                     if ($arr["seller_id"] == '00000000-0000-0000-0000-000000000000') {
                         $arr["seller_id"] = "NULL";
@@ -1037,6 +1038,7 @@ class DataController extends BaseController {
                 $dataArrayValues = $this->getSalesDate($result["checks"], $update);
 
                 foreach ($dataArrayValues as $keyMethodName => $rowValue) {
+
                     try {
                         $this->$keyMethodName($rowValue, $update);
                     } catch (Exception $e) {
@@ -1183,7 +1185,7 @@ class DataController extends BaseController {
                                 'guid' => $arr2["id"],
                                 'date_up' => date('Y-m-d H:i:s'),
                                 'name' => $arr2["name"],
-                                'held' => isset($arr2["held"]) ? ($arr2["held"] ? 1 : 0) : 0
+                                'held' => isset($arr2["held"]) ? (bool)$arr2["held"] : false
                             ], ['check_id' => $arr2["id"]]);
 //                            $createChecks3 = CreateChecks::find()->where(['check_id' => $arr2["id"]])->orderBy(['id' => SORT_DESC])->one();
 //                            if ($createChecks3) {
@@ -1404,7 +1406,7 @@ class DataController extends BaseController {
                 'terminal_id' => $arr["terminal_id"] ?? '', // terminal_id,
                 'skidka' => $arr["discount"] ?? 0, // skidka
                 'date_up' => $date_up, // date_up
-                'held' => 0,
+                'held' => false,
             ];
 
         }
@@ -1589,16 +1591,36 @@ class DataController extends BaseController {
 
     private function insertDataSales($values, $tableName, $columns) {
         $chunkValues = array_chunk($values, 1000);
+        // Логирование общего количества значений и количества фрагментов
+        file_put_contents(self::OUT_DIR . '/error_upload.txt', PHP_EOL . "Total values: " . count($values), FILE_APPEND);
+        file_put_contents(self::OUT_DIR . '/error_upload.txt', PHP_EOL . "Total chunks: " . count($chunkValues), FILE_APPEND);
+
         foreach ($chunkValues as $key => $rows) {
+            // Преобразование значений в $rows перед вставкой
+            foreach ($rows as &$row) {
+                if (isset($row['held'])) {
+                    // Приведение значений к булевому типу
+                    $row['held'] = (bool)$row['held'];
+                }
+            }
+
+
+            // Логирование текущего фрагмента перед попыткой вставки
+            $jsonRows = json_encode($rows, JSON_UNESCAPED_UNICODE);
+            file_put_contents(self::OUT_DIR . '/sales_upload.json', PHP_EOL . "Chunk $key: " . $jsonRows, FILE_APPEND);
             try {
+                file_put_contents(self::OUT_DIR . '/sales_upload2.json', PHP_EOL . "Inserting chunk $key", FILE_APPEND);
                 $transaction = \Yii::$app->db->beginTransaction();
                 Yii::$app->db->createCommand()->batchInsert($tableName, $columns, $rows)->execute();
                 $transaction->commit();
             } catch (Exception $e) {
+              //  $transaction->rollBack();
                 $errorString = substr($e->getMessage(), 0, 2000);
-                InfoLogService::setInfoLog(__FILE__, __LINE__, $tableName , 'error_id_25');
-                InfoLogService::setInfoLog(__FILE__, __LINE__, $errorString , 'error_id_25_22');
-                LogService::apiErrorLog(json_encode(["error_id" => 25, "error" => $errorString], JSON_UNESCAPED_UNICODE));
+              //  InfoLogService::setInfoLog(__FILE__, __LINE__, $tableName , 'error_id_25');
+              //  InfoLogService::setInfoLog(__FILE__, __LINE__, $errorString , 'error_id_25_22');
+              //  LogService::apiErrorLog(json_encode(["error_id" => 25, "error" => $errorString], JSON_UNESCAPED_UNICODE));
+                file_put_contents(self::OUT_DIR . '/sales_upload3.json', PHP_EOL . "Error in chunk $key: " . $errorString, FILE_APPEND);
+                file_put_contents(self::OUT_DIR . '/sales_upload3.json', PHP_EOL . "Failed chunk data: " . $jsonRows, FILE_APPEND);
             }
         }
     }