forum.bitel.ru http://forum.bitel.ru/ |
|
Управление статусом из ЛК http://forum.bitel.ru/viewtopic.php?f=22&t=10119 |
Страница 1 из 1 |
Автор: | PavelGloba [ 27 янв 2015, 18:04 ] |
Заголовок сообщения: | Управление статусом из ЛК |
В bgbilling довольно хорошо реализовано управление лимитом. Можно для разных групп договоров настроить различное количество разрешенных дней, порог лимита, стоймость и т.п. А вот как конфигурировать управление статусом я не нашел вообще. Возможно ли реализовать сложные условия для разных групп договоров, не залезая при этом в код? Например такие: 1 группа: - возможность приостановки обслуживания минимум на 7 суток, максимум на 3 месяца не чаще раза в месяц; в дальнейшем снимается ежесуточная плата в размере 10% от тарифа 2 группа: - возможность приостановки обслуживания минимум на месяц, максимум на 3 месяца со снятием ежемесячной абонентской платы 50% от тарифа |
Автор: | PavelGloba [ 02 фев 2015, 15:47 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Anyone? |
Автор: | stark [ 02 фев 2015, 15:53 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
PavelGloba писал(а): В bgbilling довольно хорошо реализовано управление лимитом. Можно для разных групп договоров настроить различное количество разрешенных дней, порог лимита, стоймость и т.п. А вот как конфигурировать управление статусом я не нашел вообще. Возможно ли реализовать сложные условия для разных групп договоров, не залезая при этом в код? Например такие: 1 группа: - возможность приостановки обслуживания минимум на 7 суток, максимум на 3 месяца не чаще раза в месяц; в дальнейшем снимается ежесуточная плата в размере 10% от тарифа 2 группа: - возможность приостановки обслуживания минимум на месяц, максимум на 3 месяца со снятием ежемесячной абонентской платы 50% от тарифа Штаного решения нет, можно заложить некоторую логику смены статуса в обработчике события смены статуса . Не давать там менять и т.п . |
Автор: | stark [ 02 фев 2015, 15:55 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Есть еще событие "получение списка дат при смене статуса договора". |
Автор: | Dima_M [ 02 фев 2015, 21:59 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Тоже очень интересен подобный функционал. А именно ограничение времени приостановки. Скажем, минимум на 7 суток. |
Автор: | dimOn [ 02 фев 2015, 22:35 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Всё решается событиями вышеперечисленными. |
Автор: | PavelGloba [ 03 фев 2015, 13:04 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Как по мне, должно быть штатное решение. Подобный функционал есть в биллинге у большенства операторов связи. Можно расчитывать на подобный функционал в ближайшем будущем? |
Автор: | stark [ 03 фев 2015, 13:17 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
PavelGloba писал(а): Как по мне, должно быть штатное решение. Подобный функционал есть в биллинге у большенства операторов связи. Можно расчитывать на подобный функционал в ближайшем будущем? Какой функционал именно штатный ? 1. Цитата: - возможность приостановки обслуживания минимум на 7 суток, максимум на 3 месяца не чаще раза в месяц; в дальнейшем снимается ежесуточная плата в размере 10% от тарифа 2 Цитата: - возможность приостановки обслуживания минимум на месяц, максимум на 3 месяца со снятием ежемесячной абонентской платы 50% от тарифа 3. Возможность запретить приостановку статуса всем проживающим по улице Красноводсткая чаще чем один раз в 5 месяцев. 4. При приостановке статуса снимать 37% от абонплаты. 5. Не давать приостанавливать статус тем кто у кого средний остаток на счете за последний год меньше 100 рублей . И можно придумать еще много условий . Мы можем нагородить какие-то настройки, но зачем , если это можно решить скриптом . Всегда найдется кто-то, кто придумает какие-то еще условия, о которых мы понятия не имели . Если сами не можете решить проблему с помощью скрипта, то обратись к нам или кому-то(тут на форуме некторые предлагают свои услуги) кто сможет помочь. |
Автор: | dimOn [ 03 фев 2015, 13:22 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Цитата: Подобный функционал есть в биллинге у большенства операторов связи. А скриптами у них можно?PavelGloba писал(а): Можно расчитывать на подобный функционал в ближайшем будущем? Нет
|
Автор: | Phricker [ 03 фев 2015, 13:39 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
stark писал(а): 1. Цитата: - возможность приостановки обслуживания минимум на 7 суток, максимум на 3 месяца не чаще раза в месяц; в дальнейшем снимается ежесуточная плата в размере 10% от тарифа Мне на 14 дней надо и максимум на 2 месяца. Спасибо. Пожалуйста. |
Автор: | skyb [ 03 фев 2015, 13:44 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
а я экшен переписал =) |
Автор: | dimOn [ 03 фев 2015, 13:47 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Phricker писал(а): stark писал(а): 1. Цитата: - возможность приостановки обслуживания минимум на 7 суток, максимум на 3 месяца не чаще раза в месяц; в дальнейшем снимается ежесуточная плата в размере 10% от тарифа Мне на 14 дней надо и максимум на 2 месяца. Спасибо. Пожалуйста. нет нет, а это уже не штатное решение ![]() |
Автор: | PavelGloba [ 03 фев 2015, 14:10 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Такие же возможности, как в управлении лимитом. |
Автор: | dimOn [ 03 фев 2015, 14:34 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
И как вы собираетесь внести в настройки аналогичной куцести свои пожелания вида: Цитата: - возможность приостановки обслуживания минимум на 7 суток, максимум на 3 месяца не чаще раза в месяц; в дальнейшем снимается ежесуточная плата в размере 10% от тарифа Цитата: - возможность приостановки обслуживания минимум на месяц, максимум на 3 месяца со снятием ежемесячной абонентской платы 50% от тарифа да ещё и остальныеЦитата: сложные условия для разных групп договоров и чего-то там ещё.1. какой в этом смысл? 2. вы понимаете, что настройки, позволяющие задать подобное, будут много сложнее, чем 10 строк кода скрипта? |
Автор: | PavelGloba [ 03 фев 2015, 14:47 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Достаточно min-maxdays и группы. Остальное всё действительно слишком индивидуально, не надо к этому, пожалуйста, больше цепляться. Разбивка по разным группам должна быть априори, ИМХО. |
Автор: | Dima_M [ 03 фев 2015, 18:05 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
skyb писал(а): а я экшен переписал =) Может быть в вики пример решения выложить, если написали его? |
Автор: | skyb [ 04 фев 2015, 12:43 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Dima_M писал(а): skyb писал(а): а я экшен переписал =) Может быть в вики пример решения выложить, если написали его? да я и не против, но вот времени чет нет пока на это, там просто не только переписка, там настройка, смена самой веб морды, кнопки |
Автор: | skyb [ 06 фев 2015, 08:32 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Статус чет найти не могу, но вот с лимитом как я поиграл Код: String action = request.getParameter("act");
request.setAttribute( "contentType", ActionResultContentType.jsp ); java.util.Date currentDate = new java.util.Date(); //BigDecimal summ = getBigDecimalParameter( "summ", BigDecimal.ZERO ); BigDecimal summ = new BigDecimal(1000); LimitManager lm = new LimitManager( con ); ContractManager cm = new ContractManager( con ); Contract contract = cm.getContractById( cid ); BalanceUtils bu = new BalanceUtils (con); String query = " SELECT date1 FROM contract WHERE id = " + cid; PreparedStatement contractPs = con.prepareStatement( query ); ResultSet contractRs = contractPs.executeQuery(); /* else if( contract.getBalanceLimit().subtract( summ ).compareTo( clp.minLimit ) < 0 ) { throw new BGMessageException( "Понижение лимита ниже " + Utils.formatBigDecimalSumm( clp.minLimit ) + " невозможно." ); } */ reloadClp( lm, contract ); //if( clp != null && summ.compareTo( BigDecimal.ZERO ) > 0 && contract.getBalanceMode() == Contract.DEBET_BALANCE_MODE ) if( clp != null && "Взять платеж".equals(action) && contract.getBalanceMode() == Contract.DEBET_BALANCE_MODE ) { while ( contractRs.next() ) { Date date = contractRs.getDate( 1 ); int mounth = TimeUtils.monthsDelta(date, currentDate); /* *Больше месяца - день *Больше трех - три *Больше пол года - пять */ if (bu.getBalance(currentDate, cid).compareTo( new BigDecimal(0) ) >= 0) { if (mounth == 0) { System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); throw new BGMessageException( "Обещанный платеж можно брать только через месяц" ); } if (mounth >= 1 && mounth < 3) { lm.lowLimit( cid, summ, 1 ); contract = cm.getContractById( cid ); context.publishAfterCommit( new ContractLimitUserLow( userID, cid, summ, 1 ) ); context.publishAfterCommit( new SystemLimitChangedEvent( cid, contract.getBalanceLimit()) ); context.publishAfterCommit( new LimitChangedEvent( cid, contract.getBalanceLimit()) ); reloadClp( lm, contract ); System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); } if (mounth >= 3 && mounth < 6) { lm.lowLimit( cid, summ, 3 ); contract = cm.getContractById( cid ); context.publishAfterCommit( new ContractLimitUserLow( userID, cid, summ, 3 ) ); context.publishAfterCommit( new SystemLimitChangedEvent( cid, contract.getBalanceLimit()) ); context.publishAfterCommit( new LimitChangedEvent( cid, contract.getBalanceLimit()) ); reloadClp( lm, contract ); System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); } if (mounth >= 6) { lm.lowLimit( cid, summ, 5 ); contract = cm.getContractById( cid ); context.publishAfterCommit( new ContractLimitUserLow( userID, cid, summ, 5 ) ); context.publishAfterCommit( new SystemLimitChangedEvent( cid, contract.getBalanceLimit()) ); context.publishAfterCommit( new LimitChangedEvent( cid, contract.getBalanceLimit()) ); reloadClp( lm, contract ); System.out.println("While sql " + date + " mounth " + mounth + " currentDate " + currentDate); } } else { throw new BGMessageException( "Понижение лимита при отрицательном балансе невозможно." ); } } contractPs.close(); contractRs.close(); } super.doAction(); } private void reloadClp( LimitManager lm, Contract contract ) throws BGException { try { clp = null; clp = lm.getContractLimitParameters( setup, contract ); } catch( BGMessageException e ) { setMsg( e.getMessage() ); } } } |
Автор: | stark [ 06 фев 2015, 11:39 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
skyb писал(а): Статус чет найти не могу, но вот с лимитом как я поиграл Предлагаю рассмотреть возможность использования "else if" в вашем коде. Так было бы более понятно и исключает ошибку того, что сработает 2 условия сразу. |
Автор: | dimOn [ 06 фев 2015, 12:01 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Если речь про if (mounth >= 1 && mounth < 3) итд, то я в таком случае заведомо неперекрывающихся условий тоже не стал бы else ставить для как раз логичности и наглядности |
Автор: | Fate [ 30 янв 2017, 19:34 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Коллеги, а ничего по управлению статусом не допилили? Например - разрешить блокироваться только один раз в месяц? |
Автор: | dimOn [ 30 янв 2017, 23:05 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
а чего тут допиливать? всё делается скриптами |
Автор: | MySTeRious [ 31 янв 2017, 12:11 ] |
Заголовок сообщения: | Re: Управление статусом из ЛК |
Fate писал(а): Коллеги, а ничего по управлению статусом не допилили? Например - разрешить блокироваться только один раз в месяц? Если нужны скрипты - пишите в личку. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |