6.8 KiB
Статусы объектов
Заявка
- Черновик - 1
- На утверждении - 2
- На рассмотрении в ЦПРП - 3
- Зарегистрирована (финальный) - 4
- Отклонена - 5
- Отозвана - 6
Проект
- Открыт - E0001
- Закрыт (финальный) - E0002
- Приостановлен - E0003
- На закрытии в ЦПРП (финальный) - E0005
- На закрытии в ФС (финальный) - E0006
- Аннулирован (финальный) - E0009
- Закрыт для списания TS - E0027
Процесс
- После получения AP ID (Id проекта из САП) в CRM могут происходить изменения данных по сделке (заявке).
- Все изменения фиксируются в системе CRM и отправляются в СУП в конце рабочего дня
- По всем измененным заявкам вначале отправляем запрос на получение текущих статусов заявок и проектов Пример запроса смотри в "Получение статусов заявок и проектов" (Пример запроса)
- После получения статусов заявок и проектов система CRM отбирает только те заявки, которые могут быть изменены
- Заявка "Зарегистрирована" и Проект "Проект открыт"
- Заявка "Зарегистрирована" и Проект "Проект закрыт для списания TS"
- По подходящим заявкам из п.4 система CRM формирует запросы для отправки в СУП с использованием Temporal Пример запроса смотри в "Изменение данных по заявке - проекту" (Примеры запроса)
- Периодически опрашиваем систему СУП о готовности изменения данных по заявке и после получения ответа изменяем статусы заявок в CRM
Авторизация
Используется кастомный header X-Erp-Integration
Значение хранится в конфигах у системы СУП.
Для дев и прод разные значения.
Данные передаются в формате base64, при получении значения необходимо его раскодировать и сравнить со значением хранящимся в конфиге.
Если значения не соответствуют, то вернуть ошибку и код HTTP 403 - Unauthorized.
Получение статусов заявок и проектов
Используется endpoint с методом POST - синхронный процесс
Предлагаемый вариант
api/1.0/openRequest/getPresaleProjectsStatus Обсудить данный момент после реализации и предоставить команде CRM
Пример запроса
{
"projects": [
{
"projectId": "AP001", // AP ID проекта
},
{
"projectId": "AP002", // AP ID проекта
}
]
}
Пример ответа
{
"projects": [
{
"projectId": "AP001",
"applicationStatus": "4",
"projectStatus": "E0001"
},
{
"projectId": "AP002",
"applicationStatus": "4",
"projectStatus": "E0005"
}
]
}
Изменение данных по проекту
Заявка на перевыпуск
Используется endpoint с методом POST - асинхронный процесс
Предлагаемый вариант
api/1.0/openRequest/createPresaleProject Обсудить данный момент после реализации и предоставить команде CRM
В данном процессе будет использоваться метод createPresaleProject, также как и для создания некоммерческого проекта, но с условием, что в параметр projectId будет заполнен, что даст сигнал о том, что это заявка на перевыпуск проекта.
Пример запроса
{
"orderName": "Сделка-1", // Название проекта
"orderDate": "2025-12-31", // Дата сделки из CRM
"clientId": "123-123", // Код клиента из R3
"headProjectId": "00123123", // ИНС руководителя проекта
"managerProjectId": "00123124", // ИНС менеджера по продажам
"directorProjectId": "00123125", // ИНС директора проекта
"orderAmount": 12345.67, // Сумма сделки
"projectId": "AP001", // AP ID проекта
"applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c43" // Id заявки в CRM
}
Успешный ответ
{
"success": true,
"errorMessage": ""
}
Неуспешный ответ
{
"success": false,
"errorMessage": "Текст ошибки"
}
Проверка готовности проекта с измененными данными
После изменения статуса заявки на Черновик, ожидаем согласования заявки и система CRM (Temporal) будет периодически опрашивать СУП о готовности перевыпуска и согласовании изменений по проекту.
Ответ считается окончательным, если статус != Waiting, то есть Error или Success.
Предлагаемый вариант
api/1.0/openRequest/view?applicationId={applicationId} Обсудить данный момент после реализации и предоставить команде CRM
Примеры ответов
Идет согласование изменений
{
"status": "Waiting",
"projectId": "AP001",
"errorMessage": ""
}
Согласование изменений успешно
{
"status": "Success",
"projectId": "AP001",
"errorMessage": ""
}
Ошибка или отказ по изменениям в проекте
{
"status": "Error",
"projectId": "AP001",
"errorMessage": "Описание ошибки"
}