forum.bitel.ru http://forum.bitel.ru/ |
|
[BUG] Рассылка баланса работает неправильно http://forum.bitel.ru/viewtopic.php?f=22&t=5816 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 24 авг 2011, 13:25 ] |
Заголовок сообщения: | [BUG] Рассылка баланса работает неправильно |
Клиент пожаловался, что в стандартной рассылке баланса (bitel.billing.server.contract.bean.DispatchBalance) ему приходит ерунда. Конкретнее - ему приходят данные за следующий месяц, хотя в заголовке указан текущий: Вложение: Вложение: 8852.23 - это его текущий баланс, который был в момент рассылки сегодняшнего баланса. При этом ActionContractBalanceAll при запуске через http работает правильно. Написал скрипт для проверки наличия бага: Код: import bitel.billing.server.util.*; import java.sql.*; import java.util.*; import bitel.billing.common.TimeUtils; import bitel.billing.server.contract.bean.Contract; import bitel.billing.server.contract.bean.ContractManager; import ru.bitel.common.XMLUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; import bitel.billing.server.contract.action.ActionContractBalanceAll; import org.w3c.dom.ls.*; public void main(setup, con, conSlave) { int cid=123; //Получаем даты так же, как и в коде рассылки: Calendar startMonth = Calendar.getInstance(); Calendar endMonth = Calendar.getInstance(); startMonth.set(5, 1); endMonth.add(2, 1); endMonth.set(5, 1); endMonth.add(6, -1); //Если раскомментировать следующие 2 строчки, то всё работает правильно: // startMonth = TimeUtils.parseCalendar("01.08.2011", "dd.MM.yyyy"); // endMonth = TimeUtils.parseCalendar("31.08.2011", "dd.MM.yyyy"); print(TimeUtils.format(startMonth, "dd.MM.yyyy")); print(TimeUtils.format(endMonth, "dd.MM.yyyy")); Document doc = XMLUtils.newDocument(); Element rootNode = doc.createElement("data"); ActionContractBalanceAll action = new ActionContractBalanceAll(); try { action.init(setup, rootNode, cid, "contract", 0); action.balance(startMonth, endMonth); domImplLS = (DOMImplementationLS) doc.getImplementation(); serializer = domImplLS.createLSSerializer(); String str = serializer.writeToString(rootNode); print(str); }catch(e){ print(e); } } Вывод скрипта: Код: COMPLETE_TIME: 24.08.11 16:18:02 PROCESS_TIME: 27 OUT: 01.08.2011 31.08.2011 <?xml version="1.0" encoding="UTF-16"?> <data comment="ООО "Рога и Копыта"" contractTitle="123456789" date1="01.08.2011" date2="31.08.2011" xslt="contract_balance_print.xsl"><month title="август 2011"><balance><table summa1="-8905.01" summa2="0.00" summa3="0.00" summa4="0.00" summa5="-8905.01"/></balance><account><table summa="0.00"/></account><charge><table summa="0.00"/></charge><payment><table summa="0.00"/></payment></month></data> - неправильно, выдается баланс на сентябрь Если же в нем раскомментировать строчки: Код: // startMonth = TimeUtils.parseCalendar("01.08.2011", "dd.MM.yyyy"); // endMonth = TimeUtils.parseCalendar("31.08.2011", "dd.MM.yyyy"); то на выходе получим правильный баланс на август: Код: COMPLETE_TIME: 24.08.11 16:20:32 PROCESS_TIME: 38 OUT: 01.08.2011 31.08.2011 <?xml version="1.0" encoding="UTF-16"?> <data comment="ООО "Рога и Копыта"" contractTitle="123456789" date1="01.08.2011" date2="31.08.2011" xslt="contract_balance_print.xsl"><month title="август 2011"><balance><table summa1="-1299.60" summa2="0.00" summa3="7605.41" summa4="0.00" summa5="-8905.01"><data><row f0="август 2011" f1="Входящий остаток на начало месяца" f2="-1299.60"/><row f0="август 2011" f1="Приход за месяц" f2="0.00"/><row f0="август 2011" f1="Наработка за месяц" f2="7605.41"/><row f0="август 2011" f1="Расход за месяц" f2="0.00"/><row f0="август 2011" f1="Исходящий остаток на конец месяца" f2="-8905.01"/></data></table></balance><account><table summa="7605.40"><data><row date="2011 август" f0="2011 август" f1="Услуга 1" f2="228.39" sid="123" summa="228.39" title="Услуга 1"/><row date="2011 август" f0="2011 август" f1="Услуга 2" f2="3454.96" sid="456" summa="3454.96" title="Услуга 2"/></data></table><sub_table><data><row cid="456" contract="123456789-01" date="2011 август" service="Услуга 1" sid="123" summa="228.39"/><row cid="456" contract="123456789-01" date="2011 август" service="Услуга 2" sid="456" summa="2244.05"/><row cid="789" contract="123456789-02" date="2011 август" service="Услуга 1" sid="123" summa="228.39"/><row cid="789" contract="123456789-02" date="2011 август" service="Услуга 2" sid="456" summa="1221.23"/></data></sub_table></account><charge><table summa="0.00"><data/></table><sub_table><data/></sub_table></charge><payment><table summa="0.00"><data/></table><sub_table><data/></sub_table></payment></month></data> Клиент: вер. 5.1 сборка 564 от 04.07.2011 17:24:11 os:Windows XP; java:Sun Microsystems Inc., v.1.6.0_16 Сервер: вер. 5.1 сборка 685 от 04.07.2011 17:23:55 os:Linux; java:Sun Microsystems Inc., v.1.6.0_22 Можете пофиксить? |
Автор: | Cromeshnic [ 24 авг 2011, 15:01 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
И да, кто на 5.1 - проверьте у себя рассылку баланса (заказывается клиентом в web-статистике). |
Автор: | skyb [ 24 авг 2011, 15:30 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
Стоят не последние обновления (5.0) такого нет, после первого обновлю биллинг проверю |
Автор: | Ilshat [ 25 авг 2011, 16:12 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
пытаюсь повторить, но пока не выходит. баланс выводит правильно. у кого-то еще подобная ошибка вылазит? |
Автор: | Phricker [ 25 авг 2011, 16:45 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
Нормалек все Подписал договор абонента к рассылкам, запустил задачу вручную чтобы не ждать. Получил на почту Вложение: Вложение: 2011-08-25_144347.png [ 11.31 КБ | Просмотров: 3210 ] Код: Клиент: вер. 5.1 сборка 551 от 20.06.2011 17:03:38 os:Windows 7; java:Sun Microsystems Inc., v.1.6.0_26 Сервер: вер. 5.1 сборка 672 от 20.06.2011 17:03:07 os:Linux; java:Sun Microsystems Inc., v.1.6.0_22 У меня сборка сервера постарее. В конце месяца не хочу обновлять ибо знаю я вас бителовцев ![]() |
Автор: | Cromeshnic [ 26 авг 2011, 08:27 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
В проверочном скрипте делаю TimeUtils.clearCalendarHour(startMonth); - всё ок. |
Автор: | Phricker [ 26 авг 2011, 20:35 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
Сегодня обновил все Код: Клиент: вер. 5.1 сборка 584 от 24.08.2011 13:38:37 os:Windows 7; java:Sun Microsystems Inc., v.1.6.0_26 Сервер: вер. 5.1 сборка 705 от 24.08.2011 13:38:18 os:Linux; java:Sun Microsystems Inc., v.1.6.0_22 Данные за текущий месяц пришли в рассылке |
Автор: | Ilshat [ 29 авг 2011, 12:31 ] |
Заголовок сообщения: | Re: [BUG] Рассылка баланса работает неправильно |
мы, конечно, можем добавить эту строку: TimeUtils.clearCalendarHour(startMonth); но все же как-то странно, кроме вас, ни у кого подобная ошибка не выходит |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |