forum.bitel.ru
http://forum.bitel.ru/

Абонентка "Пропорционально периоду"
http://forum.bitel.ru/viewtopic.php?f=16&t=1615
Страница 1 из 2

Автор:  snark [ 15 ноя 2008, 23:34 ]
Заголовок сообщения:  Абонентка "Пропорционально периоду"

Есть тарифный план:
- Абон. плата - 100 руб./мес
- В абон. плату включено 200 Мб. трафика, превышение - 1 руб./Мб
Захотелось сделать так, чтобы абонентка снималась:
а) пропорционально периоду
б) при первом подключении, для этого я решил использовать встроенную фичу - снятие абонентки в зависимости от наработки в модуле dialup, для чего нарисовал в конфиге модуля:
Код:
module.amount.1.title=Время соединения
# mid 1 - код модуля dialup
module.amount.1.mid=1
module.amount.1.class=bitel.billing.server.npay.bean.DialUpModuleAmount
# sid 1 - код услуги "Время"
module.amount.1.sids=1

и переделал ТП (см. аттач). В результате - абонентка всегда снимается за весь месяц! В подобном варианте было замечено, что на абонентку влияют 2 вещи:
- дата подключения договора - т.е. если закрыть договор, а потом его подключить любым, кроме 1-го (если 1-го - снимется за весь месяц), числом текущего месяца, то абонентка насчитается правильно, именно с того дня с которого договор подключен.
- дата подключения услуги абон. платы - т.е. если в договоре изменить дату подключения услуги на дату != моменту создания договора (абонентка есть в шаблоне на основе которого создается договор), а любым числом текщего месяца, кроме 1-го - абон. плата посчитается правильно.
Полагаю что на абонентку влияют еще учетные периоды, да и чтение форума об этом говорит, но у меня не используются.
Подскажите, где я ошибся? Что делать? Как использовать встроенный функционал модуля npay?

Вложения:
bgb_tarif.jpg
bgb_tarif.jpg [ 20.75 КБ | Просмотров: 16304 ]

Автор:  and [ 16 ноя 2008, 10:31 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

snark писал(а):
Есть тарифный план:
- Абон. плата - 100 руб./мес
- В абон. плату включено 200 Мб. трафика, превышение - 1 руб./Мб
Захотелось сделать так, чтобы абонентка снималась:
а) пропорционально периоду
б) при первом подключении, для этого я решил использовать встроенную фичу - снятие абонентки в зависимости от наработки в модуле dialup, для чего нарисовал в конфиге модуля:
Код:
module.amount.1.title=Время соединения
# mid 1 - код модуля dialup
module.amount.1.mid=1
module.amount.1.class=bitel.billing.server.npay.bean.DialUpModuleAmount
# sid 1 - код услуги "Время"
module.amount.1.sids=1

и переделал ТП (см. аттач). В результате - абонентка всегда снимается за весь месяц! В подобном варианте было замечено, что на абонентку влияют 2 вещи:
- дата подключения договора - т.е. если закрыть договор, а потом его подключить любым, кроме 1-го (если 1-го - снимется за весь месяц), числом текущего месяца, то абонентка насчитается правильно, именно с того дня с которого договор подключен.
- дата подключения услуги абон. платы - т.е. если в договоре изменить дату подключения услуги на дату != моменту создания договора (абонентка есть в шаблоне на основе которого создается договор), а любым числом текщего месяца, кроме 1-го - абон. плата посчитается правильно.
Полагаю что на абонентку влияют еще учетные периоды, да и чтение форума об этом говорит, но у меня не используются.
Подскажите, где я ошибся? Что делать? Как использовать встроенный функционал модуля npay?


Вы где то в описании проблемы ошиблись! У Вас обе вещи которые влияют на абонплату считают правильно и не видно в чём проблема! Учётные периоды не влияют на модуль АбонПлат вообще никак!!!

