forum.bitel.ru http://forum.bitel.ru/ |
|
Изменить скрипт переначисления абонентской платы http://forum.bitel.ru/viewtopic.php?f=19&t=5732 |
Страница 1 из 1 |
Автор: | crez [ 21 июл 2011, 13:57 ] |
Заголовок сообщения: | Изменить скрипт переначисления абонентской платы |
Уважаемые скриптеры, помогите, пожалуйста, поправить скрипт: Есть скрипт, взятый из http://wiki.bgbilling.ru/index.php/Запуск_переначисления_в_модуле_NPay Скрипт привязан к некоторым событиям (например, Изменение статуса договора) Код: import bitel.billing.server.task.bean.*; import bitel.billing.server.npay.*; import java.util.*; NPAY_MID = <число с кодом экземпляра модуля>; // можно указать через запятую конкретные коды договоров, пустая строка - все договора cids = ""; // месяц за который идёт перерасчёт date = new GregorianCalendar(); // EMail для отправки отчёта о завершении начисления email = null; // набор услуг, 0- все услуги serviceSet = 0; new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, date, email, serviceSet, cids ) ); Этот скрипт переначисляет абонентскую плату всем абонентам, а это является тяжелой задачей. Как его поправить, чтобы он переначислял её только для текущего абонента? Я так понимаю, что в строке: Код: // можно указать через запятую конкретные коды договоров, пустая строка - все договора cids = ""; в кавычках должно стоять выражение, берущее cid текущего абонента из БД? |
Автор: | snark [ 21 июл 2011, 14:06 ] |
Заголовок сообщения: | Re: Изменить скрипт переначисления абонентской платы |
Там же русским по белому написано: Цитата: можно указать через запятую конкретные коды договоров Т.е. нечто в духе: Код: cids = "1, 4, 28, 79, 82"; Ну или как нить так: Код: String cidList = <нечто возвращающее СТРОКУ cid-ов через запятую>;
cids = cidList; |
Автор: | crez [ 01 ноя 2011, 13:20 ] |
Заголовок сообщения: | Re: Изменить скрипт переначисления абонентской платы |
Изменил на: Код: import bitel.billing.server.task.bean.*; import bitel.billing.server.npay.*; import java.util.*; NPAY_MID = 2; // можно указать через запятую конкретные коды договоров, пустая строка - все договора //cids = ""; cid = event.getContractID(); // месяц за который идёт перерасчёт date = new GregorianCalendar(); // EMail для отправки отчёта о завершении начисления email = null; // набор услуг, 0- все услуги serviceSet = 0; new RunTaskDataManager( con ).addTask( new Recalculator( NPAY_MID, date, email, serviceSet, ""+cid ) ); Начисление проходит, но в логе получаю: Код: WARNINGS: Function [id:16; title:Переначисление абонентской платы]: using deprecated method [public int bitel.billing.server.script.bean.event.Event.getContractID()] Как побороть ошибку? ADD: Сам нашел ![]() правильно Код: cid = event.getContractId(); d вместо D ADD: skyb, спасибо! Сам уже нашел ![]() |
Автор: | skyb [ 01 ноя 2011, 13:25 ] |
Заголовок сообщения: | Re: Изменить скрипт переначисления абонентской платы |
crez писал(а): Как побороть ошибку? Код: cid = event.getContractId(); И будет вам счастье |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |