ant0xa 4 Posted 2020-08-20 13:15:26 Share Posted 2020-08-20 13:15:26 помогите, пожалуйста, не могу найти : видел скрипт, снимающий абонентскую плату со всех. очень надо, сервер в дауне простоял в полночь, надо снять деньги теперь массово. Link to post Share on other sites
Keen 10 Posted 2020-08-20 13:19:31 Share Posted 2020-08-20 13:19:31 время на сервере перевидите назад, потом обратно. Link to post Share on other sites
nightfly 1,247 Posted 2020-08-20 14:33:56 Share Posted 2020-08-20 14:33:56 (edited) 1 час назад, ant0xa сказав: помогите, пожалуйста, не могу найти : видел скрипт, снимающий абонентскую плату со всех. очень надо, сервер в дауне простоял в полночь, надо снять деньги теперь массово. Думаю это должно быть что-то типа такого. Не тестил, накидал от фонаря. set_time_limit(0); $tariffPrices = zb_TariffGetPricesAll(); $users = new nya_users(); $users->where('Passive', '=', 0); $all = $users->getAll(); $i = 0; if (!empty($all)) { foreach ($all as $io => $each) { $userTariff = $each['Tariff']; if (isset($tariffPrices[$userTariff])) { $userFee = $tariffPrices[$userTariff]; if ($userFee > 0) { $feeCharge = '-' . $userFee; $billing->addcash($each['login'], $feeCharge); log_register('CHANGE FixStargazerFee (' . $each['login'] . ') ON ' . $feeCharge); } } else { show_warning(__('Skipping') . ' ' . $each['login']); } $i++; } show_info(__('users processed') . ': ' . $i); } else { show_error(__('No') . ' ' . __('Users')); } Это естественно для помесячной и посуточной. Для размазанной - естественно нужно сделать что-то типа $userFee=($tariffPrices[$userTariff]/31); Edited 2020-08-20 14:46:18 by nightfly Link to post Share on other sites
ant0xa 4 Posted 2020-08-21 03:02:40 Author Share Posted 2020-08-21 03:02:40 спасибо, это работает Link to post Share on other sites
ant0xa 4 Posted 2020-10-20 08:43:55 Author Share Posted 2020-10-20 08:43:55 Цитата $billing->addcash($each['login'], $feeCharge); log_register('CHANGE FixStargazerFee (' . $each['login'] . ') ON ' . $feeCharge); Есть ли процедура записи в лог движения денег а не вот эта вот? op_TransactionAdd не хотелось бы дёргать, ибо она изменит LastCashAddTime скорее всего. А мне хотелось бы, чтобы снятие денег выглядело как простое снятие абонентки старгейзером. Видимо, для этого надо прикинуться старгейзером и напрямую срать в stargazer.log чего, опять же, не хочется. Link to post Share on other sites
nightfly 1,247 Posted 2020-10-20 10:38:45 Share Posted 2020-10-20 10:38:45 1 час назад, ant0xa сказав: op_TransactionAdd не хотелось бы дёргать он тут вообще каким боком? 1 час назад, ant0xa сказав: ибо она изменит LastCashAddTime скорее всего Это поле вас вообще еб...ть не должно. 1 час назад, ant0xa сказав: А мне хотелось бы, чтобы снятие денег выглядело как простое снятие абонентки старгейзером. Видимо, для этого надо прикинуться старгейзером и напрямую срать в stargazer.log 1. можно. 2. не объязательно Возможно вам стоит задуматься над тем, чем между собой отличаются концепции "представляет из себя на самом деле" и "выглядит как". Link to post Share on other sites
ant0xa 4 Posted 2020-10-20 12:12:50 Author Share Posted 2020-10-20 12:12:50 1 час назад, nightfly сказал: op_TransactionAdd не хотелось бы дёргать он тут вообще каким боком? Он тоже кладёт деньги, и эту проводку видно во всех местах, где её должно быть видно. Положить минус 20 с $paysys="OP:CORERECTOR" и пусть абонент видит, что деньги не просто утекли со счёта. Цитата Это поле вас вообще еб...ть не должно. Я его использую в своих целях, мне вот надо знать в своих скриптах, что юзер давно бабки не платил. Стимулировать как-то юзеров. СМСочки слать и всякие такие дела. Цитата 1. можно. 2. не объязательно Возможно вам стоит задуматься над тем, чем между собой отличаются концепции "представляет из себя на самом деле" и "выглядит как". Когда я в модуле "деньги" вручную корректирую баланс, запись об этом попадает в лог. Хочется этого же самого, но в скрипте. zb_CashAdd($login, $cash, $operation, $cashtype, $note); я так думаю, надо эту функцию использовать, я угадал? Link to post Share on other sites
nightfly 1,247 Posted 2020-10-20 12:56:57 Share Posted 2020-10-20 12:56:57 16 минут назад, ant0xa сказав: Он тоже кладёт деньги, и эту проводку видно во всех местах, где её должно быть видно Ну вообще и с табуреткой поeбаться можно, не отрицаю. 16 минут назад, ant0xa сказав: Я его использую в своих целях, мне вот надо знать в своих скриптах, что юзер давно бабки не платил. Стимулировать как-то юзеров. СМСочки слать и всякие такие дела. Настолько xyевое решение, насколько это возможно. Для этого придумать можно что угодно, начиная от SELECT `login`,`date` from `payments` group by `login` order by `date` DESC и заканчивая вообще чем угодно типа WHERE `date` < DATE_SUB(NOW(), INTERVAL 3 MONTH); Почему, спонтанные изменения LastCashAddTime имеют мало общего с "юзер бабки давно не платил" - это уже вам повод подумать на досуге. 41 минуту назад, ant0xa сказав: zb_CashAdd($login, $cash, $operation, $cashtype, $note); я так думаю, надо эту функцию использовать, я угадал? Угадали. Это уже ближе к денежным операциям как таковым. http://ubilling.net.ua/api_doc/namespaces/default.html#method_zb_CashAdd Link to post Share on other sites
ant0xa 4 Posted 2020-10-20 14:17:44 Author Share Posted 2020-10-20 14:17:44 (edited) супер. Исправил скрипт на использование таблички пэйментс. Спасибо за подсказки, сейчас всё работает так, как я хотел Edited 2020-10-20 14:21:04 by ant0xa Link to post Share on other sites
camchatix 0 Posted 2021-10-18 07:46:20 Share Posted 2021-10-18 07:46:20 Подскажите пожалуйста.. Хочу вручную снять АП всем абонам Пробую использовать Ваш скрипт Fatal error: Uncaught Error: Call to undefined function zb_TariffGetPricesAll() Link to post Share on other sites
nightfly 1,247 Posted 2021-10-18 08:25:56 Share Posted 2021-10-18 08:25:56 39 минут назад, camchatix сказав: Подскажите пожалуйста.. Хочу вручную снять АП всем абонам Пробую использовать Ваш скрипт Fatal error: Uncaught Error: Call to undefined function zb_TariffGetPricesAll() Пытайтесь лучше. Все работает, что не сложно проверить на демке. Link to post Share on other sites
camchatix 0 Posted 2021-10-18 12:38:30 Share Posted 2021-10-18 12:38:30 включил извилину - запустил Ваш код в консоли разработчика Все работает - Спасибо! Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now