diff --git a/include/Webservices/CreateWebProject.php b/include/Webservices/CreateWebProject.php new file mode 100644 index 00000000..44080578 --- /dev/null +++ b/include/Webservices/CreateWebProject.php @@ -0,0 +1,122 @@ +pquery($query, array($policy_number)); + + if ($adb->num_rows($result) > 0) { + // Проект существует - ПРОСТО ВОЗВРАЩАЕМ ID (НЕ обновляем!) + $output = $adb->query_result($result, 0, 'projectid'); + $isNew = false; + $logstring = date('Y-m-d H:i:s').' ✅ Проект найден с id '.$output.' (БЕЗ обновления)'.PHP_EOL; + file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND); + } else { + // Проект НЕ существует - создаём новый + + // Формируем название проекта + $projectname = 'ERV ' . $policy_number . ' цифровой адвокат'; + + $params = array ( + 'projectname' => $projectname, + 'projectstatus' => 'модерация', + 'projecttype' => 'ерв урегулирование', + 'linktoaccountscontacts' => '12x'.$contact_id, // Привязка к контакту + 'cf_1994' => '11x67458', // Заявитель (контрагент record=67458) + 'cf_1885' => $policy_number, // Номер полиса + 'assigned_user_id' => vtws_getWebserviceEntityId('Users', $current_user->id) + ); + + // Дополнительные необязательные поля + if (!empty($period_start)) { + $params['cf_1887'] = $period_start; // Период страхования начало + } + if (!empty($period_end)) { + $params['cf_1889'] = $period_end; // Период страхования конец + } + + $logstring = date('Y-m-d H:i:s').' Массив для создания Web Проекта: '.json_encode($params).PHP_EOL; + file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND); + + try { + $project = vtws_create('Project', $params, $current_user); + $output = substr($project['id'], 3); + $isNew = true; // Проект только что создан! + $logstring = date('Y-m-d H:i:s').' ✅ Создан новый Web Проект с id '.$output.PHP_EOL; + file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND); + } catch (WebServiceException $ex) { + $logstring = date('Y-m-d H:i:s').' ❌ Ошибка создания: '.$ex->getMessage().PHP_EOL; + file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND); + throw $ex; + } + } + + // Возвращаем JSON с флагом is_new + $result = array( + 'project_id' => $output, + 'is_new' => $isNew + ); + + $logstring = date('Y-m-d H:i:s').' Return: '.json_encode($result).PHP_EOL; + file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND); + + return json_encode($result); +} +?> +