false, 'error' => 'Missing required fields: contactid or offenderid']); exit; } try { global $adb; // Инициализируем пользователя (захардкодим как в оригинале) $seed_user = new Users(); $current_user = $seed_user->retrieveCurrentUserInfoFromFile(1); // Пользователь с ID 1 $contactid = $input['contactid']; $offenderid = $input['offenderid']; $applicantid = $input['applicantid'] ?? $contactid; // Заявитель, по умолчанию = контакт $projectData = $input['projectdata'] ?? []; // Получаем название контакта для названия проекта $query = "select c.lastname from vtiger_contactdetails c left join vtiger_crmentity e on e.crmid = c.contactid where e.deleted = 0 and c.contactid = ? limit 1"; $result = $adb->pquery($query, array($contactid)); $contactName = $adb->query_result($result, 0, 'lastname'); // Получаем название контрагента для названия проекта $query = "select a.accountname from vtiger_account a left join vtiger_crmentity e on e.crmid = a.accountid where e.deleted = 0 and a.accountid = ? limit 1"; $result = $adb->pquery($query, array($offenderid)); $accountName = $adb->query_result($result, 0, 'accountname'); // Формируем название проекта $projectName = $contactName . ' ' . $accountName; // Основные поля модуля Проекты $params = array ( 'projectname' => $projectName, 'linktoaccountscontacts' => '12x'.$contactid, 'cf_2274' => '11x'.$offenderid, 'projectstatus' => 'модерация', 'projecttype' => 'Претензионно - исковая работа', 'assigned_user_id' => vtws_getWebserviceEntityId('Users', $current_user->id) ); // Заявитель по умолчанию (если не придет из projectdata или как отдельное поле) if (!isset($projectData['cf_1994']) && !isset($input['cf_1994'])) { $params['cf_1994'] = vtws_getWebserviceEntityId('Accounts', 62345); // МОО КЛИЕНТПРАВ } // Логируем assigned_user_id для отладки $logstring = date('Y-m-d H:i:s').' assigned_user_id: '.vtws_getWebserviceEntityId('Users', $current_user->id).' (current_user->id: '.$current_user->id.')'.PHP_EOL; $logstring .= date('Y-m-d H:i:s').' applicantid: '.$applicantid.' (cf_1994: 12x'.$applicantid.')'.PHP_EOL; file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND); // Обрабатываем cf_1994 как отдельное поле (если пришло) if (isset($input['cf_1994'])) { $params['cf_1994'] = vtws_getWebserviceEntityId('Accounts', $input['cf_1994']); // Поле cf_1994 ссылается на Accounts } // Заполняем поля из projectdata if (!empty($projectData)) { // Основные поля if (isset($projectData['cf_2206'])) $params['cf_2206'] = $projectData['cf_2206']; if (isset($projectData['cf_1994'])) { // Заявитель из projectdata - поле cf_1994 ссылается на Accounts $params['cf_1994'] = vtws_getWebserviceEntityId('Accounts', $projectData['cf_1994']); } if (isset($projectData['cf_2210'])) $params['cf_2210'] = $projectData['cf_2210']; if (isset($projectData['cf_2212'])) $params['cf_2212'] = $projectData['cf_2212']; if (isset($projectData['cf_2214'])) $params['cf_2214'] = $projectData['cf_2214']; if (isset($projectData['cf_1830'])) $params['cf_1830'] = $projectData['cf_1830']; if (isset($projectData['cf_1469'])) $params['cf_1469'] = $projectData['cf_1469']; // Условия договора if (isset($projectData['cf_1191'])) $params['cf_1191'] = $projectData['cf_1191']; if (isset($projectData['cf_1189'])) $params['cf_1189'] = $projectData['cf_1189']; if (isset($projectData['cf_1203'])) $params['cf_1203'] = $projectData['cf_1203']; if (isset($projectData['cf_1839'])) $params['cf_1839'] = $projectData['cf_1839']; if (isset($projectData['cf_1841'])) $params['cf_1841'] = $projectData['cf_1841']; if (isset($projectData['cf_1207'])) $params['cf_1207'] = $projectData['cf_1207']; if (isset($projectData['cf_1479'])) $params['cf_1479'] = $projectData['cf_1479']; if (isset($projectData['cf_1231'])) $params['cf_1231'] = $projectData['cf_1231']; if (isset($projectData['cf_1239'])) $params['cf_1239'] = $projectData['cf_1239']; if (isset($projectData['cf_1566'])) $params['cf_1566'] = $projectData['cf_1566']; if (isset($projectData['cf_1564'])) $params['cf_1564'] = $projectData['cf_1564']; if (isset($projectData['cf_1249'])) $params['cf_1249'] = $projectData['cf_1249']; if (isset($projectData['description'])) $params['description'] = $projectData['description']; // Претензионный порядок if (isset($projectData['cf_1471'])) $params['cf_1471'] = $projectData['cf_1471']; if (isset($projectData['cf_1473'])) $params['cf_1473'] = $projectData['cf_1473']; if (isset($projectData['cf_1475'])) $params['cf_1475'] = $projectData['cf_1475']; } $logstring = date('Y-m-d H:i:s').' CreateProjectAdvanced params: '.json_encode($params).PHP_EOL; file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND); // Создаем проект $project = vtws_create('Project', $params, $current_user); $projectId = substr($project['id'], 3); $logstring = date('Y-m-d H:i:s').' CreateProjectAdvanced success: project created with id '.$projectId.PHP_EOL; file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND); echo json_encode(['success' => true, 'projectid' => $projectId]); } catch (Exception $e) { $logstring = date('Y-m-d H:i:s').' CreateProjectAdvanced error: '.$e->getMessage().PHP_EOL; file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND); http_response_code(500); echo json_encode(['success' => false, 'error' => $e->getMessage()]); } ?>