Автор:  snark [ 16 ноя 2008, 14:40 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

and писал(а):
Вы где то в описании проблемы ошиблись! У Вас обе вещи которые влияют на абонплату считают правильно и не видно в чём проблема!

Возможно я ошибся, попытаюсь еще раз описать сложившуюся ситуцию ...
Допустим, есть договор, который создан 01.10.08, деньги на счету есть, договор подключен датой создания, т.к. этот договор создан 01.10.08, то и все услуги в нем подключены той же датой. Этот договор первый раз подключается к инету 16.11.08 и по идее, после 1-й минуты проведенной им в инете (условие снятия - факт подключения, у меня это 1 минута, хотя, полагаю, с тем же успехом можно использовать 1 байт входящего трафика), во время запуска начисления абонплат, деньги у него должны сняться согласно формуле:
Код:
размер абонентски в руб. / кол-во дней в текущем месяце * (кол-во дней в текущем месяце - кол-во дней с начала текущего месяца)

т.е. для ноября это:
Код:
100 / 30 * (30 - 16) = 46,66666666667 руб.

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

Автор:  and [ 16 ноя 2008, 14:52 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

snark писал(а):
and писал(а):
Вы где то в описании проблемы ошиблись! У Вас обе вещи которые влияют на абонплату считают правильно и не видно в чём проблема!

Возможно я ошибся, попытаюсь еще раз описать сложившуюся ситуцию ...
Допустим, есть договор, который создан 01.10.08, деньги на счету есть, договор подключен датой создания, т.к. этот договор создан 01.10.08, то и все услуги в нем подключены той же датой. Этот договор первый раз подключается к инету 16.11.08 и по идее, после 1-й минуты проведенной им в инете (условие снятия - факт подключения, у меня это 1 минута, хотя, полагаю, с тем же успехом можно использовать 1 байт входящего трафика), во время запуска начисления абонплат, деньги у него должны сняться согласно формуле:
Код:
размер абонентски в руб. / кол-во дней в текущем месяце * (кол-во дней в текущем месяце - кол-во дней с начала текущего месяца)

т.е. для ноября это:
Код:
100 / 30 * (30 - 16) = 46,66666666667 руб.

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


В этом Ваша ошибка! ПРОПОРЦИОНАЛЬНО ДЕЙСТВУЮЩЕЙ УСЛУГЕ! У Вас услуга работает с 1 числа и значит деньги будут начисленны с 1 числа!

Автор:  snark [ 16 ноя 2008, 15:19 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

and писал(а):
В этом Ваша ошибка! ПРОПОРЦИОНАЛЬНО ДЕЙСТВУЮЩЕЙ УСЛУГЕ! У Вас услуга работает с 1 числа и значит деньги будут начисленны с 1 числа!

Ну дык я еще в 1-м сообщении написал что на абонентку влияет дата ее подключения, вот только теперь вопрос - что делать? :) Пока что мне видится только один вариант - при RADIUS авторизации дергать скрипт, который посмотрит были ли в данном месяце подключения и если небыло - установит всем услугам договора дату подключения услуги == дате подключения к инету, тогда и абонентка и торафик правильно насчитаются. Встроенными средствами никак?

and писал(а):
У Вас услуга работает с 1 числа и значит деньги будут начисленны с 1 числа!

Если Вас не затруднит - ткните меня, пожалуйста, носом в доку где это описано.

Автор:  and [ 17 ноя 2008, 10:19 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

snark писал(а):
and писал(а):
В этом Ваша ошибка! ПРОПОРЦИОНАЛЬНО ДЕЙСТВУЮЩЕЙ УСЛУГЕ! У Вас услуга работает с 1 числа и значит деньги будут начисленны с 1 числа!

Ну дык я еще в 1-м сообщении написал что на абонентку влияет дата ее подключения, вот только теперь вопрос - что делать? :) Пока что мне видится только один вариант - при RADIUS авторизации дергать скрипт, который посмотрит были ли в данном месяце подключения и если небыло - установит всем услугам договора дату подключения услуги == дате подключения к инету, тогда и абонентка и торафик правильно насчитаются. Встроенными средствами никак?


Посмотрите в эту сторону:
http://wiki.bgbilling.ru/index.php/%D0% ... 0%BD%D0%B0


Цитата:
and писал(а):
У Вас услуга работает с 1 числа и значит деньги будут начисленны с 1 числа!

Если Вас не затруднит - ткните меня, пожалуйста, носом в доку где это описано.


Вы правы! по документации к модулю абонплат, нет описания данной функции!

Автор:  snark [ 18 ноя 2008, 19:04 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

and писал(а):
Посмотрите в эту сторону

Я начал копать примерно в том же направлении и на коленке накидал вот такой скрипт для запроса учетного периода:
Код:
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
import java.util.*;

contractServiceManager = new ContractServiceManager(con);

cid       = event.getContractID();
date      = (Calendar)event.getRequestDate();
dateStart = (Calendar)date.clone();
dateEnd   = (Calendar)date.clone();

// дата окончания расчетного периода = последнее число текущего месяца, 23:59:0.0
dateEnd.set(Calendar.DAY_OF_MONTH, 1);
dateEnd.set(Calendar.DAY_OF_MONTH, dateEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
dateEnd.set(Calendar.HOUR_OF_DAY, 23);
dateEnd.set(Calendar.MINUTE, 59);
dateEnd.set(Calendar.SECOND, 0);
dateEnd.set(Calendar.MILLISECOND, 0);

event.setPeriodStart(dateStart);
event.setPeriodEnd(dateEnd);

print("RADIUS Period Request:");
print("Contract ID:  " + cid);
print("Period Start: " + TimeUtils.format(dateStart, "dd.MM.yyyy HH:mm:ss.SSS"));
print("Period End:   " + TimeUtils.format(dateEnd, "dd.MM.yyyy HH:mm:ss.SSS"));

serviceList = contractServiceManager.getContractServiceList(cid, date);
serviceDate = TimeUtils.convertCalendarToDate(dateStart);
for (ContractService service : serviceList) {
    // подключение услуг датой начала расчетного периода
    service.setDateFrom(serviceDate);
    contractServiceManager.updateContractService(service.getID().toString(), service);
    print("Service ID: " + service.getServiceID() + " start: " + TimeUtils.formatDate(dateStart));
}

event.setProcessed(true);

который позволяет прекрасно реализовать логику заложенную в ТП указанном выше.

and писал(а):
Вы правы! по документации к модулю абонплат, нет описания данной функции!

Дык вот жеж :( А я на мануале и основывался ...

P.S. Жаль что разработчики тут так и не отписались :( Если появятся - пусть хоть скажу, где в скрипте ошибка, что недоделано и можно ли это в вики кидать?

Автор:  Orlov [ 13 сен 2010, 10:55 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Добрый день.
Версия биллинга и установленные модули в прикрепленной картинке.
У меня есть безлимитные тарифы, к которым прикреплена абонентская плата.
Пример настройки тарифа тоже прикреплен к сообщению. Делал согласно мануала чтобы абонентская плата снималась подневно. Но что-то закрадываются смутные сомнения.
Все ли я правильно сделал?

Вложения:
1.jpg
1.jpg [ 115.2 КБ | Просмотров: 14952 ]
about.jpg
about.jpg [ 99 КБ | Просмотров: 14953 ]

Автор:  Phricker [ 13 сен 2010, 11:09 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Orlov писал(а):
Добрый день.
Версия биллинга и установленные модули в прикрепленной картинке.
У меня есть безлимитные тарифы, к которым прикреплена абонентская плата.
Пример настройки тарифа тоже прикреплен к сообщению. Делал согласно мануала чтобы абонентская плата снималась подневно. Но что-то закрадываются смутные сомнения.
Все ли я правильно сделал?

что то не вижу ограничений скорости привязанным к тарифам. как это у вас реализовано?

Автор:  Orlov [ 13 сен 2010, 11:42 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

вот тут

Вложения:
speed.jpg
speed.jpg [ 166.53 КБ | Просмотров: 14946 ]

Автор:  snark [ 13 сен 2010, 14:38 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

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

Автор:  Orlov [ 13 сен 2010, 15:48 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Мужики, давайте не будем все в кучу мешать. Атрибуты там и т.д. В данном контексте вопроса это не имеет значения. Скорость отстреливается радиусом при авторизации и нехай с ним.
Мне нужно проконсультироваться - будет ли в случае моих настроек тарифных планов сниматься абонентская плата пропорционально дням, а не разом за месяц. Говорю ж: сомнения у меня закрадываются.

Автор:  snark [ 13 сен 2010, 16:51 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Orlov писал(а):
будет ли в случае моих настроек тарифных планов сниматься абонентская плата пропорционально дням, а не разом за месяц


тыц!
мануал писал(а):
Пропорциональная абонплата 40 рублей за месяц.
При этом если человек подключён в середине месяца, то за первый месяц должно сняться только 20 рублей (половина). Название услуги - Абонплата.
Изображение

...

Начисление 1 го рубля за каждый день до текущей даты
Изображение


так что абонентка сниматься будет, но возможно не совсем так как Вы хотите ;) Вы бы расписали КАК ИМЕННО Вам надо снимать абонентку - от этого уже и плясали бы ...

Автор:  Orlov [ 14 сен 2010, 05:34 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Ну вот пример настройки моих абонплат в прикрепленной картинке.
Мне нужно: есть тариф с абонплатой 500 рублей в месяц, чтобы снималось каждый день по 500/30 рублей.
Т.е. положил человек 11 августа к примеру 500 рублей и сможет работать до 11 сентября.
По моим настройкам так получается? Как проверить?

Вложения:
1.jpg
1.jpg [ 115.2 КБ | Просмотров: 14925 ]

Автор:  snark [ 14 сен 2010, 15:35 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Orlov писал(а):
Мне нужно: есть тариф с абонплатой 500 рублей в месяц, чтобы снималось каждый день по 500/30 рублей.
...
По моим настройкам так получается?

да, с Вашими настройками именно так и будет работать

Orlov писал(а):
Т.е. положил человек 11 августа к примеру 500 рублей и сможет работать до 11 сентября.
...
Как проверить?

никак! npay оперирует только понятием месяц и именно за этот месяц он и будет считать деньги, т.е. если человек положил деньги 11 августа у него будут сниматься деньги за август, а в сентябре уже за сентябрь ...

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

Автор:  Orlov [ 15 сен 2010, 04:36 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Так, с этим разобрались. У меня остался последний вопрос.
К сообщению прикреплена картинка, на которой показано как снимались деньги с баланса у одного из абонентов.
Вопрос конкретно вот в чем: 11 августа 2010 клиент положил на счет 500 рублей. Почему тогда следующей строчкой показано, что биллинг снял с баланса полностью 500 рублей абонентской платы согласно тарифа. Если Вы говорите, что снимается по дням, то у него с 11 августа до 31 августа должно сняться = 500/31*(31-11) = 323 рубля. А куда тогда делся остаток? Почему на начало сентября у клиента входящий остаток - 0 рублей?
Вот этот момент поясните пожалуйста. А то я даже не то что клиентам, себе не могу объяснить в чем дело. А клиенты, сами понимаете, раз подождут, два подождут, потом уйдут к более разбирающимся. Заранее спасибо. Сижу прям перед манитором, жму F5, ожидаю ответа.

Вложения:
снятия денег.jpg
снятия денег.jpg [ 220.23 КБ | Просмотров: 14380 ]

Автор:  Orlov [ 15 сен 2010, 13:48 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Товарищи, если нужна еще какая-то информация, чтобы ответить на мой вопрос, то говорите. Горит, блин.

Автор:  Phricker [ 15 сен 2010, 14:05 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

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

Автор:  Orlov [ 15 сен 2010, 15:05 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

В настройках тарифа очень давно ничего не менялось.
Мужики подскажите хоть какой-то метод траблшутинга чтоль.

Автор:  snark [ 15 сен 2010, 18:55 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

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

Автор:  Phricker [ 15 сен 2010, 19:37 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Orlov писал(а):
В настройках тарифа очень давно ничего не менялось.
Мужики подскажите хоть какой-то метод траблшутинга чтоль.

тогда выложите плз историю изменения статусов договора.
и + к снарку. договора и услуги в NPAY чтобы можно было посмотреть на этом договоре

Автор:  Orlov [ 16 сен 2010, 04:06 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

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

Вложения:
модуля.jpg
модуля.jpg [ 131.96 КБ | Просмотров: 14360 ]
статусов.jpg
статусов.jpg [ 181.02 КБ | Просмотров: 14360 ]
в договоре.jpg
в договоре.jpg [ 179.48 КБ | Просмотров: 14360 ]

Автор:  Phricker [ 16 сен 2010, 10:45 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Orlov писал(а):
В прикрепленных файлах история договора, настройки абонплаты договора, настройки модуля абонплат.
Надеюсь на скорый ответ.

Почитайте про статусы
Как абонплата не будет начисляться за какой то период если для договора постоянно статус "Активен"?
Т.е. навожу конкретнее
Цитата:
Приостановлен — состояние договора с добровольно приостановленным обслуживанием. При этом блокируется доступ к блокируемым услугам (DialUP, VPN, VoiceIP, IPN), абонплата не снимается.

Сделайте какой нибудь период С - ПО в котором договор будет приостановлен. И увидите что за этот период абонплата не начисляется.

Так же я рекомендовал бы все таки поставить в единицу параметр recalculate.on.service.change. Конечно это личное дело каждого. Но я бы рекомендовал :)

Автор:  Orlov [ 16 сен 2010, 11:07 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

про статусы уже читал, почитал еще раз.
Может быть я где-то туплю, конечно, но вопрос-то у меня звучит вот как: почему клиент положив 11 августа деньги на баланс (в размере 500 рулей, т.е. абонплаты за месяц), к 3-ему сентября был в минусе?
Согласно подневному снятию денег с баланса, он должен был работать до 10 сентября как минимум. Не так ли?
Если не так, то объясните почему и как правильно понимать логику подобного поведения. Для разработчиков-то вроде не такой уж страшный вопрос: объяснить логику созданного разработчиком же функционала.

Автор:  Phricker [ 16 сен 2010, 11:42 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

Потому что согласно биллингу, на этом абоненте не было периодов приостановки услуг. Следовательно он начислял абонплату каждый день (каждый день пока активен).
НЕ подневное СНЯТИЕ ДЕНЕГ, а подневное НАЧИСЛЕНИЕ АБОНПЛАТЫ. Помоему это разные вещи :)

Автор:  snark [ 16 сен 2010, 11:48 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

поставьте дату начала действия услуги абон. платы не 18.05.2010, а 11.08.2010 и пересчитайте август

Автор:  Phricker [ 16 сен 2010, 11:50 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

snark писал(а):
поставьте дату начала действия услуги абон. платы не 18.05.2010, а 11.08.2010 и пересчитайте август

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

Автор:  snark [ 16 сен 2010, 12:17 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

у меня даты услуг скрипт проставляет, я ими не заморачиваюсь даже :)

Автор:  Phricker [ 16 сен 2010, 12:21 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

snark писал(а):
у меня даты услуг скрипт проставляет, я ими не заморачиваюсь даже :)

ну так это уже реализовано в бг при помощи периодов действия (статусов). те же самые даты можно сказать :)

Автор:  snark [ 16 сен 2010, 12:29 ]
Заголовок сообщения:  Re: Абонентка "Пропорционально периоду"

тока с датами будет правильно работать "пропорционально периоду", статусы там вроде ни при делах

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/