BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 01:47

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 26 янв 2012, 09:57 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 14 июл 2011, 13:32
Сообщения: 187
Откуда: г.Челябинск
Карма: 6
Cromeshnic писал(а):
2 Universe, а синхранизация с 1с у вас есть какая-нибудь? Наработка, баланс, платежи, расходы? У нас например четко должен совпадать баланс на конец месяца в биллинге и 1C. Если у вас автоматизированно оно не ведётся, как вы отслеживаете нестыковки? Например, в биллинге есть платеж / расход / наработка по услуге, а в 1С - нет. Или наоборот. Или в 1С у вас не ведутся абонентские договоры, только общая движуха денег?


Нет синхронизации с 1С. "Движуха" денег - общая.

_________________
Работаем с 5.2.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2012, 16:01 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
От ты упоротый упертый ...

skyb писал(а):
http://forum.bgbilling.ru/viewtopic.php?p=7178#p7178
blib писал(а):
если следовать букве закона то да можно, но если ВЫ платите деньги физическому лицу то вы должны считать подоходный налог + ЕСН.


При фиктивном платеже я _не_ плачу деньги! Читай _очень_ внимательно:

skyb писал(а):
blib писал(а):
по бугалтерии вы просто ему услуги дешевле продаете а не даете ему деньги.


Услуги мои и я как хочу - так их и продаю. Перед налоговой мне надо отчитаться только за реальное бабло, а не за циферки нарисованные в балансе, которые позволяют пользоваться моими услугами дешевле.
Пример: 1 МБ стоит 1.0 руб., чтобы клиенту 1 МБ стоил 0.5 руб. я, либо начислил ему 0.5 руб. фиктивного платежа когда клиент скачал 1 МБ, либо посчитал 2 МБ по 1 руб.
В результате клиент доволен, а налоговая увидит реальные деньги (пришло Х руб. - я отчитался за Х руб.), которые мне заплатит клиент.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2012, 19:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
snark писал(а):
От ты упоротый упертый ...

skyb писал(а):
http://forum.bgbilling.ru/viewtopic.php?p=7178#p7178
blib писал(а):
если следовать букве закона то да можно, но если ВЫ платите деньги физическому лицу то вы должны считать подоходный налог + ЕСН.


При фиктивном платеже я _не_ плачу деньги! Читай _очень_ внимательно:

skyb писал(а):
blib писал(а):
по бугалтерии вы просто ему услуги дешевле продаете а не даете ему деньги.


Услуги мои и я как хочу - так их и продаю. Перед налоговой мне надо отчитаться только за реальное бабло, а не за циферки нарисованные в балансе, которые позволяют пользоваться моими услугами дешевле.
Пример: 1 МБ стоит 1.0 руб., чтобы клиенту 1 МБ стоил 0.5 руб. я, либо начислил ему 0.5 руб. фиктивного платежа когда клиент скачал 1 МБ, либо посчитал 2 МБ по 1 руб.
В результате клиент доволен, а налоговая увидит реальные деньги (пришло Х руб. - я отчитался за Х руб.), которые мне заплатит клиент.

тут как написал кромешник еще зависит от того как синхронизируется с 1с...и харе меня обзывать :-\

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2012, 19:39 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
skyb писал(а):
зависит от того как синхронизируется с 1с

Так то если если в 1С пихать левые платежи, то тогда никакая система скидок не спасет.
1С = отчетность = туда надо ложить только то, что надо показать налоговой.

skyb писал(а):
харе меня обзывать :-\

Дык я ж я любя )))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2012, 19:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
snark писал(а):
skyb писал(а):
зависит от того как синхронизируется с 1с

Так то если если в 1С пихать левые платежи, то тогда никакая система скидок не спасет.
1С = отчетность = туда надо ложить только то, что надо показать налоговой.

дык о том и речь то ;)
snark писал(а):
skyb писал(а):
харе меня обзывать :-\

Дык я ж я любя )))

все тебе прощаю, любимая)))))))))

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2012, 09:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Нашел чуть более элегантный способ сделать процентные скидки через абонплаты.
В npay уже есть классы, получающие наработку по услугам:
http://bgbilling.ru/v5.2/doc/ch18s04s03.html

Осталось использовать их для процентных скидок. Сейчас в зависимости от наработки по другим услугам можно задать догоняющую абонплату или условие по наработке.

