BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 23 июн 2025, 02:32

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




Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 15 июл 2010, 19:30 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Как-то так в набросках это выглядит.

Вложение:
1.png
1.png [ 56.79 КБ | Просмотров: 6082 ]


Вложение:
2.png
2.png [ 75.71 КБ | Просмотров: 6081 ]

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 16 июл 2010, 13:39 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
короче, доступно в следующем билде 5.1 и 5.2

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 19 июл 2010, 13:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Я вот что подумал. Предположим, клиент устанавливает себе приостановление с 1.08 по 10.08. Но 25.07 он закрывается механизмом дебетовых абонплат и его запланированное приостановление теряется.
Мы хотим брать деньги за приостановление в виде расходов и/или абонплаты, поэтому нам критично не терять эту информацию. Вообще, уже давно поднимался вопрос о перетирании будущих статусов в биллинге. Однозначно нужен какой-то объект - запланированный статус, который нельзя было бы просто перетереть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 19 июл 2010, 14:11 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
То есть надо, чтобы не перетиралось? И как это в описанном случае будет выглядеть? Что должно стать со статусом 1.08 ? Какой начать действовать должен?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 20 июл 2010, 06:36 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 20 июл 2010, 06:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
У нас есть две ситуации, когда статус устанавливается на будущее:
- приостановление по просьбе клиента
- отложенное закрытие должников (например, закрыли руками текущим днем, но потом клиент написал гарантийное письмо и ему на пару дней поставили статус "активен", а дальше остался "закрыт". Так вот, в данном случае как раз нужно перетирать будущий статус при приходе платежа, чего не делается автоматически, если платеж пришел во время активного статуса. Решили скриптом)

Проблема есть, но у меня слишком мало примеров для общего её решения. Может у кого ещё есть примеры?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 10:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Реализовал свой вебэкшен с блекджеком и шлюхами:
http://wiki.bgbilling.ru/index.php/WebA ... tomSuspend

Работает только в 5.0!
В 4.6 возможно тоже, в 5.1 - точно нет.

Цитата:
Приостановление доступно:

* Физ.лицам
* Не более x дней в течение y дней
* Приостановить договор можно только с завтрашнего дня
* Активировать можно либо с сегодняшнего, либо с завтрашнего дня
* Возможно взимание расхода за каждое приостановление. Если приостановление отменяется полностью, расход удаляется.
* Баланс должен быть >0 с учетом расхода за приостановление.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 11:57 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
В этом экшене также не учитываются перетирания статусов итд. Это же переписанный наш код с некими конкретными прописанными действиями вместо скриптов?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 12:02 
Не в сети
Клиент
Аватара пользователя

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

Просто приделал свою бизнес-логику. Так проще и чище, чем пытаться обвешивать скриптами стандартный экшен.
Проблему с перетиранием статусов решил запретом приостановления/активации с date1>завтра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 12:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
Проблему с перетиранием статусов решил запретом приостановления/активации с date1>завтра.

Так суть была в том, что плохо давать менять статус 1 августа, а не в том, что до 1 августа может перетереться? Ну так это можно сделать скриптом запросто - вернуть просто список двух дат -- дату "сегодня" и дату "завтра" в событии "запрос дат на смену статуса", юзеру дастся на выбор две даты. 4 строчки кода скрипта. И всё.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 13:01 
Не в сети
Клиент
Аватара пользователя

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

И всё это в 5.0 и сегодня. Решил, что быстрее сделать самому.

dimOn писал(а):
Так суть была в том, что плохо давать менять статус 1 августа, а не в том, что до 1 августа может перетереться?

Плохо давать менять статус с 1 августа именно потому, что он может успеть перетереться. Потому, что нет механизма отложенных заданий на смену статуса с приоритетами. Но пока непонятно, как такой механизм лучше сделать. Нужно больше примеров из жизни.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 13:15 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ок, посмотрю попозже код подробнее. А если после приостановки до конца лета юзер придёт и захочет активировать досрочно? Как будет списано? 20 рублей списывается или как?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 22 июл 2010, 13:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Да, у нас так и заявлено изначально. Расход 20р. вносится датой начала приостановления. При активации просто удаляются все расходы такого типа, внесенные датой >=date1 активации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 30 июл 2010, 08:25 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Поправил код:
Код:
int expectedSuspendedDays = this.SuspendedDays(tmp, Calendar.getInstance(), cid)+TimeUtils.daysDelta(TimeUtils.convertDateToCalendar(date1), TimeUtils.convertDateToCalendar(date2));

Заменил на:
Код:
int expectedSuspendedDays = this.SuspendedDays(tmp, Calendar.getInstance(), cid)+TimeUtils.daysDelta(TimeUtils.convertDateToCalendar(date1), TimeUtils.convertDateToCalendar(date2))+1;

Добавил +1, т.к. daysDelta :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WEB интерфейс (смена статуса)
СообщениеДобавлено: 03 авг 2010, 19:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
вот тут :
viewtopic.php?f=16&t=3927
недавно тоже обсуждали статусы . Пока вроде сошлись на том , чтобы сделать еще один режим когда , статус приостановлен остаётся, а остальные заменяются или перетираются


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


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

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