BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ] 
Автор Сообщение
СообщениеДобавлено: 13 май 2015, 14:30 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
В web-меню хочу внести изменения. В менюопции ContractLimit(contractlimit.jsp) (понижение лимита) хочу добавить цифры из баланса абонента.

Простое использование переменных из менюопции GetBalance(balance.jsp) не срабатывает - переменные возращают пустоту. Например (${dataMap['summa2']}, ${dataMap['summa5']}).

поверхностный просмотр обоих файлов, файла меню слева не помогает понять как зацепить в dataMap нужные данные и вытащить их в contractlimit.jsp

помогите пожалуйста как вытащить данные о размере баланса при исполнении contractlimit.jsp.

Смысл задачи - переписать "понижение лимита" в "обещанный платёж" в размере баланса. т.е. если у абонента минус - он заходит, обещает заплатить свой минус и работает N дней.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 май 2015, 16:03 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Все переменные, которые используются в JSP жестко задаются в соответствующем экшене, лишнего там, обычно, нет. В экшене ContractLimit переменных для баланса нет, поэтому вытащить баланс никак не получится. Без написания своего экшена в динамическом коде не обойтись.

Как более простой вариант - обернуть стандартный экшен ContractLimit своим экшеном, и в своём экшене добавить недостающие переменные. Подробнее здесь

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


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

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
или использовать виджет баланса, см. страницы платежных систем


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 май 2015, 19:04 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
skn писал(а):
виджет баланса

Это модуль дополнительный нужен? У меня виджет такой, вроде, есть, но по адресу widget/contract/balanceInformer.jsp 404-я ошибка.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 май 2015, 03:33 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Для использования виджета на страницу нужно добавить:
Код:
<div class="bgBalanceInformerWidget"></div>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 май 2015, 12:06 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Да, но этот виджет пытается выполнить запрос на адрес http://x.x.x.x/bgbilling/widget/contrac ... former.jsp и в ответ получает 404-ю ошибку. Нужно что-то ещё установить или дополнительно настроить, чтобы заработал этот виджет?

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 май 2015, 17:41 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
нужно обновиться минимум до 6.1


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2015, 12:23 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
а где хранится кусок кода, который генерит мессагу на эту страницу: "Сумма должна быть в пределах от -X до Y"?
простой поиск типа grep -rl 'Сумма должна быть в пределах от' /bgbilling-path что-то не находит её вообще..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2015, 12:42 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Если искать TotalCommander'ом в либах биллинга внутри архивов в кодировке UTF8, то находит ActionContractLimit в kernel.jar. Т. е. подобные сообщения жёстко прописаны внутри кода экшена, ответственного за обработку данной страницы в ЛК.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2015, 12:55 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
не, это явно не то.
мне нужно тот кусок, что добавляет в страницу <div class="errorMessage">
удивительно то, что казалось бы за это отвечает /include/error.jsp, однако редактирование его не приводит к нужным изменениям (например замене надписи)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2015, 13:26 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
нашёл. если кому надо потом. ещё один вывод ошибки происходит через jspf/layout/webexecuter.jsp


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2015, 17:04 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Изначально вопрос был про баланс - вы смогли его получить на странице управления лимитом? Интересен сам способ получения.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


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

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
vkulakov писал(а):
Изначально вопрос был про баланс - вы смогли его получить на странице управления лимитом? Интересен сам способ получения.


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


Последний раз редактировалось Galkov 19 май 2015, 13:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 май 2015, 13:25 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
У меня в процессе переписывания contractlimit.jsp возникли проблемы. похоже по нажатии кнопки post (Понизить) не передаются переменные серверу на исполнение.
я добавил в страницу вот это -

<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['month']}"/>
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['year']}"/>
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['action']}"/>
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['mid']}"/>

на месте, где должны быть значения - пустота. даже action, хотя как оно тогда вызвало нужную страницу?!?
я полностью переписал WEB-INF назад из бэкапа оригинальных файлов и удалил сожержимое /opt/bgbilling/tmp
не помогает. Кнопка "Понизить" отрабатывает не передавая перемнные. Виджет bgMonthAndYearWidget кстати тоже не получает значения.
ничего больше я не правил (только закоментил мессагу об ощибке в webexecuter.jsp и contractlimit.jsp ) :) но накат бэкапа мои изменения ликвидировал..

куда хоть посмотреть? :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 май 2015, 14:09 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
сервер биллинга ребутали после замены?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 май 2015, 14:19 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
skn писал(а):
сервер биллинга ребутали после замены?


это тоже не всегда помогает(перезапись файлов+ рестарт, а в браузер выдаётся старый динамически генерируемый контент).
помогает обновление дат создания файлов *.jsp
но тут "заклинило" какой-то файл, который я не знаю. поэтому дату не могу обновить..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 май 2015, 14:28 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
попробуйте почистить папку tmp в каталоге биллинга


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 май 2015, 16:36 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
skn писал(а):
попробуйте почистить папку tmp в каталоге биллинга


Не помогает. ну то есть если постоянно трясти, перегружать, удалять из tmp, обновлять даты файлов - помогает, но фрагментарно, то один файл начинает актуальную инфу "выдавать", то другой.
Но POST по кнопке так и не передаёт в contractlimit.jsp никаких значений.

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

Кстати я вспомнил, я уже сталкивался с этой проблемой в ЛК. поэтому не запустил "обещанный платёж" три месяца назад.. тогда я ничего не редактировал, только конфигурил и вдруг вот это началось с POST. Тогда бросил это дело. А тут пару дней нажал нажал на кнопку - сработало. Начал править - работало до последнего момента, когда я считал всё переделал и тут как абонентам в меню услугу сунул - не работает.


