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) ему приходит ерунда.

Конкретнее - ему приходят данные за следующий месяц, хотя в заголовке указан текущий:
Вложение:
Комментарий к файлу: e-mail
email-balance.jpg
email-balance.jpg [ 29.38 КБ | Просмотров: 3241 ]

Вложение:
client-balance.jpg
client-balance.jpg [ 45.72 КБ | Просмотров: 3241 ]


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="ООО &quot;Рога и Копыта&quot;" 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="ООО &quot;Рога и Копыта&quot;" 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_144315.png
2011-08-25_144315.png [ 13 КБ | Просмотров: 3210 ]

Вложение:
2011-08-25_144347.png
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


У меня сборка сервера постарее. В конце месяца не хочу обновлять ибо знаю я вас бителовцев :lol:

Автор:  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/