1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-05-22 10:05:29 +02:00

CDEK: Список офисов

This commit is contained in:
Anton Titovets
2024-10-21 16:04:30 +03:00
parent a8019fab83
commit 0fce387d91
6 changed files with 5439 additions and 5192 deletions
+5219 -5190
View File
File diff suppressed because it is too large Load Diff
+74
View File
@@ -154,6 +154,80 @@
КонецФункции
// Получить список офисов
// Получает список офисов с фильтром или без
//
// Примечание:
// Метод в документации API: [Список офисов](@api-docs.cdek.ru/36982648.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// Фильтр - Структура Из КлючИЗначение - Фильтр офисов. См. ПолучитьОписаниеФильтраОфисов - filter
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция ПолучитьСписокОфисов(Знач Токен, Знач Фильтр = "", Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтр);
URL = СформироватьURL("/deliverypoints", ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, Фильтр, Заголовки);
Возврат Ответ;
КонецФункции
// Получить описание фильтра офисов
// Получает пустой макет фильтра получения списка офисов в функции ПолучитьСписокОфисов
//
// Примечание:
// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
// Описания полей в документации: [Список офисов](@api-docs.cdek.ru/36982648.html)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьОписаниеФильтраОфисов(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураФильтра = Новый Структура;
СтруктураФильтра.Вставить("postal_code" , "<Почтовый индекс города, для которого необходим список офисов>");
СтруктураФильтра.Вставить("city_code" , "<Код населенного пункта СДЭК>");
СтруктураФильтра.Вставить("type" , "<Тип офиса: PVZ, POSTAMAT, ALL>");
СтруктураФильтра.Вставить("country_code" , "<Код страны в формате ISO_3166-1_alpha-2>");
СтруктураФильтра.Вставить("region_code" , "<Код региона по базе СДЭК>");
СтруктураФильтра.Вставить("have_cashless" , "<Наличие терминала оплаты>");
СтруктураФильтра.Вставить("have_cash" , "<Есть прием наличных>");
СтруктураФильтра.Вставить("allowed_cod" , "<Разрешен наложенный платеж>");
СтруктураФильтра.Вставить("is_dressing_room", "<Наличие примерочной>");
СтруктураФильтра.Вставить("weight_max" , "<Максимальный вес в кг, который может принять офис>");
СтруктураФильтра.Вставить("weight_min" , "<Минимальный вес в кг, который принимает офис>");
СтруктураФильтра.Вставить("lang" , "<Локализация офиса>");
СтруктураФильтра.Вставить("take_only" , "<Является ли офис только пунктом выдачи>");
СтруктураФильтра.Вставить("is_handout" , "<Является пунктом выдачи>");
СтруктураФильтра.Вставить("is_reception" , "<Есть ли в офисе приём заказов>");
СтруктураФильтра.Вставить("fias_guid" , "<Код города ФИАС>");
СтруктураФильтра.Вставить("code" , "<Код ПВЗ>");
СтруктураФильтра.Вставить("is_ltl" , "<Работает ли офис с LTL>");
СтруктураФильтра.Вставить("fulfillment" , "<Работает ли офис с Фулфилмент.Приход>");
СтруктураФильтра.Вставить("size" , "<Ограничение выборки результата>");
СтруктураФильтра.Вставить("page" , "<Номер страницы выборки результата>");
Если Пустая Тогда
СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураФильтра;
КонецФункции
#КонецОбласти
#Область РаботаСЗаказми
@@ -1997,6 +1997,8 @@
CDEK_ПолучитьЧекиНаДату(ПараметрыТеста);
CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыТеста);
CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыТеста);
CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыТеста);
CDEK_ПолучитьСписокОфисов(ПараметрыТеста);
КонецПроцедуры
@@ -14260,6 +14262,39 @@
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыФункции)
Результат = OPI_CDEK.ПолучитьОписаниеФильтраОфисов();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеФильтраОфисов", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеФильтраОфисов(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеФильтраОфисов (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
КонецПроцедуры
Процедура CDEK_ПолучитьСписокОфисов(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
Фильтр = Новый Структура;
Фильтр.Вставить("weight_max" , 50);
Фильтр.Вставить("city_code" , 270);
Фильтр.Вставить("allowed_cod", Истина);
Результат = OPI_CDEK.ПолучитьСписокОфисов(Токен, Фильтр, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОфисов", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -1893,9 +1893,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции
@@ -154,6 +154,80 @@
КонецФункции
// Получить список офисов
// Получает список офисов с фильтром или без
//
// Примечание:
// Метод в документации API: [Список офисов](@api-docs.cdek.ru/36982648.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// Фильтр - Структура Из КлючИЗначение - Фильтр офисов. См. ПолучитьОписаниеФильтраОфисов - filter
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция ПолучитьСписокОфисов(Знач Токен, Знач Фильтр = "", Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтр);
URL = СформироватьURL("/deliverypoints", ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, Фильтр, Заголовки);
Возврат Ответ;
КонецФункции
// Получить описание фильтра офисов
// Получает пустой макет фильтра получения списка офисов в функции ПолучитьСписокОфисов
//
// Примечание:
// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
// Описания полей в документации: [Список офисов](@api-docs.cdek.ru/36982648.html)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей
Функция ПолучитьОписаниеФильтраОфисов(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураФильтра = Новый Структура;
СтруктураФильтра.Вставить("postal_code" , "<Почтовый индекс города, для которого необходим список офисов>");
СтруктураФильтра.Вставить("city_code" , "<Код населенного пункта СДЭК>");
СтруктураФильтра.Вставить("type" , "<Тип офиса: PVZ, POSTAMAT, ALL>");
СтруктураФильтра.Вставить("country_code" , "<Код страны в формате ISO_3166-1_alpha-2>");
СтруктураФильтра.Вставить("region_code" , "<Код региона по базе СДЭК>");
СтруктураФильтра.Вставить("have_cashless" , "<Наличие терминала оплаты>");
СтруктураФильтра.Вставить("have_cash" , "<Есть прием наличных>");
СтруктураФильтра.Вставить("allowed_cod" , "<Разрешен наложенный платеж>");
СтруктураФильтра.Вставить("is_dressing_room", "<Наличие примерочной>");
СтруктураФильтра.Вставить("weight_max" , "<Максимальный вес в кг, который может принять офис>");
СтруктураФильтра.Вставить("weight_min" , "<Минимальный вес в кг, который принимает офис>");
СтруктураФильтра.Вставить("lang" , "<Локализация офиса>");
СтруктураФильтра.Вставить("take_only" , "<Является ли офис только пунктом выдачи>");
СтруктураФильтра.Вставить("is_handout" , "<Является пунктом выдачи>");
СтруктураФильтра.Вставить("is_reception" , "<Есть ли в офисе приём заказов>");
СтруктураФильтра.Вставить("fias_guid" , "<Код города ФИАС>");
СтруктураФильтра.Вставить("code" , "<Код ПВЗ>");
СтруктураФильтра.Вставить("is_ltl" , "<Работает ли офис с LTL>");
СтруктураФильтра.Вставить("fulfillment" , "<Работает ли офис с Фулфилмент.Приход>");
СтруктураФильтра.Вставить("size" , "<Ограничение выборки результата>");
СтруктураФильтра.Вставить("page" , "<Номер страницы выборки результата>");
Если Пустая Тогда
СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураФильтра;
КонецФункции
#КонецОбласти
#Область РаботаСЗаказми
@@ -1997,6 +1997,8 @@
CDEK_ПолучитьЧекиНаДату(ПараметрыТеста);
CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыТеста);
CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыТеста);
CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыТеста);
CDEK_ПолучитьСписокОфисов(ПараметрыТеста);
КонецПроцедуры
@@ -14260,6 +14262,39 @@
КонецПроцедуры
Процедура CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыФункции)
Результат = OPI_CDEK.ПолучитьОписаниеФильтраОфисов();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеФильтраОфисов", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
Результат = OPI_CDEK.ПолучитьОписаниеФильтраОфисов(Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьОписаниеФильтраОфисов (Пустая)", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
КонецПроцедуры
Процедура CDEK_ПолучитьСписокОфисов(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
Фильтр = Новый Структура;
Фильтр.Вставить("weight_max" , 50);
Фильтр.Вставить("city_code" , 270);
Фильтр.Вставить("allowed_cod", Истина);
Результат = OPI_CDEK.ПолучитьСписокОфисов(Токен, Фильтр, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОфисов", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти