Freelance projects › Скрипт перемещения строк в Гугл Таблице. Отправка напоминаний в Телегу Скрипт перемещения строк в Гугл Таблице. Отправка напоминаний в Телегу
Уважаемые читатели этого ТЗ! Если вы после прочтения поймете, что его невозможно выполнить в принципе, дайте, пожалуйста, знать мне об этом, написав в личку. Спасибо!
Копия таблицы, в которую нужно будет установить скрипты (удалены все лишние данные).
https://docs.google.com/spreadsheets/d/18Zk8ylj9jEYRiFggxkauihKqXY7R6su0wK-PlaHueEU
Краткое ТЗ:
Нужно написать 2 скрипта.
Первый должен перемещать строки в различные области листа в зависимости от того, какое значение будет выбрано в колонке Р (выпадающий список).
Второй скрипт должен отсылать уведомление в Телеграм при наступлении времени, указанного в колонке Х.
Скрипты должны работать только во вкладке с определенным названием (и нужно, чтобы название этой вкладки в настройках скрипта можно было менять).
Скрипты нужно добавить к уже существующим. А они конфликтуют, если код младше ES5. В общем, нужен на ES5.
Подробное ТЗ:
Скрипт перемещения строк.
В колонке D есть надписи на желтом фоне, (они являются условными разделителями областей таблицы, куда скрипту следует перемещать строки). Есть следующие надписи:
- “Содержание заказа”
- “Не забрали. Позвонить”
- “Принятые заказы”
- “В работе”
- “Проблемные / Возвраты / Думают…”
- “Узнать наличие”
- “Новые заказы”
В колонке P размещен выпадающий список со значениями (обратите внимание, есть пробел перед цифрой и два пробела после):
- “ 0 - В работе”
- “ 1 - Принят“
- “ 2 - Отправлен“
- “ 3 - Отказался”
- “ 4 - Срочное решение”
- “ 5 - Проблемный”
- “ 6 - Узнать наличие”
Нужно, чтобы при выборе различных значений происходило перемещение строки в соответствующие области таблицы, а именно:
“ 0 - В работе” - перемещать на три строки выше строки “Проблемные / Возвраты / Думают…”
“ 1 - Принят“ - перемещать в область между “Принятые заказы” и “В работе”, упорядочивать по дате в колонке А, игнорируя время). Есть 2 подобласти в диапазоне между “Принятые заказы” и “В работе”:
- если колонка N содержит только цифры, упорядочивать по дате, указанной в колонке А (игнорируя время), в пределах диапазона строк с N, содержащей только цифры, в верхней части области между “Принятые заказы” и “В работе”.
- если колонка N пуста или содержит любые символы, кроме цифр, упорядочивать по дате в пределах диапазона строк с пустыми или содержащими любые кроме цифр символы N, в нижней части области между “Принятые заказы” и “В работе”. Это сложно описать, но на примере (см. таблицу) все понятно.
“ 2 - Отправлен“:
- если значение в колонке О является датой в формате dd.mm.yyyy и отстает от текущей даты на три дня или больше ИЛИ содержит “Переадр” ИЛИ содержит “Отказался” - перемещать строку в область между “Не забрали. Позвонить” и “Принятые заказы”, упорядочивать по дате в колонке А, игнорируя время.
- в иных случаях перемещать строку в область между “Содержание заказа” и “Не забрали. Позвонить”, упорядочивать по дате в колонке А, игнорируя время.
“ 3 - Отказался” - перемещать строку в область между “Содержание заказа” и “Не забрали. Позвонить”, упорядочивать по дате в колонке А, игнорируя время.
“ 4 - Срочное решение” - перемещать сразу под строку “Проблемные / Возвраты / Думают…”
“ 5 - Проблемный” - перемещать сразу над строкой ”Узнать наличие”
“ 6 - Узнать наличие” - перемещать в область между “Узнать наличие” и “Новые заказы”:
- если есть дата в колонке V (дата всегда находится в начале ячейки и имеет формат dd/mm), упорядочивать по этой дате среди заказов с датой в V;
- если даты в V нет, перемещать сразу над строкой “Новые заказы”
Крайне желательно, чтобы скрипт именно перетаскивал строку, а не создавал новую строку в нужной области, копировал в нее и удалял изначальную строку (ведь так теряется история ячеек, и не понятно, кому из менеджеров выписывать п***юлей за коряво оформленный заказ).
Также желательно, чтобы скорость перемещения строк была различной:
- “ 0 - В работе” и “ 1 - Принят“ - должны исполняться в течение 3 секунд.
- остальные - в течение 1 минуты.
Если настроить разную скорость для разных статусов нельзя, обновление должно происходить в течение 3 секунд для всех статусов.
Скрипт напоминания в Телегу.
В колонке Х могут стоять даты и время или просто дата без времени. Если наступает момент Х, прописанный в строке, в телеграм (нужно создать отдельный канал с названием “Ахтунг!”) должно приходить сообщение с фио клиента (ячейка G). Если в ячейке время не указано, уведомление должно приходить в 8:50 по Киеву.
П.С.: Плиз, дайте знать в личку, если считаете, что это анриал выполнить в принципе (чтоб я, если что, переделал задание). Спасибо!
-
Недавно написал скрипт (GAS), загрузили его клиенту, поставили триггер раз в 5 минут, через неделю заглянув в дашбоард обнаружилось:
"исчерпаны лимиты" 70% запусков.
Вот теперь нужно уточнить лимиты для бесплатного аккаунта
запуск раз в 5 мин
скрипт будет выполнятся более 60с, а чем больше строк тем дольше (ближе к 120с),
apps-script/guides/services/quotas
Triggers total runtime 90 min / day 12*24=288 минут
как известно уже есть скрипт - сколько он выполняется?
Google Workspace accounts - 6 hr / day
Вопрос: будет ли оплачиваемый аккаунт?
-
Алексей Горячев
— project author
UPD: акк платный (100Гб места за $2)
-
Алексей Горячев
— project author
и какой из тарифов нужен? За каждого пользователя нужно будет платить или только за 1 акк?
-
Обеспечить сортировку каждые 3 секунды довольно проблематично, более реально раз в 5 минут.
-
На мой взгляд, Вам нужно полностью пересматривать постановку задачи.
И лучше менять платформу - вместо Гугл таблиц сделать свой web портал.