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/