Jump to content
Калькуляторы

Lanbilling списание АП

кто нибудь решил проблему 12 часов, когда, если услуга включена после 12 часов, этот день идет нахаляву абоненту?

 

пробовал комбинированно - ежедневно равными долями

динамически - ежедневно равными долям

фиксировано - ежедневно равными долям

 

все равно , если после 12-00 устанавливать услугу, в этот день деньги не списываются...

Share this post


Link to post
Share on other sites

Услуга включается только через УЗ - блокировки - там при включении время включения ставится 00:00

 

а если клиент управляет услугой из лк?

Share this post


Link to post
Share on other sites

Услуга включается только через УЗ - блокировки - там при включении время включения ставится 00:00

Не совсем так. В интерфейсе админки в двух местах (Объекты - УЗ и Объекты - Пользователи - нажать +) есть менюшки управления блокировками, которые как раз используют только текущее время при изменении состояния и изменять это поведение разработчики не намерены.

Поэтому выход: либо выпиливать эти менюшки из интерфейса либо бить по рукам операторов, которые ими пользуются.

 

а если клиент управляет услугой из лк?

Пытался допилить в ЛК мастер управления пакетами ТВ, с первого захода не осилил. Но там можно взять за образец мастер смены тарифного плана и в коде вычислять нужную дату и время ставить 00:00.

 

Ну и крайний вариант - запрашивать доработку у разработчиков.

Share this post


Link to post
Share on other sites

Это просто явный баг.

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

В свое время я делал проверку по БД биллинга, если находил разблокировку не с 0:00 - то исправлял, ядро биллинга это обнаруживало и делало перерасчет.

Потом операторы научились использовать правильные кнопки и необходимость в таком костыле отпала.

 

С доработками ЛК беда, писал на форуме у них, писал тут на форуме - реакции нет.

А проблема - абонент не может сменить тариф если он заблокирован по балансу. Никто случаем не разбирался? подозреваю что надо всего лишь условие проверки чуть исправить...

Share this post


Link to post
Share on other sites

Это просто явный баг.

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

Баг, это если бы работало не как задумано, а тут все работает так как задумано.

В этом случае скорее всего недоработка чем баг. Таки да, критично.

 

Тут два варианта: или отказаться от пользовательской блокировки, или брать плату за нее.

Есть третий, типо оплатить "дополнительный функционал" разрабам, чтобы оплата снималась за полные сутки или почасово,

вне зависимости от блокировок.

Share this post


Link to post
Share on other sites

А проблема - абонент не может сменить тариф если он заблокирован по балансу. Никто случаем не разбирался? подозреваю что надо всего лишь условие проверки чуть исправить...

Посмотрел код ЛК. Оказалось все очень просто. Ищем файл client2/client/components/tariff/changing/Tariff_Changing_Helper.php и приводим в нём функцию к такому виду:

 

   public function validateVgid() {
       /*
       if ($this->vgroup()->vgroup->blocked) {
           throw new Exception('Account is blocked');
       }
       */
       foreach ($this->tarrasp() as $item) {
           if ($this->byUser($item)) {
               throw new Exception('Please remove allready scheduled tariff change');
           }
       }
   }

Share this post


Link to post
Share on other sites

mrlexus Огромное Вам спасибо!

Brainiac Да, неверно выразился. Не баг, а просто недоработка. Но странно что она есть.

Share this post


Link to post
Share on other sites

Еще лучше вынести это в параметр конфига. Приводим функцию к такому виду:

 

   public function validateVgid() {

       if (!yii::app()->params['vgroup_schedule_blocked']) {
           if ($this->vgroup()->vgroup->blocked) {
               throw new Exception('Account is blocked');
           }
       }

       foreach ($this->tarrasp() as $item) {
           if ($this->byUser($item)) {
               throw new Exception('Please remove allready scheduled tariff change');
           }
       }
   }

 

И в конфиг ЛК добавить такие строчки:

 

//Разрешить смену тарифного плана при блокировке УЗ
'vgroup_schedule_blocked' => false,

 

ЗЫ Просто ради интереса, сколько денег попросили бы разработчики за такую доработку?

Edited by mrlexus

Share this post


Link to post
Share on other sites

Не знаю.

На их форуме я, и еще один человек отписывались с просьбой решить эту проблему.

Обоих пригласили в коммерческий отдел.

Помня сколько мне залепили лет 5 назад за простенький отчет, который я потом сам сделал, думаю, что что-то в районе 7-15 тыр...

Share this post


Link to post
Share on other sites

В свое время я делал проверку по БД биллинга, если находил разблокировку не с 0:00 - то исправлял, ядро биллинга это обнаруживало и делало перерасчет.

 

попробовал изменить время в таблице usbox_services

перерасчет автоматом не произошел, по крайнем мере через час после изменений.

отдельно запускать перерасчет? или ждать следующего дня?

Share this post


Link to post
Share on other sites

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

А если вернуть обратно как было и через веб интерфейс сменить?

Можно просто сделать отчет - и по рукам бить тех кто неправильно выставил... Заодно научатся как надо.

Share this post


Link to post
Share on other sites

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

А если вернуть обратно как было и через веб интерфейс сменить?

Можно просто сделать отчет - и по рукам бить тех кто неправильно выставил... Заодно научатся как надо.

 

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

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

Share this post


Link to post
Share on other sites

Какие поля в таблице меняете?

 

created, timefrom, activated время выставляю в 00:00:00

 

Воспроизвел у себя такую же ситуацию. После изменения времени напрямую в БД в указанных полях на 00:00:00 перерасчет прошел практически мгновенно.

Вероятно, время перерасчета зависит от параметров блокировки и типа списания в тарифном плане. У меня блокировка - Активная, списание - Комбинированно.

Share this post


Link to post
Share on other sites

Коллеги, не сильно по теме, но просьба - можете подсказать как запретить вход диапазону логинов (с 0900000 по 1000000)? как я догадываюсь надо указать в CAccessControlFilter.php дополнительные проверки, но что-то не понимаю как.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.