27 подписчиков
4️⃣ Счетчик записей по фильтру на дату в боте Leadtex
🍡Часто заказчики просят вывести количество записей в том или ином списке в сообщение или в кнопку меню, например для встроенного бота перед выводом списка записей.
Одним из сложных было сделать счетчик по двум полям, одно из которых с типом ДАТА.
🥑 В данном примере идет счет записей по определенному полю после чего эти записи фильтруются по полю дата с условием, что в данном поле значение позднее сегодняшнего дня.
Для этого строим запрос на получение записей в списке, можно использовать фильтры:
Как сделать👇
Пример:
&schema_id={{schema_zamena}}
&filters[status]=Новая
&filters[telega]=<>,{{telegram_id}}
💻 Включаем обработать ответ с помощью JS и прописываем код
var obj = response.data.data;
var currentDate = new Date(); // Получаем текущую дату
var count = 0; // Назначаем начальное значение счетчика
for (var i = 0; i < obj.length; i++) {
var dateValue = new Date(parseInt(obj[i].date.$date.$numberLong)); //Преобразуем значение даты в объект Date
if (obj[i].ofis === "Текст фильтра" && dateValue >= currentDate) { // Проверяем значение поля ofis и дату
count++; // Увеличиваем счетчик, если условие выполняется
}
}
setContactVariable("countItem", count);
ofis - поле списка с типом "Текст", по которому фильтруем;
date - поле списка с типом "Дата", по которому проверяем актуальность даты;
countItem - переменная, в которую записываем полученное значение.
Таким образом блок http выдаст ответ со списком найденных записей, js обработает ответ, найдя все записи, у которых поле ofis = установленному тексту, и после проверит и посчитает все отфильтрованные значения, у которых дата в поле date >= СЕГОДНЯ
После получение переменной можно вывести ее в сообщение или в кнопку в формате {{$countItem}}
1 минута
15 января 2025