forum.bitel.ru http://forum.bitel.ru/ |
|
Изменение статуса договора [6.2] http://forum.bitel.ru/viewtopic.php?f=19&t=10526 |
Страница 1 из 1 |
Автор: | borin [ 19 май 2015, 10:28 ] |
Заголовок сообщения: | Изменение статуса договора [6.2] |
Приветствую! Теперь не могу изменить статус договора. Справа запись есть, а слева не поменялось. Код: ServerContext context = ServerContext.get();
ContractStatusMonitorService contractStatusMonitorService = context.getService(ContractStatusMonitorService.class, 0); contractStatusMonitorService.changeContractStatus(new int[]{bgContract.getId()}, 4, new Date(), null, "тест"); |
Автор: | borin [ 19 май 2015, 10:32 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
Код: Клиент: вер. 6.2.707 / 07.05.2015 21:41:04
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45 Сервер: вер. 6.2.871 / 07.05.2015 21:41:12 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_40 |
Автор: | stark [ 19 май 2015, 11:32 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
Кнопку "Обновить" пробовали нажимать сверху? В логах сервера ошибок нет ? |
Автор: | stark [ 19 май 2015, 11:35 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
покажите еще историю изменения статусов снизу. |
Автор: | stark [ 19 май 2015, 11:36 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
Ошибка у нас не воспоизводится . Может быть вчера этот статус поменяли ? Тогда должна быть запущена задача установки статусов. |
Автор: | borin [ 19 май 2015, 11:51 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
stark писал(а): Кнопку "Обновить" пробовали нажимать сверху? В логах сервера ошибок нет ? Пробовал, нажимаю обновить, не помогает. Вложение: log.zip stark писал(а): покажите еще историю изменения статусов снизу. Вложение: status.png stark писал(а): Ошибка у нас не воспоизводится . Может быть вчера этот статус поменяли ? Тогда должна быть запущена задача установки статусов. После запуска задачи установки статусов, статус изменился. Но при изменении статуса через клиент BGBilling, эту задачу не надо запускать. |
Автор: | borin [ 19 май 2015, 12:01 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
Обновился, проблема осталась. Код: Клиент: вер. 6.2.709 / 15.05.2015 13:05:45
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45 Сервер: вер. 6.2.875 / 18.05.2015 17:26:02 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_40 |
Автор: | dimOn [ 19 май 2015, 12:42 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
ну шедулер то запущен при этом? |
Автор: | stark [ 19 май 2015, 12:48 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
borin писал(а): stark писал(а): Кнопку "Обновить" пробовали нажимать сверху? В логах сервера ошибок нет ? Пробовал, нажимаю обновить, не помогает. Вложение: log.zip stark писал(а): покажите еще историю изменения статусов снизу. Вложение: status.png stark писал(а): Ошибка у нас не воспоизводится . Может быть вчера этот статус поменяли ? Тогда должна быть запущена задача установки статусов. После запуска задачи установки статусов, статус изменился. Но при изменении статуса через клиент BGBilling, эту задачу не надо запускать. Если меняете сегодняшним и вчерашним числом, то да , не нужно. А если будущим то нужно. |
Автор: | borin [ 19 май 2015, 12:56 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
Нашел в чем причина!!! Сначала написал простенький скрипт для проверки: Код: package ru.borin.atirra; import bitel.billing.server.contract.bean.Contract; import bitel.billing.server.contract.bean.ContractManager; import ru.bitel.bgbilling.kernel.container.managed.ServerContext; import ru.bitel.bgbilling.kernel.contract.status.common.service.ContractStatusMonitorService; import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import java.sql.Connection; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class Test3 extends GlobalScriptBase { @Override public void execute( Setup setup, ConnectionSet connectionSet ) throws Exception { Connection connection = connectionSet.getConnection(); ContractManager cm = new ContractManager(connection); Calendar calendar = new GregorianCalendar(2009, 10, 12); Contract contract = cm.createFromPattern(1, "100500", calendar, "12345"); ServerContext context = ServerContext.get(); ContractStatusMonitorService contractStatusMonitorService = context.getService(ContractStatusMonitorService.class, 0); contractStatusMonitorService.changeContractStatus(new int[]{contract.getId()}, 4, new Date(), null, "тест"); } } И чудо произошло, создался договор и статус стоял верный. А скрипт который создает договор, добавляет платежи, расходы, устанавливает тариф, изменяет параметры договора. Создает договор ноо статус не меняется, как видно на скриншоте выше. Тогда я изменение статуса поместил в самый конец добавления договора и чудо все работает. Решил выяснить где происходит ошибка , оказалось если статус изменить до cm.updateContract(contract);, то не работает, а если после то работает. Пример кода который демонстрирует ошибку. Код: package ru.borin.atirra;
import bitel.billing.server.contract.bean.Contract; import bitel.billing.server.contract.bean.ContractManager; import ru.bitel.bgbilling.kernel.container.managed.ServerContext; import ru.bitel.bgbilling.kernel.contract.status.common.service.ContractStatusMonitorService; import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import java.sql.Connection; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class Test3 extends GlobalScriptBase { @Override public void execute( Setup setup, ConnectionSet connectionSet ) throws Exception { Connection connection = connectionSet.getConnection(); ContractManager cm = new ContractManager(connection); Calendar calendar = new GregorianCalendar(2009, 10, 12); Contract contract = cm.createFromPattern(1, "100500", calendar, "12345"); ServerContext context = ServerContext.get(); ContractStatusMonitorService contractStatusMonitorService = context.getService(ContractStatusMonitorService.class, 0); contractStatusMonitorService.changeContractStatus(new int[]{contract.getId()}, 4, new Date(), null, "тест"); contract.setComment("Иванов Иван Иванович"); cm.updateContract(contract); } } |
Автор: | dimOn [ 19 май 2015, 13:26 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
Ну с этого и надо было начинать - что у вас скрипт какой-то итд. Ну это понятно почему так не работает и статус перетирается обратно. Пояснять нужно? |
Автор: | stark [ 19 май 2015, 13:30 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
в вашем объекте Код: Contract contract стоит старый статус, его вы не обновляете , он и попадет в базу, перетирая уже установленный правильный. |
Автор: | borin [ 19 май 2015, 14:04 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
dimOn писал(а): Ну с этого и надо было начинать - что у вас скрипт какой-то итд. Ну это понятно почему так не работает и статус перетирается обратно. Пояснять нужно? stark писал(а): в вашем объекте Код: Contract contract стоит старый статус, его вы не обновляете , он и попадет в базу, перетирая уже установленный правильный. Спасибо! Что то я упустил что в Contarct содержится статус. ![]() |
Автор: | stark [ 19 май 2015, 14:21 ] |
Заголовок сообщения: | Re: Изменение статуса договора [6.2] |
borin писал(а): dimOn писал(а): Ну с этого и надо было начинать - что у вас скрипт какой-то итд. Ну это понятно почему так не работает и статус перетирается обратно. Пояснять нужно? stark писал(а): в вашем объекте Код: Contract contract стоит старый статус, его вы не обновляете , он и попадет в базу, перетирая уже установленный правильный. Спасибо! Что то я упустил что в Contarct содержится статус. ![]() поменяйте местам, так правильнее. вначале сохранение договора, потом смена статуса. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |