Comments 7
а чего по средам, без этого колхоза никак? или память плохая
Это всё, конечно, интересно с точки зрения изучения возможностей сервисов. Но изобретение велосипеда - дело неблагодарное. Все то же самое я сделал в календаре телефона за пару кликов. И уведомление на смартфон приходит и письмо на почту на всякий случай...
Во первых спасибо за такой полезный скрипт, во вторых хочу попросить о помощи:
Я не программист просто интересна эта сфера, хотел адаптировать ваш скрип под рабочий процесс и есть необходимость реализовать функцию постоянного напоминания до момента оплаты (пока не поставят галочку в таблице) и что бы напоминания за неделю начинали приходить.
В paymentScheduler есть строка let daysLeft = payment.daysBeforePayment();
В переменной daysLeft будет кол-во дней, оставшихся до очередного платежа (строка, где не нажата галка с оплатой).
Далее идет проверка, есть ли под это кол-во дней подходящее сообщение в словаре
const PAYMENT_MESSAGES = {
0: "Напоминалка: сегодня тебе надо внести %amount₽ в копилку для челленджа",
1: "Напоминалка: завтра тебе надо внести %amount₽ в копилку для челленджа",
}
тут скрипт рассчитан, что мы точно знаем, за сколько дней и какое сообщение надо отправить. Для вашего кейса можно убрать эту логику с определением сообщения, и просто работать с кол-вом дней до платежа. Например
function paymentScheduler() {
let payment = getCurrentPayment();
let daysLeft = payment.daysBeforePayment();
// Если до платежа осталось 7 или менее дней
if (daysLeft <= 7) {
tgBot.sendMessage(`Необходимо внести ${payment.getAmount()}₽`);
}
}
Если день оплаты уже прошел, daysLeft примет отрицательное значение, уведомления продолжат поступать. Но тут уже предвижу проблему: если пропустить 2 и более платежа, сообщения будут поступать только с суммой первого пропущенного, боюсь тут без изменения логики не обойтись.
График платежей с напоминалкой в Telegram с помощью Google Sheets & JavaScript