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() {
$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";
$dataArrayValues = $this->getSalesDate($result["checks"], $update);
foreach ($dataArrayValues as $keyMethodName => $rowValue) {
+
try {
$this->$keyMethodName($rowValue, $update);
} catch (Exception $e) {
'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) {
'terminal_id' => $arr["terminal_id"] ?? '', // terminal_id,
'skidka' => $arr["discount"] ?? 0, // skidka
'date_up' => $date_up, // date_up
- 'held' => 0,
+ 'held' => false,
];
}
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);
}
}
}