BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 21:22

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 21 ] 
Автор Сообщение
СообщениеДобавлено: 24 авг 2009, 15:08 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
Добрый день.

При закрытии задачи срабатывает событие - которое должно поменять статус договора - что не так?
Помогите.

cid = event.getContractID();
print("cid");
print(cid);

csm = new ContractStatusManager(con);

EventDate = new Date();
print("EventDate");
print(EventDate);

cs = new ContractStatus();
cs.setContractId(cid);
cs.setDate1(EventDate);
cs.setStatus(0);
cs.setComment("АвтоПодключен! т.е. задание на подключку закрыто!");
csm.changeStatus(cs);



Ошибка:
Sourced file: Function [id:14; title:50 - Закрытие задачи на подключение!] : Error in method invocation: Method setDate1( java.util.Date ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 23 : in file: Function [id:14; title:50 - Закрытие задачи на подключение!] : cs .setDate1 ( EventDate )

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 авг 2009, 16:22 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
там нужен Calendar а не date. Смотреит пописание этого класса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 авг 2009, 16:33 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
замените

Код:
EventDate = new Date();


на

Код:
EventDate = new GregorianCalendar();


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 00:54 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
Еще вопрос - по тому же скриптику...
Выставлен на событие - договор создан.

import bitel.billing.server.script.bean.event.*;
import bitel.billing.server.contract.bean.*;

cid = event.getContractID();
contract = event.getContract();
csm = new ContractStatusManager(con);
cs = new ContractStatus();
cs.setContractId(cid);
cs.setDate1(contract.getDate1());
cs.setStatus(4);
cs.setComment("looking-for-connection");
csm.changeStatus(cs);

В таком виде скрипт срабатывает, но ругается:
Function [id:10; title:10 - Приостановка договора]: using deprecated method [public java.util.Calendar bitel.billing.server.contract.bean.Contract.getDate1()]

Если я меняю cs.setDate1(contract.getDate1());
на
cs.setDate1(contract.getDateFrom());
то не работает и вылетает ошибка
Sourced file: Function [id:10; title:10 - Приостановка договора] : Error in method invocation: Method setDate1( java.sql.Date ) not found in class'bitel.billing.server.contract.bean.ContractStatus' : at Line: 19 : in file: Function [id:10; title:10 - Приостановка договора] : cs .setDate1 ( contract .getDateFrom ( ) )

Помогите в этом случае...

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 01:11 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
заменить

Код:
cs.setDate1(contract.getDate1());


на

Код:
date1 = new GregorianCalendar();
date1.setTime( contract.getDateFrom() );
cs.setDate1( date1 );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 01:55 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
заменил - ошибку понял.
спасибо.

на getdate1 - не ругается...
но теперь ругается на

Function [id:10; title:10 - Приостановка договора]: using deprecated method [public void bitel.billing.server.contract.bean.ContractStatusManager.changeStatus(bitel.billing.server.contract.bean.ContractStatus)]

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 03:19 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
И еще по одному скриптику вопрос - примеры как видите беру из вики...

import java.sql.*;
import java.util.*;

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.contract.object.bean.*;
import ru.bitel.bgbilling.plugins.crm.server.dao.*;
import ru.bitel.bgbilling.plugins.crm.server.model.*;
import ru.bitel.bgbilling.plugins.crm.common.model.*;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

//Параметр, в котором прописана дата назначенной подключки (может быть пустой)
PARAM_START_DATE = 71;

if (event.getActionId() != 20)
{
print("skipped");
return;
}

EventDate = new Date();
cid = event.getContractID();
contract_param_utils = new ContractParamUtils( con );
contract_start_date = contract_param_utils.getDateParam( cid, PARAM_START_DATE );

//Ищем задачу на подключение
filter = new TaskFilter(); //
filter.cid = cid;
filter.types = Integer.toString(9); //
register_task_manager = new RegisterTaskManager(con);
task_count = register_task_manager.getTaskCount(filter);
if (task_count == 0) // Проверка на существование задачи, если нет то в путь!!!
{
RegisterTask task = new RegisterTask();
task.setContractID( cid );
task.setTypeID(9); // Задача с кодом 9 - Подключение КТВ (в офисе)
task.setGroupID(9); // Группа решения 9 - ТО монтажники 1
task.setOpenUserID( 0 ) ; // Пользователь, открывший задачу 0 - Сервер, надо сделать тек. оператора
task.setOpenTime( EventDate ); // Задача создана - текущая дата!!!
task.setComment( GetCRMComment() ); // Комментарий к задаче - определен выше
task.setAddressParamID( 46 ); // Адрес установки - параметр договора 46
task.setTargetDate(contract_start_date); //
register_task_manager.updateTask( "new", task ); // Создать задачу!!!
};

Ругается на task.setTargetDate(contract_start_date), из выше спрашиваемых вопросов понял что разница в календарях.
1 - Как преобразовать Gregorian в Date?
и
2 - task.setOpenUserID( 0 ) ; - как подставить текущего пользователя?

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 03:44 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
И еще вопрос:

import java.sql.*;
import java.util.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*;
import bitel.billing.server.script.bean.event.*;

import ru.bitel.bgbilling.plugins.crm.server.dao.*;
import ru.bitel.bgbilling.plugins.crm.server.model.*;
import ru.bitel.bgbilling.plugins.crm.common.model.*;

cid = event.getContractID();
task = event.getTask();
report = event.getReport();

serviceManager = new ContractServiceManager( con );
cu = new ContractUtils( con );
cpu = new ContractParamUtils( con );

DATE_PARAM = 71;
contract_start_date = cpu.getDateParam( cid, DATE_PARAM );

if( task.getTypeID() != 9 && task.getTypeID() != 10 )
{
print( "Это не подключка!!!" );
return;
}
if( task.getStatus() != RegisterTask.STATUS_CLOSED )
{
report.append( cu.getContractTitle( cid, true ) );
report.append( " => задача не закрыта\n" );
return;
}

date = task.getExecuteDate();
if( date == null )
{
report.append( cu.getContractTitle( cid, true ) );
report.append( " => не установлена дата исполнения\n" );

error( "executeDate == null" );
return;
}

serviceManager = serviceManager.getContractServiceList( cid, date );
if( serviceManager.size() > 0 )
{
report.append( cu.getContractTitle( cid, true ) );
report.append( " => у договора уже стоит услуга\n" );

return;
}

// установка даты подключения
if( cpu.getDateParam( cid, DATE_PARAM ) == null )
{
cpu.setDateParam( cid, DATE_PARAM, date );
}

if( cpu.getDateParam( cid, DATE_PARAM ) != date )
{
cpu.setDateParam( cid, DATE_PARAM, date );
}

task.setProcessed( true );

Вопрос:
1 - report = event.getReport(); - ругается Sourced file: Function [id:14; title:50 - Закрытие задачи на подключение!] : Error in method invocation: Method getReport() not found in class'ru.bitel.bgbilling.plugins.crm.server.bean.event.RegisterTaskClosedEvent' : at Line: 12 : in file: Function [id:14; title:50 - Закрытие задачи на подключение!] : event .getReport ( )
2 - serviceManager = serviceManager.getContractServiceList( cid, date ); - ругается - Sourced file: Function [id:14; title:50 - Закрытие задачи на подключение!] : Error in method invocation: Method getContractServiceList( int, java.util.Date ) not found in class'bitel.billing.server.contract.bean.ContractServiceManager' : at Line: 50 : in file: Function [id:14; title:50 - Закрытие задачи на подключение!] : serviceManager .getContractServiceList ( cid , date )

Прошу помощи!

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 12:22 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Евгений писал(а):
заменил - ошибку понял.
спасибо.

на getdate1 - не ругается...
но теперь ругается на

Function [id:10; title:10 - Приостановка договора]: using deprecated method [public void bitel.billing.server.contract.bean.ContractStatusManager.changeStatus(bitel.billing.server.contract.bean.ContractStatus)]


используете устаревший метод changeStatus, там нужно использовать другой вместо него - смотрите описание


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 12:25 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Евгений писал(а):

Ругается на task.setTargetDate(contract_start_date), из выше спрашиваемых вопросов понял что разница в календарях.
1 - Как преобразовать Gregorian в Date?

вызвать метод getTime() у календаря
Евгений писал(а):
и
2 - task.setOpenUserID( 0 ) ; - как подставить текущего пользователя?

http://bgbilling.ru/forum/viewtopic.php ... 2%E5%EB%FC


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 16:49 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
"используете устаревший метод changeStatus, там нужно использовать другой вместо него - смотрите описание"
- почитал - поправил - спасибо!

- про текущего пользователя - почитал - не протестировал
спасибо.

- "вызвать метод getTime() у календаря "
можно по gettime - примерчик???

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 17:13 
Не в сети
Аватара пользователя

Зарегистрирован: 19 мар 2009, 16:15
Сообщения: 210
Откуда: Уфа
Карма: 27
Евгений писал(а):
- "вызвать метод getTime() у календаря "
можно по gettime - примерчик???

Код:
c = new GregorianCalendar(); // c имеет тип GregorianCalendar
d = c.getTime(); // d имеет тип Date


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 18:21 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
PARAM_START_DATE = 71;
cid = event.getContractID();
contract_param_utils = new ContractParamUtils( con );
contract_start_date = contract_param_utils.getDateParam( cid, PARAM_START_DATE );
c = new GregorianCalendar(); // c имеет тип GregorianCalendar
d = c.getTime(contract_start_date); // d имеет тип Date

Вылетает ошибка...

Sourced file: Function [id:13; title:40 - Добавление договора в очередь "Подключение КТВ (в офисе)"] : Error in method invocation: Method getTime( java.util.GregorianCalendar ) not found in class'java.util.GregorianCalendar' : at Line: 75 : in file: Function [id:13; title:40 - Добавление договора в очередь "Подключение КТВ (в офисе)"] : c .getTime ( contract_start_date )

????

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 авг 2009, 18:28 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
а что вы этим пытаетесь сделать
Код:
d = c.getTime(contract_start_date); // d имеет тип Date


тут возможно или

Код:
d = c.getTime();


или

Код:
c.setTime(contract_start_date);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 03:29 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
если делаю
c.setTime(contract_start_date);
то валится
Error in method invocation: Method setTime( java.util.GregorianCalendar ) not found in class'java.util.GregorianCalendar' : at Line: 77 : in file: Function [id:13; title:40 - Добавление договора в очередь "Подключение КТВ (в офисе)"] : c .setTime ( contract_start_date )

:((((((

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 10:25 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
up ...

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 11:01 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Евгений писал(а):
если делаю
c.setTime(contract_start_date);
то валится
Error in method invocation: Method setTime( java.util.GregorianCalendar ) not found in class'java.util.GregorianCalendar' : at Line: 77 : in file: Function [id:13; title:40 - Добавление договора в очередь "Подключение КТВ (в офисе)"] : c .setTime ( contract_start_date )

:((((((


ну вообще то в GregorianCalendar надо давать Date . т.е c.setTime(contract_start_date.getTime() );

только нужно ли вам перегонять из одного календаря в другой таким образом ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 11:44 
Не в сети
Аватара пользователя

Зарегистрирован: 19 мар 2009, 16:15
Сообщения: 210
Откуда: Уфа
Карма: 27
Я так понял, что Вам нужно contract_start_date преобразовать в Date, тогда вызывайте просто:
Код:
csd = contract_start_date.getTime();


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 11:53 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
Спасибо.
не успел ответить на предыдущее сообщение что помогло!

из всего мне было достаточно contract_start_date.getTime()

Спасибо!

И еще вопрос - оставшийся без ответа:

import java.sql.*;
import java.util.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*;
import bitel.billing.server.script.bean.event.*;

import ru.bitel.bgbilling.plugins.crm.server.dao.*;
import ru.bitel.bgbilling.plugins.crm.server.model.*;
import ru.bitel.bgbilling.plugins.crm.common.model.*;

cid = event.getContractID();
task = event.getTask();
report = event.getReport();

serviceManager = new ContractServiceManager( con );
cu = new ContractUtils( con );
cpu = new ContractParamUtils( con );

DATE_PARAM = 71;
contract_start_date = cpu.getDateParam( cid, DATE_PARAM );

if( task.getTypeID() != 9 && task.getTypeID() != 10 )
{
print( "Это не подключка!!!" );
return;
}
if( task.getStatus() != RegisterTask.STATUS_CLOSED )
{
report.append( cu.getContractTitle( cid, true ) );
report.append( " => задача не закрыта\n" );
return;
}

date = task.getExecuteDate();
if( date == null )
{
report.append( cu.getContractTitle( cid, true ) );
report.append( " => не установлена дата исполнения\n" );

error( "executeDate == null" );
return;
}

serviceManager = serviceManager.getContractServiceList( cid, date );
if( serviceManager.size() > 0 )
{
report.append( cu.getContractTitle( cid, true ) );
report.append( " => у договора уже стоит услуга\n" );

return;
}

// установка даты подключения
if( cpu.getDateParam( cid, DATE_PARAM ) == null )
{
cpu.setDateParam( cid, DATE_PARAM, date );
}

if( cpu.getDateParam( cid, DATE_PARAM ) != date )
{
cpu.setDateParam( cid, DATE_PARAM, date );
}

task.setProcessed( true );

Вопрос:
1 - report = event.getReport(); - ругается Sourced file: Function [id:14; title:50 - Закрытие задачи на подключение!] : Error in method invocation: Method getReport() not found in class'ru.bitel.bgbilling.plugins.crm.server.bean.event.RegisterTaskClosedEvent' : at Line: 12 : in file: Function [id:14; title:50 - Закрытие задачи на подключение!] : event .getReport ( )
2 - serviceManager = serviceManager.getContractServiceList( cid, date ); - ругается - Sourced file: Function [id:14; title:50 - Закрытие задачи на подключение!] : Error in method invocation: Method getContractServiceList( int, java.util.Date ) not found in class'bitel.billing.server.contract.bean.ContractServiceManager' : at Line: 50 : in file: Function [id:14; title:50 - Закрытие задачи на подключение!] : serviceManager .getContractServiceList ( cid , date )

Прошу помощи!

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 17:38 
Не в сети

Зарегистрирован: 24 сен 2008, 12:50
Сообщения: 101
Откуда: Мурманск
Карма: 0
up .

_________________
Лучше царствовать в аду, чем служить на небесах!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2009, 17:44 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
ну вроде достаточно подробно написано

1) у event нет метода getReport();
2) у serviceManager нет метода getContractServiceList( cid, date );

чего вы от нас ждете?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.496s | 60 Queries | GZIP : On ]