Анатолий
Пользователь
Карма: 0
Offline
Сообщений: 9
|
|
« Ответ #765 : 20 Октября 2018, 16:39:05 » |
|
А есть возможность привязать автоактивацию услуги к определённой дате? Скажем, в день рождения абонента он получает поздравления и плюшки от провайдера (например, бесплатное увеличение скорости на сутки)? Также можно привязываться к полу (23 февраля и 8 марта), возрасту (1 сентября), даже имени (именины). Если нет, надо. Я б такой модуль купил.
В общем я такое сделал - это даже не модуль, а фича, поэтому в плане информативности немного страдает - не пишет абону что у него ДР и "поздравляем, вам добавили чуток скорости". Я воспользовался уже готовой фичей - скрипты в безлимитных тарифах. Это когда в специальном поле тарифа можно закодировать разную скорость в зависимости от условий. Вот я сделал такой скрипт: if( is_now(user_field('_birthday')) ) { set_speed(100000) } Который переводится примерно так: если текущий день равен дню, записанному в поле _birthday клиента - дать ему 100 мбит/сек. Здесь user_field('_birthday') - берет значение поля _birthday из данных абона. is_now сравнивает его с текущим днем. Кстати, в допданных абона уже давно есть тип поля "дата", так что можно смело создавать поле "день рождение" с типом "дата" и при вводе будет рядом календарик. Я пока не залил (user_field и user_field нет в текущей версии биллинга) - завтра на свежую голову все потестирую. Кстати, возможно, я нашел проблему, почему на новых фрях не работает noserver - тоже завтра потестирую. Если такой вариант вас устраивает - можете задонатить в личный кабинет небольшую сумму (я ее "погашу" в фонд разработки)- я тут ваще в запарке, решил вот ночью все таки оторваться и для вас кое что сделать Наконец купили/установили НД2+ и я добрался до скрипта. Возникла проблема: он работает только если ДР сегодня, например 20.10.2018. А вот если он 20.10.1972, то уже нет. К тому же, если год рождения абонента меньше 1970, то над полем выводится надпись "Неверно задано". Как побороть?
|
|
|
Записан
|
|
|
|
Warlock
NoDeny
Старожил
Карма: 8
Offline
Сообщений: 367
|
|
« Ответ #766 : 20 Октября 2018, 16:50:16 » |
|
Unix-время (англ. Unix time, также POSIX-время) — система описания моментов во времени, принятая в Unix и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года
До этой даты время уходит в минусовое значение
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #767 : 20 Октября 2018, 21:28:19 » |
|
Мое мнение таково что не стоит пользоваться типом поля "дата" для дней рождений т.к. это поле в базе пишется в формате юникстайм, а нужно использовать тип "строка" и парсить уже эту строку на предмет дня и месяца в этой дате, сравнивая с днем и месяцем в текущей дате. Как-то так. Как это возможно реализовать в скриптах не очень пока представляю, тут меня Стас наверное поправит.
|
|
|
Записан
|
|
|
|
Анатолий
Пользователь
Карма: 0
Offline
Сообщений: 9
|
|
« Ответ #768 : 22 Октября 2018, 12:23:17 » |
|
Мое мнение таково что не стоит пользоваться типом поля "дата" для дней рождений т.к. это поле в базе пишется в формате юникстайм, а нужно использовать тип "строка" и парсить уже эту строку на предмет дня и месяца в этой дате, сравнивая с днем и месяцем в текущей дате. Как-то так. Как это возможно реализовать в скриптах не очень пока представляю, тут меня Стас наверное поправит.
Согласен, осталось увидеть листинг скрипта. Жду с нетерпением.
|
|
|
Записан
|
|
|
|
Анатолий
Пользователь
Карма: 0
Offline
Сообщений: 9
|
|
« Ответ #769 : 09 Февраля 2019, 13:50:09 » |
|
А воз и ныне там.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #770 : 09 Февраля 2019, 18:55:38 » |
|
так я не понял в чем проблема. Если не ошибаюсь, то дата записывается как юникстайм отметка на число 00:00:00
если очень надо, могу сделать строкой, но зачем - пока не понимаю
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #771 : 10 Февраля 2019, 11:01:44 » |
|
так я не понял в чем проблема. Если не ошибаюсь, то дата записывается как юникстайм отметка на число 00:00:00
если очень надо, могу сделать строкой, но зачем - пока не понимаю
День рождения может быть и в 1930 году, когда юникса небыло никакого нафиг, понимаешь?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #772 : 11 Февраля 2019, 09:40:42 » |
|
Интересно, что unixtimestamp может быть отрицательным - проверил в perl и на 2й ссылке онлайн конвертации в гугле. Что об этом говорит стандарт не читал т.к. сделаю как вы хотите
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #773 : 12 Февраля 2019, 08:44:06 » |
|
так я не понял в чем проблема. Если не ошибаюсь, то дата записывается как юникстайм отметка на число 00:00:00
если очень надо, могу сделать строкой, но зачем - пока не понимаю
День рождения может быть и в 1930 году, когда юникса небыло никакого нафиг, понимаешь? в 557й ревизии сделал галку "хранить как строка". Думал будет просто, но в реальности ебался несколько часов - нужно чтоб при смене галки происходило конвертация из формата в иной, также пришлось переделать поиск чтоб воспринимал разные варианты хранения ну и тд по мелочам
|
|
|
Записан
|
|
|
|
Redmen
NoDeny
Ветеран
Карма: 62
Offline
Сообщений: 546
Подяку в КАРМУ
|
|
« Ответ #774 : 18 Февраля 2019, 12:30:46 » |
|
Неоднократно сталкиваюсь с проблемой отсутствия истории манипуляций админов с услугами. 1 админ отменил абону автопродление услуги, а второй потом не может узнать кто и зачем так сделал. либо изменил дату начала или конца, либо сумму, либо заказал смену услуги, а узнать кто и когда это сделал невозможно! Хотелось что бы велись записи о любых изменениях в услугах абонов.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #775 : 18 Февраля 2019, 20:23:05 » |
|
История ведется, но пока не вывел ее в админку. Поставил в график работ
|
|
|
Записан
|
|
|
|
fet4
|
|
« Ответ #776 : 25 Марта 2019, 14:35:34 » |
|
Помогите пожалуйста с кодом. В /usr/local/nodeny/web/start_user.pl есть участок кода if( $info->{cstate} == 1 && scalar @cfg::request_info_from_usr ) { debug("Запись в состоянии 'на подключении' - запросим контактные данные вне зависимости от команды"); unshift @cfg::Plugins, 'req_info'; $cmd = 'u_req_info'; } elsif( $cmd eq 'u_req_info' ) { $cmd = 'u_main'; }
где вызывается request_info.pl когда учетка в состоянии "на подключении". Хочу после или до сохранения данных, запросить выбрать услугу находясь в состоянии "на подключении". Услуги создал с условием cstate = 1, а вот как тут разрулить не пойму. Нужно для того что бы показывать разные акционные услуги при подключении.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #777 : 25 Марта 2019, 16:04:00 » |
|
это или править reg_info или вводить еще один промежуточный статус между "на подключении" и все "ок". В любом случае надо лезть в код
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #778 : 26 Марта 2019, 11:05:25 » |
|
|
|
|
Записан
|
|
|
|
Redmen
NoDeny
Ветеран
Карма: 62
Offline
Сообщений: 546
Подяку в КАРМУ
|
|
« Ответ #779 : 26 Марта 2019, 21:08:30 » |
|
где найти весь перечень иконок? или можно сделать выпадающий список из всех доступных!
|
|
« Последнее редактирование: 26 Марта 2019, 21:40:03 от Redmen »
|
Записан
|
|
|
|
|