Предлагаю сделать ещё один узел тарифа - процентная скидка. В узле указывается только id "наработки" из конфига. Узел возвращает цену в -1% от наработки по услугам за месяц.

Т.е. как в первом посте, только список услуг, по которым считаем скидку, выносится в конфиг:

Код:
module.account.<id>.title=<title>
module.account.<id>.mid=<mid>
module.account.<id>.class=<class_name>
#module.account.<id>.sids=<sids>


Написал код, проверил - работает:

Код:
package ru.bitel.bgbilling.modules.npay.tariff.server;

import bitel.billing.server.npay.bean.ModuleAccount;
import java.math.BigDecimal;
import ru.bitel.bgbilling.kernel.tariff.tree.server.DefaultTariffTreeNode;
import ru.bitel.common.ParameterMap;

public class MonthModeDiscountTariffTreeNode extends DefaultTariffTreeNode<NPayTariffRequest, NPayTariffContext>
{
  private final int account;

  public MonthModeDiscountTariffTreeNode(int id, ParameterMap parameterMap)
  {
    super(id, parameterMap);

    this.account = parameterMap.getInt("account", 0);
  }

  protected int executeImpl(Long treeNodeId, NPayTariffRequest req, NPayTariffContext ctx)
  {
    ModuleAccount moduleAccount = ctx.getModuleAccount(this.account);
    if (moduleAccount == null)
    {
      req.addError("Not found account " + this.account);
      return 0;
    }

    //Наработка по услугам
    BigDecimal accountValue = ctx.getModuleAccount(this.account).getPeriodAccount(req.getConnection(),
      req.cid, ((NPayTariffRequest.NPayServiceCost)req.serviceCost).date1, ((NPayTariffRequest.NPayServiceCost)req.serviceCost).date2);

      ((NPayTariffRequest.NPayServiceCost)req.serviceCost).cost = accountValue.divide(BigDecimal.valueOf(100)).negate();

    return 1;
  }
}


Можно это реализовать в стандартном npay?

С меня - документация и примеры использования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2012, 11:22 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Cromeshnic писал(а):
Можно это реализовать в стандартном npay?
С меня - документация и примеры использования.

+++++++
А можно на примере?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2012, 11:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
См. п.2 в первом посте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2012, 13:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Эх, ещёб конечно не только по месяцам, а и по дням б, а так кул!!!

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2012, 14:01 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Цитата:
Данный узел может быть размещён только в узле типа Месячный режим снятия, денежная наработка будет вычисляться за рассчитываемый период (период сочетания, см. алгоритм) за исключением случая использования класса KernelAccount, который может вычислить только сумму за весь месяц, зато подходит для вычисления наработки любого модуля.

(с) http://bgbilling.ru/v5.2/doc/ch18s04s03.html

Справедливо также и для нашего узла.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 мар 2012, 12:52 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Насколько я понял, в вашей реализации наработка сначала списывается обычным порядком в полном объеме, а затем начисляется скидка.
В этом случае, чтобы все работало, баланс абонента должен быть достаточным для списания абонплаты в полном объеме, иначе она не спишется и он заблокируется.
Могут быть недоразумения с абонентами на эту тему. Т.к. они ожидают, что будет достаточно баланса с учетом скидки, а это не так.
Есть идеи как сделать так, чтобы было достаточно баланса с учетом скидки?
Например если бы все начисления делались в виде транзакции, внутри которой не анализировался бы уход в минус по каждой операции, а эта проверка делалась на транзакцию целиком.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 мар 2012, 13:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ага, очень верное замечание.
Сейчас хотим тестово внедрить такие скидки, уже переписываю логику расставления лимитов для кредитовых клиентов, чтобы они не влетели.
С обычными дебетовыми физиками с маленьким лимитом проблема встаёт остро.

Цитата:
Есть идеи как сделать так, чтобы было достаточно баланса с учетом скидки?

