Files
obsidian/Работа/ВНСП/Интеграция CRM и СУП для автоматического создания ВНСП.md

7.3 KiB
Raw Blame History

Авторизация

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

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

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

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

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

  1. Поле "Ответственный за выпуск ВнСп" заполняется ==УТОЧНИТЬ У ДУП==
  2. Поле "Продающее подразделение" заполняется автоматически, исходя из правил СУП
  3. Поле "Руководитель проекта" заполняется значением из поля "Ответственный за выпуск ВнСп"
  4. Поле "Условия оплаты" заполняется автоматически значением "100% предоплата"
  5. Поле "Условия поставки" не заполняется. Автоматически проставить true в логическое поле "Нет поставки"
  6. Поле "Вид договора" заполняется автоматически значением "Поставка товаров и оказание услуг"
  7. Поле "Ставка НДС" заполняется автоматически значением "Без НДС, 20% и 22%"
  8. Поле "Название договора / проекта" ==УТОЧНИТЬ У ДУП формат названия==
  9. Валюта договора заполняется автоматически, исходя из правил СУП и ДУП
  10. Подразделения-участники добавляются автоматически, необходимо смотреть на divisions.mvzCode и на основе этих данных создать нужные подразделения в ВНСП
  11. Услуги, которые привязаны к определенному подразделению хранятся в divisions.products
  12. Если при запросе приходит пустое поле vnspCode, тогда происходит создание черновика, иначе обновляем данные в уже существующей ВНСП
  13. В процессе работы со сделкой могут добавляться или удаляться продукты (услуги)
    1. При получении запроса на обновление нужно проверять список услуг ВНСП с тем, что пришел в запросе по полю products.productId если
      1. В ВНСП существует продукт, которого нет в запросе, то его нужно удалить из ВНСП, так как больше он не участвует в процессе
      2. В ВНСП отсутствует продукт, который есть в запросе, то его нужно добавить в ВНСП
      3. В ВНСП существует продукт, который есть в запросе, то его нужно обновить в ВНСП, так как могут поменяться суммы и прочее

Запрос

{
	"legalEntityCode": "ARDS",
	"customerInn": "7802020639",
	"clientCode": "0000103001",
	"managerCode": "00123087",
	"directorProjectCode": "00122607",
	"projectName": "ADC / AI DS",
	"presaleCode": "AP02509",
	"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" - Родительский проект (пресейл)
"divisions" - Массив подразделений-исполнителей (передается массив)
"mvzCode" - Код МВЗ списка продуктов для добавления подразделений-исполнителей
"products" - Массив услуг, который относятся к одному подразделению (передается массив)
"productLineCode" - код продуктовой линейки
"productCode" - Код продукта SAP (18 символов)
"price" - Цена продукта за единицу
"count" - Количество единиц продукта 
"totalPrice" - Цена с учетом скидки (без НДС)
"discount" - Процент скидки 
"tax" - НДС (0 - Без НДС, 20, 22)
"productId" - Id записи в CRM (для создания, обновления и удаления данных в ВНСП. см. п. в Описание процесса)
"applicationId" - Id заявки в CRM (нужно для обновления заявки в CRM и привязки ВНСП к заявке)
"vnspCode" - Кодовый идентификатор ВНСП (пусто - создание черновика, заполнено - обновление данных)

Ответ

Успешный

{
	"success": true,
	"errorMessage": ""
}

Неуспешный

{
	"success": false,
	"errorMessage": "Текст ошибки"
}

Вопросы для обсуждения

  1. ==Принять решение по названию метода и его формату==
  2. ==Обсудить формат ответа и когда возвращается код ВНСП==
  3. ==Заполнения поля "Ответственный за выпуск ВнСп"==
  4. ==Даты актирования (дата сделки, дата завершения продукта или другая дата)==
  5. ==Формат заполнения поля "Название договора / проекта"==
  6. ==Заполнения обязательного поля в услуге (не помню точное название, что-то про актирование)==