## Авторизация

Используется кастомный header `X-Erp-Integration`
Значение хранится в конфигах у системы СУП.
Для дев и прод разные значения.
При получении значения необходимо его сравнить со значением хранящимся в конфиге.
Если значения не соответствуют, то вернуть ошибку.

## Создание черновика ВНСП

Используется endpoint с методом POST

Предлагаемый вариант
`api/1.0/openRequest/createAutoDraftVnSp`

### Описание процесса

1. Поле "Юридическое лицо" заполняется данными из интеграции
2. Поле "Ответственный за выпуск ВнСп" заполняется автоматически, исходя из значения поля "Юридическое лицо"
3. Поле "Заказчик" заполняется данными из интеграции
4. Поле "Клиент компании" заполняется данными из интеграции
5. Поле "Продающее подразделение" заполняется автоматически, исходя из правил СУП
6. Поле "Менеджер по продажам" заполняется данными из интеграции
7. Поле "Директор проекта" заполняется данными из интеграции
8. ==Поле "Руководитель проекта" заполняется значением из поля "Ответственный за выпуск ВнСп"==
9. Поле "Название договора / проекта" заполняется в формате 
   ==Название клиента / Название заказчика / Дата сделки / Номер проекта==
   Формат, используемый сейчас не подходит, так как в ВнСп будет массив разных продуктов
   `Название клиента, Тип продаж (PL, TL, Supp, Cons, Edu), Продукт, Партнёр, Срок ПО или Срок ТП, Ссылки на документы (в рамках которых идёт продажа), Номер проекта (если известен)`
10. Поле "Родительский проект (пресейл)" заполняется данными из интеграции
11. Поле "Условия оплаты" заполняется автоматически значением "30 дней кредит"
12. Поле "Условия поставки" заполняется автоматически значением "DDP Россия"
13. Поле "Вид договора" заполняется автоматически значением "Оказание услуг"
14. Поле "Ставка НДС" заполняется автоматически значением "Без НДС, 20% и 22%"
15. Валюта договора заполняется автоматически, исходя из даты сделки
16. Подразделения-участники добавляются автоматически, необходимо смотреть на `divisions.mvzCode` и на основе этих данных создать нужные подразделения в ВНСП
17. Услуги, которые привязаны к определенному подразделению хранятся в `divisions.products`
18. Если при запросе приходит пустое поле `vnspCode`, тогда происходит создание черновика, иначе обновляем данные в уже существующей ВНСП
19. В процессе работы со сделкой могут добавляться или удаляться продукты (услуги)
	1. При получении запроса на обновление нужно проверять список услуг ВНСП с тем, что пришел в запросе по полю `products.productId` если
		1. В ВНСП существует продукт, которого нет в запросе, то его нужно удалить из ВНСП, так как больше он не участвует в процессе
		2. В ВНСП отсутствует продукт, который есть в запросе, то его нужно добавить в ВНСП
		3. В ВНСП существует продукт, который есть в запросе, то его нужно обновить в ВНСП, так как могут поменяться суммы и прочее

### Запрос

```json
{
	"legalEntityCode": "ARDS",
	"customerInn": "7802020639",
	"clientCode": "0000103001",
	"managerCode": "00123087",
	"directorProjectCode": "00122607",
	"projectName": "Сбербанк / РЯЗАНСКИЙ БАНК СБЕРБАНКА РФ / 29.09.2026 / AP02509",
	"presaleCode": "AP02509",
	=="orderDate": "",==
	"divisions": [
        {
            "mvzCode": "U25",
            "products": [
                {
                    "productLineCode": "00EDUU25000EDUA",
                    "productCode": "EDUAADQMUCERT",
                    "price": 1500000,
                    "count": 2,
                    "totalPrice": 2700000,
                    "discount": 10,
                    "tax": 22,
                    "productId": "39ad0abc-edc2-4986-955d-65daa9b86512"
                }
            ]
        }
    ],
    "applicationId": "672fc554-4be4-4ae7-934c-59968607078c",
    "vnspCode": "ST260051"
}
```

```
"legalEntityCode" - Юридическое лицо (буквенный код юридического лица ARDS, ARDK и другие)
"customerInn" - Заказчик (передается ИНН)
"clientCode" - Клиент компании (передается код R3 - 10 цифр)
"managerCode" - Менеджер по продажам (передается код R3 - 8 цифр)
"directorProjectCode" - Директор проекта (передается код R3 - 8 цифр. Руководитель менеджера)
"projectName" - Название договора / проекта
"presaleCode" - Родительский проект (пресейл)
"orderDate" - Дата сделки
"divisions" - Массив подразделений-исполнителей (передается массив)
"mvzCode" - Код МВЗ списка продуктов для добавления подразделений-исполнителей
"products" - Массив услуг, который относятся к одному подразделению (передается массив)
"productLineCode" - код продуктовой линейки
"productCode" - Код продукта SAP (18 символов)
"price" - Цена продукта за единицу
"count" - Количество единиц продукта 
"totalPrice" - Цена с учетом скидки (без НДС)
"discount" - Процент скидки 
"tax" - НДС (0 - Без НДС, 20, 22)
"productId" - Id записи в CRM (для создания, обновления и удаления данных в ВНСП. см. п. в Описание процесса)
"applicationId" - Id заявки в CRM (нужно для обновления заявки в CRM и привязки ВНСП к заявке)
"vnspCode" - Кодовый идентификатор ВНСП (пусто - создание черновика, заполнено - обновление данных)
```

### Ответ

Успешный
```json
{
	"success": true,
	"errorMessage": ""
}
```

Неуспешный
```json
{
	"success": false,
	"errorMessage": "Текст ошибки"
}
```