Вложения:
qe.png
qe.png [ 73.51 КБ | Просмотров: 8378 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 май 2015, 18:41 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
а как проверяете что данные не передаются при посте?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2015, 11:50 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
skn писал(а):
а как проверяете что данные не передаются при посте?


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

дополнительно, я пробовал, как писал выше, смотреть содержимое в так:
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['month']}"/>
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['year']}"/>
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['action']}"/>
<fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['mid']}"/>

размещая этот код в contractlimit.jsp. - пусто.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2015, 13:00 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
т.е. вы в браузере не смотрели запрос который передается
(у вас получается как проверить, что автомат не работает, если пули в цель не попали, значит из автомата они не вылетали...)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2015, 19:15 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
skn писал(а):
т.е. вы в браузере не смотрели запрос который передается
(у вас получается как проверить, что автомат не работает, если пули в цель не попали, значит из автомата они не вылетали...)


в браузере в верхней строчке? там присутствует часть переменных. с правильными значениями. никаких аномалий. я имею ввиду те, которые *.jsp вынимает из dataMap[*] - там ничего нет.
переходя на аналогию с автоматом - у меня автомат по нажатию курка работает, затвор летает, но ни гильз ни пуль не летит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2015, 19:20 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
если запрос передается методом POST то параметры в адресной строке не выводятся
нужно в браузере переключиться в отладочный режим и посмотреть какой реально запрос уходит из браузера.
(передача параметров в запросе и их наличие в dataMap не связанные вещи).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 май 2015, 11:56 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
браузер нормально всё отправляет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 май 2015, 12:18 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
при клике по кнопке "Понизить" отрабатывает форма

Код:
<form method="post" action="">
      <input type="hidden" name="action" value="ContractLimit" />
      <table class="filter">
      <tr>
         <td>Понизить лимит на сумму:</td>
         <td><input type="text" name="summ" size="6"/></td>
         <td>сроком на </td>
         <td>
            <c:set var="map" value="${dataMap['dMap']}" />
            <select name="days"><c:forEach var="item" begin="${dataMap['contractLimitParameters'].minDays}" end="${dataMap['contractLimitParameters'].maxDays}"><option value="${item}">${item} ${map[item]}</option></c:forEach></select>
         </td>
         <td><input type="submit" value="Понизить" style="margin-left: 15px;"></td>
      </tr>
   </table>
   </form>


из этой формы видно, что передаются три параметра
Код:
action=ContractLimit
summ=введенная_сумма
days=количество_дней


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2015, 15:11 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
skn писал(а):
из этой формы видно, что передаются три параметра
Код:
action=ContractLimit
summ=введенная_сумма
days=количество_дней


Так конечно, но судя по ответу - "ContractLimit" отрабатывается, так как возвращает ту же страницу, а вот summ, days - отбрасываются, так как (см скриншот). Главное что я переписал весь каталог всё из бэкапа, когда ещё работало..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2015, 16:52 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
у вас правильно в конфиге настроены параметры управления понижением лимита?
покажите конфиг...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 июн 2015, 17:23 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
#http://bgbilling.ru/v6.1/doc/ch01s18s07.html
# Запрет установки договору лимита без указания периода в случае наличия заданий на автоматическое изменение лимита, 1 - включение запрета
#reject.limit.update=0
reject.limit.update=1
# сообщения при изменении лимита
limit.max.current.msg=Вы не можете в данный момент.
limit.max.nopayed.msg=Превышено максимально количество просроченных использований услуги. Возможность использования услуги "Обещаный платёж" заблокирована.
# Коды групп договоров, для которых действует данная настройка, через ',' (чтобы узнать код группы нажмите Ctrl+i в справочнике
# групп при выбранной строке таблицы)
#contract.limit.1.groups=0,1,2,3,4,5,7,56,38,62,24,23,61,19,57,58,20
contract.limit.1.groups=23,57,58,5,62
# Максимальное количество не оплаченных (не возвратившихся) понижений,
# при котором клиенту будет доступно понижение, при 0 клиент не сможет выполнять
# понижение до тех пор пока будет хотя бы одно не оплаченное
contract.limit.1.maxnotpayoffed=3
# Максимальное количество частично оплаченных понижений,
# при котором клиенту будет доступно понижение (0-1, частично оплаченное понижение
# может быть только одно)
contract.limit.1.maxpartialpayoffed=1
# Количество просроченных платежей после последней разблокировки,
# после которых доступ к понижению будет заблокирован, 1 - не блокировать при любом количестве
contract.limit.1.maxexpiredforblock=3
# Дни от до
contract.limit.1.mindays=3
contract.limit.1.maxdays=7
# Сумма от до
contract.limit.1.minsumm=-100
contract.limit.1.maxsumm=-900
# Нижний порог лимита при понижении клиентом (по умолчанию -100),
# т.е ниже этого порога клиент понизить не сможет
contract.limit.1.minlimit=-900
---------------------------------------------------

договор, которым проверяю в группе 62. (contract.limit.1.groups)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 июн 2015, 18:23 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
что то мне не нравятся параметры, в доке они положительные, а у вас отрицательные
Код:
# Сумма от до
contract.limit.1.minsumm=100
contract.limit.1.maxsumm=200


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 июн 2015, 19:57 
Не в сети
Клиент

Зарегистрирован: 10 ноя 2014, 18:38
Сообщения: 396
Карма: 0
да. дело в этом.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ] 

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


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

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


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

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