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

Групповой пересчет абонплаты

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

как сделать групповой пересчет абонплаты ?
к примеру,случилась глобальная авария, сутки не было услуги, надо вернуть деньги
абонплата размазаная

Поделиться сообщением


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

Что-то типа такого:

set_time_limit (0);
//За сколько дней накинуть АП
$repairdays=2;

$monthdays=date("t");
$tariffPrices=  zb_TariffGetPricesAll();
$login_q="SELECT * from `users` WHERE `passive`='0'";
$all=simple_queryall($login_q);
$i=0;
$total=0;
if (!empty($all)) {
foreach($all as $io=>$each) {

 $userTariff=$each['Tariff'];
 if (isset($tariffPrices[$userTariff])) {
     $userFee=$tariffPrices[$userTariff];
     if ($userFee>0) {
     	$dayFee=($userFee/$monthdays)*$repairdays;
     	$dayFee=round($dayFee,3);
        deb($each['login'].' -> '.$dayFee);
       	$total=$total+$dayFee;
     	$billing->addcash($each['login'],$dayFee);
     	log_register('RUN REPAIRFEE ('.$each['login'].') ON '.$dayFee);
     }
 } else {
 	show_warning('skipping '.$each['login']);
 }
 
 
$i++;
}
show_info('users processed: '.$i);
show_info('total repaired: '.$total);
} else {
show_error('nousers');
}

Накидал на скорую руку, не тестил. Перед первым запуском - закоментите реальное внесение бабок и логирование. Играйтесь короч.

Изменено пользователем nightfly

Поделиться сообщением


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

снятие абонплаты хранится в таблице юзерс ?
нет ли возможности слепить так, типа update таблица set abonplata=0 where date>дата and data<=дата and abonplata>0 ?

Поделиться сообщением


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

Вам дали готовое решение, зачем вам чего-то еще изобретать и придумывать что-то маразматичное, если вы даже приблизительно не понимаете, как оно все устроено и работает?

Поделиться сообщением


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

deb($each['login'].' -> '.$dayFee);

реальное внесение бабок - это оно ?
 

Поделиться сообщением


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

реальное внесение бабок - это оно ?
 

deb == debug

5 часов назад, nightfly сказал:

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

вот внесение же ну

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 hours ago, DAnEq said:

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

 

У меня тоже были таке клиенты, котрые платили ежедневно.

 

Просите авторов биллингов добавлять монитринг работы клиентов, и в зависимости от этого считать начисления.

Изменено пользователем vop

Поделиться сообщением


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

 

У меня тоже были таке клиенты, котрые платили ежедневно.

 

Просите авторов биллингов добавлять монитринг работы клиентов, и в зависимости от этого считать начисления.

Цитата

Q: Абонент «не пользуется» интернетом, можно чтобы ему не начислялась АП?
A: Вы это серьезно? И что вы понимаете под «не пользуется»? Абонент умер? А как об этом должен узнать биллинг? У абонента умерла кошка? Чур мы ни причем. У абонента не было трафика? А широковещательный? А ваши же пинги к нему? А попытки банально получать по DHCP адреса от сервера? А синхронизация времени ОС, роутера, и еще черт знает чего по NTP? А если у абонента обновилась ОС либо скажем антивирус - это он тоже «не пользовался»? У него было «мало» трафика? А мало это сколько? Одна киношка? Две? А она обязательно должна быть интересной? А разрешение киношки играет роль? Будем считать, что интернетом «не пользовались» если смотрели камрипы?

Сразу видно человека умеющего в бизнес процессы

  • Like 1

Поделиться сообщением


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

Обсуждался вопрос не "абонент не пользуется", а "абоненту не предоставляется интернет". А уж если провайдер не знает, что он не предоставлет абоненту интернет, то тут авторы биллиногов никак не помогут. :)

Изменено пользователем vop

Поделиться сообщением


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

Обсуждался вопрос не "абонент не пользуется", а "абоненту не предоставляется интернет". А уж если провайдер не знает, что он не предоставлет абоненту интернет, то тут авторы биллиногов никак не помогут. :)

Пардон, не так понял.

 

Такие штуки обычно вообще плохо связываются с биллингами.

Как раз одна из причин

2 часа назад, vop сказал:

А уж если провайдер не знает, что он не предоставлет абоненту интернет

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 23.03.2018 в 16:17, nightfly сказал:

Вам дали готовое решение, зачем вам чего-то еще изобретать и придумывать что-то маразматичное, если вы даже приблизительно не понимаете, как оно все устроено и работает?

вот в том то все и дело.
рассматриваю убиллинг+старгейзер как замену своему биллингу, потому что это живой проэкт, а наш биллинг - мертвый, поэтому, "хочу все знать" :-)