Простого способа не вижу. Чтобы скидка применялась сразу, она должна применяться при начислении в конкретном модуле => теряется универсальность. Да даже если делать только для абонплат, навскидку не скажу, как именно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 мар 2012, 13:48 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
В модуле DialUP есть "Уровни" viewtopic.php?f=5&t=4335.
Вот если бы эти уровни учитывались и в NPay, то можно было бы сделать тарифный план с ценой, зависящей от уровня.
Тогда бы мы получили сразу тарифный план, где стоимость зависит от того, что решила внешняя система или скрипт.
С помощью этого можно будет реализовать скидки, которые сразу будут менять стоимость абонплаты.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 мар 2012, 14:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Цитата:
Вот если бы эти уровни учитывались и в NPay, то можно было бы сделать тарифный план с ценой, зависящей от уровня.
Тогда бы мы получили сразу тарифный план, где стоимость зависит от того, что решила внешняя система или скрипт.
С помощью этого можно будет реализовать скидки, которые сразу будут менять стоимость абонплаты.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 12:41 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Процент скидки линейно зависит от наработки???
Может процент на каждый конкретный случай фиксирован и линейно зависит сама сумма скидки?
В этом случае это нормально вписывается и в вариант с уровнями. Т.к. на разных уровнях можно установить стоимость уже с учетом нужной скидки.

В вашем случае, если скидка задана в тарифном плане, то как сделать ее динамической для разных абонентов с этим тарифным планом?
Например такое: Если абонент вовремя пополняет счет в течении 3х месяцев, то ему предоставляется скидка 10%, и за каждый последующий месяц еще +2%.
Если хоть раз вовремя не заплатил, скидка сбрасывается в 0. При этом тарифный план остается тот же самый и в нем ничего не правится.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 12:57 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Сумма скидки линейно зависит конечно, не %.

Я кажется понял теперь, о чём вы.
Цитата:
Вот если бы эти уровни учитывались и в NPay, то можно было бы сделать тарифный план с ценой, зависящей от уровня.

Т.е. сделать уровни, а в каждом уровне использовать не фикцированную цену абонплаты (100р), а наш новый узел для скидки с нужным множителем. Так?
Ну да, можно. Только уровни - фишка исключительно модуля dialup и не влияет на тарификацию. Уровни в dialup определяются только в текущий момент, у них нет ни истории, ни периодов действия. Поэтому для тарификации они не годятся.
Можно использовать тарифные опции. Или заменять разные скидочные абонплаты на договоре.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 13:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Цитата:
В вашем случае, если скидка задана в тарифном плане, то как сделать ее динамической для разных абонентов с этим тарифным планом?

Скидка задаётся не в тарифном плане, а на договоре: "количество" скидочной абонплаты - это скидка.
Например, скидка на инет 30%:
Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 13:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Хотя давеча говорили с манагерами, они хотят, чтобы скидку сразу было видно при просмотре списка тарифов. Тут только отдельные дополнительные тарифы делать, с фиксированным % скидки.
Чуть лучше - сделать для скидок отдельный экземпляр модуля абонплат и обозвать его "Скидки", чтобы сразу в глаза бросался.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 13:29 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Я знаю что сейчас уровни работают только в радиусе, но реализовать их для NPay, на мой взгляд, не так сложно.
Нужно завести табличку с cid,level и в NPay добавить обработку узлов "Уровень" по данным из этой таблицы.
Да и радиус пусть эту таблицу использует. Зачем подпорка в виде файла при рестарте.
Просто реализация с уровнями позволит решить проблему с тем что не нужно иметь баланс на полную абонплату.
А даже отдельный модуль скидок этого не решит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 13:39 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Цитата:
Нужно завести табличку с cid,level и в NPay добавить обработку узлов "Уровень" по данным из этой таблицы.

+ date1, date2
Это уже есть и называется "Тарифные опции"
Цитата:
Просто реализация с уровнями позволит решить проблему с тем что не нужно иметь баланс на полную абонплату.

мм, значит я не понял, что вы предлагаете. Опишите подробнее схему начисления самой скидки в зависимости от уровня. Или вы вместо отдельной отрицательной услуги "скидка на услугу x" хотите просто уменьшать цену абонплаты x в зависимости от уровня? Так это и сейчас можно сделать через тарифные опции. Другое дело, что к опциям прилагается громоздкий hardcoded механизм активации/деактивации, и они все светятся в веб-статистике. Это дааа... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2012, 17:31 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
В том то и дело что тарифные опции еще много на чего завязаны.
Нужен простой механизм изменения цены в тарифе, чтоб внешняя логика приняла решение когда и какой уровень будет, а NPay посчитал это.
Да, я предлагаю в нужных уровнях сразу указывать цену с учетом скидки.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.115s | 60 Queries | GZIP : On ]