mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-22 05:31:17 +02:00
CDEK: Работа с заявками на вызов курьера
This commit is contained in:
parent
6efe702216
commit
21c50cc3a3
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
Возврат СтруктураЗаявки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -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
@ -216,6 +216,7 @@
|
||||
НовыйТест(ТаблицаТестов, "НС_ПолучениеДанных" , "Получение данных" , Неоситиз);
|
||||
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
|
||||
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
|
||||
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
@ -1857,9 +1858,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@ -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
|
||||
Возврат СтруктураЗаявки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -216,6 +216,7 @@
|
||||
НовыйТест(ТаблицаТестов, "НС_ПолучениеДанных" , "Получение данных" , Неоситиз);
|
||||
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
|
||||
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
|
||||
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user