false, 'error' => $errorMessage]); exit; } try { // Получение пользователя $user = Users::getActiveAdminUser(); // Подготовка данных для CRM $crmData = array( 'ticket_title' => 'Самообследование_' . $inn, 'ticketstatus' => 'Открыто', 'ticketpriorities' => 'Высокий', 'cf_2526' => $test_id, 'cf_2516' => $name, 'cf_2518' => $inn, 'cf_2514' => $email, 'cf_2512' => $phone, 'cf_2528' => $percentage, 'cf_2564' => $totalfine, 'cf_2524' => '00001', 'description' => generateTestResultsDescription($test_results), // Формируем описание из результатов 'cf_2562' => generateSolutionDescription($solution), // Добавляем решение 'assigned_user_id' => vtws_getWebserviceEntityId('Users', $user->id), ); writeLog("Отправка данных в CRM: " . json_encode($crmData), $logFile); // Создание записи в CRM $lead = vtws_create('HelpDesk', $crmData, $user); writeLog("Запись успешно создана в CRM: " . json_encode($lead), $logFile); echo json_encode(['success' => true, 'message' => 'Запись успешно создана.']); } catch (WebServiceException $ex) { $errorMessage = "Ошибка CRM: " . $ex->getMessage(); writeLog($errorMessage, $logFile); http_response_code(500); echo json_encode(['success' => false, 'error' => $errorMessage]); } // Функция для формирования описания на основе результатов теста function generateTestResultsDescription($testResults) { $description = "Результаты теста:\n"; foreach ($testResults as $result) { $description .= "Вопрос: {$result['question']}\n"; $description .= "Правильный ответ: {$result['correct_answer']}\n"; $description .= "Ответ пользователя: {$result['user_answer']}\n\n"; } return $description; } // Функция для формирования описания решений function generateSolutionDescription($solutions) { if (empty($solutions)) { return "Решений для неверных ответов не найдено."; } $description = "Рекомендации и ответственность по неверным ответам:\n"; foreach ($solutions as $solution) { /* $description .= "=== Вопрос: === {$solution['question']}\n"; $description .= "--- Ответ пользователя: --- {$solution['user_answer']}\n"; $description .= "*** Рекомендация: *** {$solution['recommendation']}\n"; $description .= ">>> Ответственность: <<< {$solution['responsibility']}\n\n"; */ $description .= "Вопрос: {$solution['question']}\n"; $description .= "Ответ пользователя: {$solution['user_answer']}\n"; $description .= "Рекомендация: {$solution['recommendation']}\n"; $description .= "Ответственность: {$solution['responsibility']}\n\n"; } return $description; } /* include_once 'modules/Users/Users.php'; require_once 'include/Webservices/Create.php'; require_once 'includes/Loader.php'; vimport('includes.runtime.Globals'); vimport('includes.runtime.BaseModel'); vimport('includes.runtime.LanguageHandler'); // Путь к лог-файлу $logFile = 'logs/logaudit.log'; // Функция логирования function writeLog($message, $logFile) { $time = date('Y-m-d H:i:s'); file_put_contents($logFile, "[$time] $message\n", FILE_APPEND); } // Получаем JSON-данные из тела запроса $data = json_decode(file_get_contents('php://input'), true); // Проверка полученных данных $inn = $data['inn'] ?? null; $test_id = $data['test_id'] ?? null; $name = $data['name'] ?? null; $email = $data['email'] ?? null; $phone = $data['phone'] ?? null; $percentage = $data['percentage'] ?? null; $test_results = $data['results'] ?? null; // Добавляем результаты теста writeLog("Полученные данные: " . json_encode($data), $logFile); // Проверка обязательных параметров if (empty($inn) || empty($test_id) || empty($name) || empty($email) || empty($phone) || empty($percentage) || empty($test_results)) { $errorMessage = "Ошибка: Одно из обязательных полей отсутствует."; writeLog($errorMessage, $logFile); http_response_code(400); echo json_encode(['success' => false, 'error' => $errorMessage]); exit; } try { // Получение пользователя $user = Users::getActiveAdminUser(); // Подготовка данных для CRM $crmData = array( 'ticket_title' => 'Самообследование_' . $inn, 'ticketstatus' => 'Открыто', 'ticketpriorities' => 'Высокий', 'cf_2526' => $test_id, 'cf_2516' => $name, 'cf_2518' => $inn, 'cf_2514' => $email, 'cf_2512' => $phone, 'cf_2528' => $percentage, 'cf_2524' => '00001', 'description' => generateTestResultsDescription($test_results), // Формируем описание из результатов 'assigned_user_id' => vtws_getWebserviceEntityId('Users', $user->id), ); writeLog("Отправка данных в CRM: " . json_encode($crmData), $logFile); // Создание записи в CRM $lead = vtws_create('HelpDesk', $crmData, $user); writeLog("Запись успешно создана в CRM: " . json_encode($lead), $logFile); echo json_encode(['success' => true, 'message' => 'Запись успешно создана.']); } catch (WebServiceException $ex) { $errorMessage = "Ошибка CRM: " . $ex->getMessage(); writeLog($errorMessage, $logFile); http_response_code(500); echo json_encode(['success' => false, 'error' => $errorMessage]); } // Функция для формирования описания на основе результатов теста function generateTestResultsDescription($testResults) { $description = "Результаты теста:\n"; foreach ($testResults as $result) { $description .= "Вопрос: {$result['question']}\n"; $description .= "Правильный ответ: {$result['correct_answer']}\n"; $description .= "Ответ пользователя: {$result['user_answer']}\n\n"; } return $description; } */