абонент не пользуется - я не о том. в этом случае пересчета не будет
хотя, технически не плохо было бы иметь такую возможность, но с учетом того что у половины стоят роутеры, даже будучи реализованной такая возможность не была бы востребованой. уже представляю себе звонки в техподдержку - А - я не пользовался инетом а с меня снялась ап. О - вы может и не пользовались, но ваш роутер был включен в розетку :-)

и по сути первоначального вопроса - списания хранятся в каких то таблицах ?
я видел там таблицу с итоговым балансом на каждого абонента на каждый день. эти значения могут расчитываться так, сальдо=сумма авансов-сумма списаний
а может быть как то по другому, тогда понятно, почему nightfly сказал коррекцию делать начислением

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 hours ago, DAnEq said:

абонент не пользуется - я не о том. в этом случае пересчета не будет
хотя, технически не плохо было бы иметь такую возможность, но с учетом того что у половины стоят роутеры, даже будучи реализованной такая возможность не была бы востребованой. уже представляю себе звонки в техподдержку - А - я не пользовался инетом а с меня снялась ап. О - вы может и не пользовались, но ваш роутер был включен в розетку :-)

 

Такая функция реализуется достаточно легко. У меня это делается, как минимум, двумя механизмами. Но топик не про это.

Поделиться сообщением


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

и по сути первоначального вопроса - списания хранятся в каких то таблицах ?

история ручных пополнений, не важно плюс или минус, история оплат внешними системами - в таблицах

история начисления АП вообще просто текстовый лог, вроде в новых версиях унесли в БД

сам юзерский баланс и вообще табличка users курируется stargazer

уже кучу раз об этом на форуме говорилось, что в таблички которыми управляет stargazer руками ничего лучше не писать, особенно когда процес старгейзера запущен

Поделиться сообщением


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

история начисления АП вообще просто текстовый лог, вроде в новых версиях унесли в БД

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

Поделиться сообщением


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

текстовый. лог.

исходники читай.

Изменено пользователем l1ght
  • Like 1

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: Kolivan
      Всем здравия!
      Рассматриваю возможность перехода на ubilling, но интересует возможность реализовать несколько функций. Одну из них описываю ниже в ТЗ.
      Требуется возможность устанавливать дату списания абонплаты персонально для каждого абонента. У кого-то должна списываться 2, у кого-то 12 и т.д. Дата снятия абонплаты должна устанавливаться в карточке абонента.
      Абонплата должна списываться целиком за месяц вне зависимости от состояния счёта. При этом, если баланс < 0 доступ в Интернет должен быть ограничен либо по скорости, либо должен быть доступ только к сайтам, через которые абонент может пополнить лицевой счёт.
    • Автор: seversever404
      имеем проблему с платежами через OpenPayz выражается в следующем абоненту оплата начисляется и ровно столько же снимается.....выглядит так.....начислено 100 а до ентого було -101,95 .....хотя было на самом деле ток -1,95 ....и енто ток у тех кто имеет точку в логине....имели неосторожность название алиеса улицы дать такой формат   Telmana.per    ну типа сокращение ...и в итоге логин такойTelmana.per13aap0.. вот как то так.... 
      а теперь вопрос    почему так.....и как енто исправить......????
    • Автор: Qnet
      Добрый вечер!
      Прошу поделится опытом кто как снимает абонентскую плату. Больше всего интересно в частном секторе, так как себестоимость абонента и обслуживание в разы выше многоквартирного дома.
      Я вижу 2 варианта:
      Снятие платы независимо от того пользовался ли человек, но  дать возможность приостанавливать услугу не больше 3-х месяцев в году и при этом месяц не делить. Вариант такой себе, как по мне. Недовольных будет масса.  Включить в абонентскую плату условный гарантированный платеж, который он должен платить не зависимо от потребления. К примеру 30-40 грн. Это покроет хотя бы минимальные расходы+ будет мотивировать абонента все таки платить полную абонентскую плату и пользоваться услугой.   Буду очень благодарен за конструктивное обсуждение.
    • Автор: gold_555
      Добрый день! Параметры Stargazer следующие:
       
      DayFeeIsLastDay = yes
      DayFee = 1
      SpreadFee = no
      FeeChangeType = 2
      FullFee = no
       
      Система оплаты - авансовая. С абонентов подключившихся в 8 месяце абонплата списалась верно, с учетом перерасчета, за n дней с момента подключения. А вот с абонентов подключившихся ранее (7, 6 и т.д), вместо списания полной суммы абонплаты за меяц (31 день), абонплата списалась только за два дня.
       
      Не подскажите где грабли? 
    • Автор: gold_555
      Добрый день! Подскажите возможно ли в Stargazer отключить автоматическое списание абонентской платы?
×