Перейти до

ванпанч скрипт снятие аб платы


Рекомендованные сообщения

помогите, пожалуйста, не могу найти :

видел скрипт, снимающий абонентскую плату со всех. очень надо, сервер в дауне простоял в полночь, надо снять деньги теперь массово.

Ссылка на сообщение
Поделиться на других сайтах
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);

 

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...
Цитата

 

$billing->addcash($each['login'], $feeCharge);

log_register('CHANGE FixStargazerFee (' . $each['login'] . ') ON ' . $feeCharge);

 

Есть ли процедура записи в лог движения денег а не вот эта вот?

 

op_TransactionAdd не хотелось бы дёргать, ибо она изменит LastCashAddTime скорее всего. А мне хотелось бы, чтобы снятие денег выглядело как простое снятие абонентки старгейзером. Видимо, для этого надо прикинуться старгейзером и напрямую срать в  stargazer.log

чего, опять же, не хочется. 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, ant0xa сказав:

op_TransactionAdd не хотелось бы дёргать

он тут вообще каким боком?

 

1 час назад, ant0xa сказав:

ибо она изменит LastCashAddTime скорее всего

Это поле вас вообще еб...ть не должно.

 

1 час назад, ant0xa сказав:

А мне хотелось бы, чтобы снятие денег выглядело как простое снятие абонентки старгейзером. Видимо, для этого надо прикинуться старгейзером и напрямую срать в  stargazer.log

1. можно.

2. не объязательно

 

Возможно вам стоит задуматься над тем, чем между собой отличаются концепции "представляет из себя на самом деле" и "выглядит как".

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, nightfly сказал:

op_TransactionAdd не хотелось бы дёргать

он тут вообще каким боком?

Он тоже кладёт деньги, и эту проводку видно во всех местах, где её должно быть видно. Положить минус 20  с $paysys="OP:CORERECTOR" и пусть абонент видит, что деньги не просто утекли со счёта.

 

Цитата

Это поле вас вообще еб...ть не должно.

Я его использую в своих целях, мне вот надо знать в своих скриптах, что юзер давно бабки не платил. Стимулировать как-то юзеров. СМСочки слать и всякие такие дела.

 

Цитата

1. можно.

2. не объязательно

 

Возможно вам стоит задуматься над тем, чем между собой отличаются концепции "представляет из себя на самом деле" и "выглядит как".

 

Когда я в модуле "деньги" вручную корректирую баланс, запись об этом попадает в лог. Хочется этого же самого, но в скрипте. 

zb_CashAdd($login, $cash, $operation, $cashtype, $note);

я так думаю, надо эту функцию использовать, я угадал?

Ссылка на сообщение
Поделиться на других сайтах
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

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

супер. Исправил скрипт на использование таблички пэйментс. Спасибо за подсказки, сейчас всё работает так, как я хотел

Відредаговано ant0xa
Ссылка на сообщение
Поделиться на других сайтах
  • 11 months later...

Подскажите пожалуйста.. Хочу вручную снять АП всем абонам

Пробую использовать Ваш скрипт

 

Fatal error: Uncaught Error: Call to undefined function zb_TariffGetPricesAll()

 

 

Ссылка на сообщение
Поделиться на других сайтах
39 минут назад, camchatix сказав:

Подскажите пожалуйста.. Хочу вручную снять АП всем абонам

Пробую использовать Ваш скрипт

 

Fatal error: Uncaught Error: Call to undefined function zb_TariffGetPricesAll()

 

 

Пытайтесь лучше. Все работает, что не сложно проверить на демке.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...