1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-22 05:31:17 +02:00

CDEK: Работа с заявками на вызов курьера

This commit is contained in:
Anton 2024-10-19 17:11:33 +03:00
parent 6efe702216
commit 21c50cc3a3
9 changed files with 6612 additions and 5776 deletions

File diff suppressed because it is too large Load Diff

View File

@ -388,7 +388,7 @@
СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураОтправителя.Вставить("tin" , "<ИНН>");
СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL>");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
@ -476,6 +476,171 @@
#КонецОбласти
#Область РаботаСЗаявкамиНаВызовКурьера
// Создать заявку на вызов курьера
// Создает новую заявку на вызов курьера для забора груза
//
// Примечание:
// Метод в документации API: [Регистрация отказа](@api-docs.cdek.ru/55327658.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// ОписаниеЗаявки - Структура Из КлючИЗначение - Описание заявки. См. ПолучитьОписаниеЗаявкиКурьера - intake
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция СоздатьЗаявкуНаВызовКурьера(Знач Токен, Знач ОписаниеЗаявки, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаявки);
URL = СформироватьURL("/intakes", ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, ОписаниеЗаявки, Заголовки);
Возврат Ответ;
КонецФункции
// Получить заявку на вызов курьера
// Получает заявку на вызов курьера по UUID
//
// Примечание:
// Метод в документации API: [Информация о заявке](@api-docs.cdek.ru/29948360.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// UUID - Строка - UUID заявки - uuid
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция ПолучитьЗаявкуНаВызовКурьера(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
URL = СформироватьURL("/intakes/" + UUID, ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Удалить заявку на вызов курьера
//
// Примечание:
// Метод в документации API: [Удаление заявки](@api-docs.cdek.ru/29948379.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// UUID - Строка - UUID заявки для удаления - uuid
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция УдалитьЗаявкуНаВызовКурьера(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
URL = СформироватьURL("/intakes/" + UUID, ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить описание заявки курьера
// Получает макет для создания заявки на вызов курьера в функции СоздатьЗаявкуНаВызовКурьера
//
// Примечание:
// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
// Описания полей в документации: [Регистрация заявки на вызов курьера](@api-docs.cdek.ru/29925274.html)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьОписаниеЗаявкиКурьера(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
СтруктураЗаявки = Новый Структура;
СтруктураЗаявки.Вставить("intake_date" , "<Дата ожидания курьера>");
СтруктураЗаявки.Вставить("intake_time_from" , "<Время начала ожидания курьера>");
СтруктураЗаявки.Вставить("intake_time_to" , "<Время окончания ожидания курьера>");
Если Не ТолькоОбязательные Тогда
СтруктураЗаявки.Вставить("cdek_number" , "<Номер заказа СДЭК>");
СтруктураЗаявки.Вставить("order_uuid" , "<Идентификатор заказа в ИС СДЭК>");
СтруктураЗаявки.Вставить("lunch_time_from" , "<Время начала обеда>");
СтруктураЗаявки.Вставить("lunch_time_to" , "<Время окончания обеда>");
СтруктураЗаявки.Вставить("name" , "<Описание груза>");
СтруктураЗаявки.Вставить("weight" , "<Общий вес (в граммах)>");
СтруктураЗаявки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
СтруктураЗаявки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
СтруктураЗаявки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
СтруктураЗаявки.Вставить("comment" , "<Комментарий к заявке для курьера>");
СтруктураЗаявки.Вставить("need_call" , "<Необходим прозвон отправителя>");
СтруктураЗаявки.Вставить("courier_power_of_attorney", "<Курьеру необходима доверенность>");
СтруктураЗаявки.Вставить("courier_identity_card" , "<Курьеру необходим документ удостоверяющий личность>");
СтруктураОтправителя = Новый Структура;
СтруктураОтправителя.Вставить("company" , "<Название компании отправителя>");
СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
СтруктураОтправителя.Вставить("contragent_type", "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL>");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураОтправителя.Вставить("phones", МассивТелефонов);
СтруктураЗаявки.Вставить("sender" , СтруктураОтправителя);
СтруктураАдресаОтправления = Новый Структура;
СтруктураАдресаОтправления.Вставить("code" , "<Код населенного пункта СДЭК>");
СтруктураАдресаОтправления.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
СтруктураАдресаОтправления.Вставить("postal_code" , "<Почтовый индекс>");
СтруктураАдресаОтправления.Вставить("longitude" , "<Долгота>");
СтруктураАдресаОтправления.Вставить("latitude" , "<Широта>");
СтруктураАдресаОтправления.Вставить("country_code", "<Код страны>");
СтруктураАдресаОтправления.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
СтруктураАдресаОтправления.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
СтруктураАдресаОтправления.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
СтруктураАдресаОтправления.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
СтруктураАдресаОтправления.Вставить("kladr_code" , "<Код КЛАДР. Устаревшее поле>");
СтруктураАдресаОтправления.Вставить("address" , "<Строка адреса>");
СтруктураЗаявки.Вставить("from_location" , СтруктураАдресаОтправления);
КонецЕсли;
Если Пустая Тогда
СтруктураЗаявки = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаявки);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураЗаявки;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -2000,7 +2000,7 @@
Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
CDEK_СоздатьЗаказ(ПараметрыТеста);
@ -2013,6 +2013,18 @@
КонецПроцедуры
Процедура СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыТеста);
CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -13834,6 +13846,107 @@
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыФункции)
Результат = OPI_CDEK.ПолучитьОписаниеЗаявкиКурьера();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаявкиКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаявкиКурьера(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
КонецПроцедуры
Процедура CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
ОписаниеЗаявки = Новый Структура;
ОписаниеЗаявки.Вставить("intake_date" , Формат(ТекущаяДата + 60 * 60 * 24, "ДФ=yyyy-MM-dd"));
ОписаниеЗаявки.Вставить("intake_time_from", "10:00");
ОписаниеЗаявки.Вставить("intake_time_to" , "17:00");
ОписаниеЗаявки.Вставить("name" , "Консолидированный груз");
ОписаниеЗаявки.Вставить("weight" , 1000);
ОписаниеЗаявки.Вставить("length" , 10);
ОписаниеЗаявки.Вставить("width" , 10);
ОписаниеЗаявки.Вставить("height" , 10);
ОписаниеЗаявки.Вставить("comment" , "Комментарий курьеру");
ОписаниеЗаявки.Вставить("need_call" , Ложь);
Отправитель = Новый Структура;
Отправитель.Вставить("company", "Компания");
Отправитель.Вставить("name" , "Иванов Иван");
Телефоны = Новый Массив;
Телефон = Новый Структура("number", "+79589441654");
Телефоны.Добавить(Телефон);
Отправитель.Вставить("phones", Телефоны);
ОписаниеЗаявки.Вставить("sender", Отправитель);
ТочкаОтправления = Новый Структура;
ТочкаОтправления.Вставить("code" , "44");
ТочкаОтправления.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
ТочкаОтправления.Вставить("postal_code" , "109004");
ТочкаОтправления.Вставить("longitude" , 37.6204);
ТочкаОтправления.Вставить("latitude" , 55.754);
ТочкаОтправления.Вставить("country_code", "RU");
ТочкаОтправления.Вставить("region" , "Москва");
ТочкаОтправления.Вставить("sub_region" , "Москва");
ТочкаОтправления.Вставить("city" , "Москва");
ТочкаОтправления.Вставить("kladr_code" , "7700000000000");
ТочкаОтправления.Вставить("address" , "ул. Блюхера, 32");
ОписаниеЗаявки.Вставить("from_location", ТочкаОтправления);
Результат = OPI_CDEK.СоздатьЗаявкуНаВызовКурьера(Токен, ОписаниеЗаявки, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЗаявкуНаВызовКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
UUID = Результат["entity"]["uuid"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_IntakeUUID", UUID);
OPI_Инструменты.ДобавитьПоле("CDEK_IntakeUUID", UUID, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_IntakeUUID"];
Результат = OPI_CDEK.ПолучитьЗаявкуНаВызовКурьера(Токен, UUID, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗаявкуНаВызовКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
КонецПроцедуры
Процедура CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_IntakeUUID"];
Результат = OPI_CDEK.УдалитьЗаявкуНаВызовКурьера(Токен, UUID, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаявкуНаВызовКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

File diff suppressed because it is too large Load Diff

View File

@ -216,6 +216,7 @@
НовыйТест(ТаблицаТестов, "НС_ПолучениеДанных" , "Получение данных" , Неоситиз);
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
Возврат ТаблицаТестов;
@ -1857,9 +1858,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_CDEK.os
// OneScript: ./OInt/core/Modules/OPI_CDEK.os
// Lib: CDEK
// CLI: cdek
@ -388,7 +388,7 @@
СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
СтруктураОтправителя.Вставить("tin" , "<ИНН>");
СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL>");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
@ -476,6 +476,171 @@
#КонецОбласти
#Область РаботаСЗаявкамиНаВызовКурьера
// Создать заявку на вызов курьера
// Создает новую заявку на вызов курьера для забора груза
//
// Примечание:
// Метод в документации API: [Регистрация отказа](@api-docs.cdek.ru/55327658.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// ОписаниеЗаявки - Структура Из КлючИЗначение - Описание заявки. См. ПолучитьОписаниеЗаявкиКурьера - intake
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция СоздатьЗаявкуНаВызовКурьера(Знач Токен, Знач ОписаниеЗаявки, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаявки);
URL = СформироватьURL("/intakes", ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, ОписаниеЗаявки, Заголовки);
Возврат Ответ;
КонецФункции
// Получить заявку на вызов курьера
// Получает заявку на вызов курьера по UUID
//
// Примечание:
// Метод в документации API: [Информация о заявке](@api-docs.cdek.ru/29948360.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// UUID - Строка - UUID заявки - uuid
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция ПолучитьЗаявкуНаВызовКурьера(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
URL = СформироватьURL("/intakes/" + UUID, ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Удалить заявку на вызов курьера
//
// Примечание:
// Метод в документации API: [Удаление заявки](@api-docs.cdek.ru/29948379.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// UUID - Строка - UUID заявки для удаления - uuid
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция УдалитьЗаявкуНаВызовКурьера(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
URL = СформироватьURL("/intakes/" + UUID, ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить описание заявки курьера
// Получает макет для создания заявки на вызов курьера в функции СоздатьЗаявкуНаВызовКурьера
//
// Примечание:
// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
// Описания полей в документации: [Регистрация заявки на вызов курьера](@api-docs.cdek.ru/29925274.html)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьОписаниеЗаявкиКурьера(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
СтруктураЗаявки = Новый Структура;
СтруктураЗаявки.Вставить("intake_date" , "<Дата ожидания курьера>");
СтруктураЗаявки.Вставить("intake_time_from" , "<Время начала ожидания курьера>");
СтруктураЗаявки.Вставить("intake_time_to" , "<Время окончания ожидания курьера>");
Если Не ТолькоОбязательные Тогда
СтруктураЗаявки.Вставить("cdek_number" , "<Номер заказа СДЭК>");
СтруктураЗаявки.Вставить("order_uuid" , "<Идентификатор заказа в ИС СДЭК>");
СтруктураЗаявки.Вставить("lunch_time_from" , "<Время начала обеда>");
СтруктураЗаявки.Вставить("lunch_time_to" , "<Время окончания обеда>");
СтруктураЗаявки.Вставить("name" , "<Описание груза>");
СтруктураЗаявки.Вставить("weight" , "<Общий вес (в граммах)>");
СтруктураЗаявки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
СтруктураЗаявки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
СтруктураЗаявки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
СтруктураЗаявки.Вставить("comment" , "<Комментарий к заявке для курьера>");
СтруктураЗаявки.Вставить("need_call" , "<Необходим прозвон отправителя>");
СтруктураЗаявки.Вставить("courier_power_of_attorney", "<Курьеру необходима доверенность>");
СтруктураЗаявки.Вставить("courier_identity_card" , "<Курьеру необходим документ удостоверяющий личность>");
СтруктураОтправителя = Новый Структура;
СтруктураОтправителя.Вставить("company" , "<Название компании отправителя>");
СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
СтруктураОтправителя.Вставить("contragent_type", "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL>");
МассивТелефонов = Новый Массив;
СтруктураТелефона = Новый Структура;
СтруктураТелефона.Вставить("number" , "<Номер телефона>");
СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
МассивТелефонов.Добавить(СтруктураТелефона);
СтруктураОтправителя.Вставить("phones", МассивТелефонов);
СтруктураЗаявки.Вставить("sender" , СтруктураОтправителя);
СтруктураАдресаОтправления = Новый Структура;
СтруктураАдресаОтправления.Вставить("code" , "<Код населенного пункта СДЭК>");
СтруктураАдресаОтправления.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
СтруктураАдресаОтправления.Вставить("postal_code" , "<Почтовый индекс>");
СтруктураАдресаОтправления.Вставить("longitude" , "<Долгота>");
СтруктураАдресаОтправления.Вставить("latitude" , "<Широта>");
СтруктураАдресаОтправления.Вставить("country_code", "<Код страны>");
СтруктураАдресаОтправления.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
СтруктураАдресаОтправления.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
СтруктураАдресаОтправления.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
СтруктураАдресаОтправления.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
СтруктураАдресаОтправления.Вставить("kladr_code" , "<Код КЛАДР. Устаревшее поле>");
СтруктураАдресаОтправления.Вставить("address" , "<Строка адреса>");
СтруктураЗаявки.Вставить("from_location" , СтруктураАдресаОтправления);
КонецЕсли;
Если Пустая Тогда
СтруктураЗаявки = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаявки);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураЗаявки;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -216,6 +216,7 @@
НовыйТест(ТаблицаТестов, "НС_ПолучениеДанных" , "Получение данных" , Неоситиз);
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
Возврат ТаблицаТестов;

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
@ -2000,7 +2000,7 @@
Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
CDEK_СоздатьЗаказ(ПараметрыТеста);
@ -2013,6 +2013,18 @@
КонецПроцедуры
Процедура СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыТеста);
CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыТеста);
CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -13834,6 +13846,107 @@
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыФункции)
Результат = OPI_CDEK.ПолучитьОписаниеЗаявкиКурьера();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаявкиКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеЗаявкиКурьера(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеЗаказа (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
КонецПроцедуры
Процедура CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
ОписаниеЗаявки = Новый Структура;
ОписаниеЗаявки.Вставить("intake_date" , Формат(ТекущаяДата + 60 * 60 * 24, "ДФ=yyyy-MM-dd"));
ОписаниеЗаявки.Вставить("intake_time_from", "10:00");
ОписаниеЗаявки.Вставить("intake_time_to" , "17:00");
ОписаниеЗаявки.Вставить("name" , "Консолидированный груз");
ОписаниеЗаявки.Вставить("weight" , 1000);
ОписаниеЗаявки.Вставить("length" , 10);
ОписаниеЗаявки.Вставить("width" , 10);
ОписаниеЗаявки.Вставить("height" , 10);
ОписаниеЗаявки.Вставить("comment" , "Комментарий курьеру");
ОписаниеЗаявки.Вставить("need_call" , Ложь);
Отправитель = Новый Структура;
Отправитель.Вставить("company", "Компания");
Отправитель.Вставить("name" , "Иванов Иван");
Телефоны = Новый Массив;
Телефон = Новый Структура("number", "+79589441654");
Телефоны.Добавить(Телефон);
Отправитель.Вставить("phones", Телефоны);
ОписаниеЗаявки.Вставить("sender", Отправитель);
ТочкаОтправления = Новый Структура;
ТочкаОтправления.Вставить("code" , "44");
ТочкаОтправления.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
ТочкаОтправления.Вставить("postal_code" , "109004");
ТочкаОтправления.Вставить("longitude" , 37.6204);
ТочкаОтправления.Вставить("latitude" , 55.754);
ТочкаОтправления.Вставить("country_code", "RU");
ТочкаОтправления.Вставить("region" , "Москва");
ТочкаОтправления.Вставить("sub_region" , "Москва");
ТочкаОтправления.Вставить("city" , "Москва");
ТочкаОтправления.Вставить("kladr_code" , "7700000000000");
ТочкаОтправления.Вставить("address" , "ул. Блюхера, 32");
ОписаниеЗаявки.Вставить("from_location", ТочкаОтправления);
Результат = OPI_CDEK.СоздатьЗаявкуНаВызовКурьера(Токен, ОписаниеЗаявки, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЗаявкуНаВызовКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
UUID = Результат["entity"]["uuid"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_IntakeUUID", UUID);
OPI_Инструменты.ДобавитьПоле("CDEK_IntakeUUID", UUID, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_IntakeUUID"];
Результат = OPI_CDEK.ПолучитьЗаявкуНаВызовКурьера(Токен, UUID, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗаявкуНаВызовКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
КонецПроцедуры
Процедура CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_IntakeUUID"];
Результат = OPI_CDEK.УдалитьЗаявкуНаВызовКурьера(Токен, UUID, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаявкуНаВызовКурьера", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

File diff suppressed because it is too large Load Diff