Перейти к содержимому
Local

AlexSt

Маглы
  • Публикации

    11
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О AlexSt

  • Звание
    Пролетал Мимо

Информация

  • Пол
    Мужчина
  1. AlexSt

    Credit и обсчет.

    Спасибо
  2. AlexSt

    Credit и обсчет.

    я имею ввиду то что я дал человеку кредит, но stargezer в будущем его не обсчитает? те, попользовался 5 дней и не оплатил? и причем тут трактористы? Вопрос вполне конкретный.
  3. AlexSt

    Credit и обсчет.

    Уважаемые товарищи администраторы, подскажите пожалуйста по stargazer . Вопрос. У пользователя отрицательный баланс -290 например. АП по тарифу 300 руб. добавляю ему кредит на Credit на 300 на 5 дней. По истечении срока кредита, эта сумма добавится в Cash ? те будет -590. или же останется прежней?
  4. AlexSt

    Не работает переназначение скорости

    Разобрался сам Решение when (`radius_attributes`.`Value` like '%{speed[up]}%') then replace(`radius_attributes`.`Value`,'{speed[up]}',(case when (`userspeeds`.`speed` <> '0') then `userspeeds`.`speed` else `speeds`.`speeddown` end)) when (`radius_attributes`.`Value` like '%{speed[down]}%') then replace(`radius_attributes`.`Value`,'{speed[down]}',(case when (`userspeeds`.`speed` <> '0') then `userspeeds`.`speed` else `speeds`.`speeddown` end)) join `userspeeds` on((convert(`users`.`login` using utf8) = `userspeeds`.`login`)))
  5. CREATE OR REPLACE VIEW `radius_reply` (`UserName`, `Attribute`, `op`, `Value`) AS SELECT CASE `radius_reassigns`.`value` WHEN 'ip' THEN `nethosts`.`ip` WHEN 'mac' THEN `nethosts`.`mac` ELSE `users`.`login` END AS `UserName`, `radius_attributes`.`Attribute`, `radius_attributes`.`op`, -- Обработка макросов значений CASE -- Общая информация о пользователе WHEN `radius_attributes`.`Value` LIKE '%{user[login]}%' THEN REPLACE(`radius_attributes`.`Value`, '{user[login]}', `users`.`login`) WHEN `radius_attributes`.`Value` LIKE '%{user[Password]}%' THEN REPLACE(`radius_attributes`.`Value`, '{user[Password]}', `users`.`Password`) WHEN `radius_attributes`.`Value` LIKE '%{user[Tariff]}%' THEN REPLACE(`radius_attributes`.`Value`, '{user[Tariff]}', `users`.`Tariff`) -- Информация IP/MAC WHEN `radius_attributes`.`Value` LIKE '%{nethost[ip]}%' THEN REPLACE(`radius_attributes`.`Value`, '{nethost[ip]}', `nethosts`.`ip`) WHEN `radius_attributes`.`Value` LIKE '%{nethost[mac]}%' THEN REPLACE(`radius_attributes`.`Value`, '{nethost[mac]}', `nethosts`.`mac`) -- Информация о сети пользователя WHEN `radius_attributes`.`Value` LIKE '%{network[id]}%' THEN REPLACE(`radius_attributes`.`Value`, '{network[id]}', `networks`.`id`) WHEN `radius_attributes`.`Value` LIKE '%{network[ip]}%' THEN REPLACE(`radius_attributes`.`Value`, '{network[ip]}', SUBSTRING_INDEX(`networks`.`desc`, '/', 1)) WHEN `radius_attributes`.`Value` LIKE '%{network[start]}%' THEN REPLACE(`radius_attributes`.`Value`, '{network[start]}', `networks`.`startip`) WHEN `radius_attributes`.`Value` LIKE '%{network[end]}%' THEN REPLACE(`radius_attributes`.`Value`, '{network[end]}', `networks`.`endip`) WHEN `radius_attributes`.`Value` LIKE '%{network[desc]}%' THEN REPLACE(`radius_attributes`.`Value`, '{network[desc]}', `networks`.`desc`) WHEN `radius_attributes`.`Value` LIKE '%{network[cidr]}%' THEN REPLACE(`radius_attributes`.`Value`, '{network[cidr]}', SUBSTRING_INDEX(`networks`.`desc`, '/', -1)) -- Информации о принадлежности к коммутатору WHEN `radius_attributes`.`Value` LIKE '%{switch[ip]}%' THEN REPLACE(`radius_attributes`.`Value`, '{switch[ip]}', `switches`.`ip`) WHEN `radius_attributes`.`Value` LIKE '%{switch[port]}%' THEN REPLACE(`radius_attributes`.`Value`, '{switch[port]}', `switchportassign`.`port`) -- Информация о скорости пользователя WHEN `radius_attributes`.`Value` LIKE '%{speed[up]}%' THEN REPLACE(`radius_attributes`.`Value`, '{speed[up]}', `speeds`.`speedup`) WHEN `radius_attributes`.`Value` LIKE '%{speed[down]}%' THEN REPLACE(`radius_attributes`.`Value`, '{speed[down]}', `speeds`.`speeddown`) -- Состояние пользователя ( OFF-LINE, ON-LINE, PASSIVE или DOWN ) WHEN `radius_attributes`.`Value` LIKE '%{user[state]}%' THEN REPLACE(`radius_attributes`.`Value`, '{user[state]}', ( CASE WHEN `users`.`Down` THEN 'DOWN' WHEN `users`.`Passive` THEN 'PASSIVE' WHEN `users`.`Cash` < -`users`.`Credit` THEN 'OFF-LINE' ELSE 'ON-LINE' END )) -- Или возвращаем значание ELSE `radius_attributes`.`Value` END AS `Value` -- Конец обработки макросов FROM `users` -- ...для получения IP/MAC JOIN `nethosts` ON `nethosts`.`ip` = `users`.`IP` -- ...для получения информации о сети JOIN `networks` ON `networks`.`id` = `nethosts`.`netid` JOIN `nas` ON `nas`.`netid` = `nethosts`.`netid` -- ...для сбора всех атрибутов пользователя, сети, сервера доступа, группы JOIN `radius_attributes` ON `radius_attributes`.`login` = `users`.`login` OR (`radius_attributes`.`login` = '*' AND `radius_attributes`.`netid` = `networks`.`id` ) OR (`radius_attributes`.`login` = '*' AND `radius_attributes`.`nasip` = INET_ATON(`nas`.`nasip`)) -- ...для переназначения User-Name на IP или MAC LEFT JOIN `radius_reassigns` ON `radius_reassigns`.`netid` = `nethosts`.`netid` -- ...для получения информации о коммутаторе, к которому подключен пользователь LEFT JOIN `switchportassign` ON `switchportassign`.`login` = `users`.`login` LEFT JOIN `switches` ON `switches`.`id` = `switchportassign`.`switchid` -- ...для получения информации о скорости по тарифному плану LEFT JOIN `speeds` ON `speeds`.`tariff` = `users`.`Tariff` WHERE `radius_attributes`.`scenario` = 'reply' AND `networks`.`use_radius` = TRUE ORDER BY `users`.`login`; Помогите разобраться с sql алгоритмом , вообщем радиус не учитывает табличку userspeeds , вообщем нужно сделать нечто, если в табличке userspeeds speed = 0 то брать из тарифоф
  6. AlexSt

    Заморозка пользователя по указанному числу

    Посмотрел по коду - вполне себе вменяемо. С API Astral даже разобрались Несколько нюансов: $tablecells=wf_TableCell(__('Логин')); $tablecells.=wf_TableCell(__('Дата постановки задачи')); $tablecells.=wf_TableCell(__('Дата включения замарозки')); $tablecells.=wf_TableCell(__('Статус задачи')); $tablecells.=wf_TableCell(__('Грохнуть задачу')); Это функции gettext-образной локализации, ожидающие соответствующей локали в /languages/. Собсно __('Login') и другие должны таки быть изначально в en и транслироваться на ходу функцией __(). $active="<font color='red'>Активная задача</font>"; В таких ситуациях лучше использовать что-то типа wf_tag('font',false,'','color="#FF0000"') И да, начиная с 0.7.3 как-то так буду иметь ввиду за обнову спасибо
  7. AlexSt

    Заморозка пользователя по указанному числу

    Написал модуль по быстрому для заморозки, кому нужно посмотрите. строго не судите. https://yadi.sk/d/o9TjdzkJkEkvf может кто напишет лучше , для установки создать таблицу CREATE TABLE `usersfreeze` ( `id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(255) NOT NULL, `date` int(11) NOT NULL, `datefreez` int(11) NOT NULL, `active` tinyint(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; в alter.ini TIMEFREEZE_ENABLED=1 в globalmenu.ini [timefreez] NAME="Заказ заморозки" URL="?module=timefreez" ICON="" CATEGORY=2 NEED_RIGHT=TIMEFREEZ NEED_OPTION= добавить в крон скрипт в архиве на выполнение ежесуточно. думаю разберетесь
  8. AlexSt

    Заморозка пользователя по указанному числу

    Да тут ещё фишка, у клиента проплачено на 6 месяцев вперед, врятли тут поможет кредит
  9. AlexSt

    Заморозка пользователя по указанному числу

    Не совсем вы меня поняли, допуситим клиент звонит, и говорит, Уезжаю в отпуск замарозте меня с 8 числа следующего месяца, хотя на данный момент допустим 26 текущего, диспетчер хоп и не парится, автозамарозку включила и все, ну я посмотрю всетаки апи, может свое допишу чего. спасибо все равно
  10. Здравствуйте , существует ли возможность заморозки пользователей по дате в UBILLING. Возможно догадываюсь что это может собака наблюдака? подскажите если реализация?
  11. AlexSt

    Релизы Ubilling 2015

    Стабильный релиз Ubilling 0.7.1 rev 4768 Обнаружена очепятка в модуле кредитования личный кабинет: строка if (isset($us_configp['SC_VSCREDIT'])) , должно быть if (isset($us_config['SC_VSCREDIT'])) function zbs_VServicesGetPrice($login) { $us_config = zbs_LoadConfig(); $price = 0; if (isset($us_configp['SC_VSCREDIT'])) { if ($us_config['SC_VSCREDIT']) { $tag_query = "SELECT * FROM `tags` WHERE `login` = '" . $login . "' "; $alltags = simple_queryall($tag_query); $VS_query = "SELECT * FROM `vservices`"; $allVS = simple_queryall($VS_query); if (!empty($alltags)) { foreach ($alltags as $io => $eachtag) { foreach ($allVS as $each => $ia) { if ($eachtag['tagid'] == $ia['tagid']) { $price += $ia['price']; } } } } } } return($price); }
×