Задача [0505]: Метод API для создания документа по реестру

Формулировка проблемы: в процессе внутренней корреспонденции необходимо зарегистрированный исходящий документ одного филиала, копировать и отправлять на регистрацию во входящий журнал другого филиала. Для этого используется интерпретатор, который создает запись в реестре входящих документов, копируя содержимое исходящего документа. Однако нет возможности добавить информацию в РКК входящего документа, например краткое содержание и номер исходящего.

Связанные задачи:
0504

Решение: необходимо реализовать новый API метод, который создает новый документ по реестру с возможностью вводить значения полей РКК. Перечень полей РКК должен быть в соответствии с типом документа реестра.

URL метода: rest/api/registry/create_doc_rcc

Тип запроса: POST

Метод принимает следующие входные параметры (json):

Обязательно должен быть передан хотя бы один параметр: либо registryID, либо registryCode. Если переданы оба, то используется registryCode.

Метод создает документ по реестру с учетом прав пользователя, который вызывает API метод, на реестр.

Примечание.

Данный метод позволяет создавать документ по реестру с типом документа входящего журнала.

Если для параметров объекта rcc, кроме subject, doc_type, duration, finish_date, введены некорректные (несуществующие) данные, то данные значение не присваиваются соответствующим полям РКК, и поля остаются пустые.

В случае успешного выполнения возвращается объект JSON с полями:

В случае неуспешного выполнения возвращается соответствующая ошибка HTTP в виде JSON объекта со следующими полями:

Пример передаваемого запроса:


{
    "registryID" : "f30f6b31-4cbe-11e6-8030-001ef892a4ee",
    "rcc" :
        {
            "subject" : "Новый документ",
            "number" : "122cp",
            "doc_type" : "internal",
            "reg_date" : "2016-08-07",
            "duration" : 5,
            "correspondent_org" : "ТОО Астана",
            "correspondent" : "Акбердиева",
            "control" : true,
            "base_number" : "152-552",
            "base_date" : "2016-08-02",
            "doc_file" : "fd96dff0-4e37-11e6-8030-001ef892a4ee",
            "base" :
               [
                    "v12dsdff0-4e37-11e6-8030-001ef892a4ee",
                    "1d5gsdff0-4e37-11e6-8030-001ef892a4ee"
               ],
            "user" : "ea989670-4e44-11e6-8030-001ef892a4ee"
        }   
}

Пример возвращаемого объекта JSON:


{
    "errorCode" : 0,
    "documentID" : "66df2270-4cc0-11e6-8030-001ef892a4ee",
    "dataID" : "a14a9ad0-585e-11e6-9e86-5a14ad700067",
    "asfNodeID" : "75d4e590-4cbf-11e6-8030-001ef892a4ee",
    "rcc" :
        [
            {   "number" : 1,
                "name" : "subject",
                "value" : "Документ 1233"
            },
            {   "number" : 2,
                "name" : "number",
                "value" : "{outgoing}/{dd}-{MM}-{yy}"
            },
            {   "number" : 4,
                "name" : "doc_type",
                "value" : "outgoing"                
            },
            {   "number" : 7,
                "name" : "base",
                "value" : "6dgdr6gad0-585e-11e6-9e86-5a14ad700067"
            },
            {   "number" : 7,
                "name" : "base",
                "value" : "kljfsd56fd-585e-11e6-9e86-5a14ad700067"
            }

        ]
}

Альтернативные потоки событий

Альтернативный поток №0. Передано пустое тело запроса. Система возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode" : 3,
    "errorMessage" : "Передано пустое тело запроса"
}

действие не выполняется.

Альтернативный поток №1. Не передан или передан некорректный (несуществующий) параметр registryID. Система возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode" : 3,
    "errorMessage" : "Не передан или передан некорректный параметр registryID"
}

действие не выполняется.

Альтернативный поток №2. У пользователя нет прав на создание записи документа по реестру. Система возвращает ошибку HTTP 403 с сообщением:

{
    "errorCode" : 2,
    "errorMessage" : "У вас нет прав на создание документов по данному реестру"
}

действие не выполняется.

Альтернативный поток №3. У пользователя нет доступа к указанному типу документов. Система возвращает ошибку HTTP 403 с сообщением:

{
    "errorCode" : 2,
    "errorMessage" : "У вас нет доступа к указанному типу документа"
}

действие не выполняется.

Альтернативный поток №4. У пользователя для указанного типа документов либо для присвоенного типа документа реестра нет доступа к указанному делу. Система возвращает ошибку HTTP 403 с сообщением:

{
    "errorCode" : 2,
    "errorMessage" : "У вас нет доступа к указанному делу"
}

действие не выполняется.

Альтернативный поток №5. Передан некорректный параметр subject. Система возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode" : 3,
    "errorMessage" : "Передан некорректный параметр subject"
}

действие не выполняется.

Альтернативный поток №6. Передан некорректный параметр doc_type. Система возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode" : 3,
    "errorMessage" : "Передан некорректный параметр doc_type"
}

действие не выполняется.

Альтернативный поток №5. Передан некорректный параметр duration. Система возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode" : 3,
    "errorMessage" : "Передан некорректный параметр duration"
}

действие не выполняется.

Альтернативный поток №6. Передан некорректный параметр finish_date. Система возвращает ошибку HTTP 400 с сообщением:

{
    "errorCode" : 3,
    "errorMessage" : "Передан некорректный параметр finish_date"
}

действие не выполняется.