From: JoySystem_v Date: Mon, 19 Aug 2024 16:43:41 +0000 (+0300) Subject: логирование и преобразование значения held к bool X-Git-Tag: 1.4~30^2~6 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=70b13b83608be1fb7c48888e2d04304f409ca57b;p=erp24_rep%2Fyii-erp24%2F.git логирование и преобразование значения held к bool --- diff --git a/erp24/api2/controllers/DataController.php b/erp24/api2/controllers/DataController.php index 8a8e45b0..b0490a57 100644 --- a/erp24/api2/controllers/DataController.php +++ b/erp24/api2/controllers/DataController.php @@ -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); } } }