forum.bitel.ru
http://forum.bitel.ru/

Помогите с событием закрытие задача
http://forum.bitel.ru/viewtopic.php?f=21&t=2782
Страница 1 из 1

Автор:  Евгений [ 24 авг 2009, 15:08 ]
Заголовок сообщения:  Помогите с событием закрытие задача

Добрый день.

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

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 )

Автор:  stark [ 24 авг 2009, 16:22 ]
Заголовок сообщения: 

там нужен Calendar а не date. Смотреит пописание этого класса

Автор:  skn [ 24 авг 2009, 16:33 ]
Заголовок сообщения: 

замените

Код:
EventDate = new Date();


на

Код:
EventDate = new GregorianCalendar();

Автор:  Евгений [ 25 авг 2009, 00:54 ]
Заголовок сообщения: 

Еще вопрос - по тому же скриптику...
Выставлен на событие - договор создан.

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 ( ) )

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

Автор:  skn [ 25 авг 2009, 01:11 ]
Заголовок сообщения: 

заменить

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


на

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

Автор:  Евгений [ 25 авг 2009, 01:55 ]
Заголовок сообщения: 

заменил - ошибку понял.
спасибо.

на 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 ]
Заголовок сообщения: 

И еще по одному скриптику вопрос - примеры как видите беру из вики...

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 ]
Заголовок сообщения: 

И еще вопрос:

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 )

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

Автор:  stark [ 25 авг 2009, 12:22 ]
Заголовок сообщения: 

Евгений писал(а):
заменил - ошибку понял.
спасибо.

на 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, там нужно использовать другой вместо него - смотрите описание

Автор:  stark [ 25 авг 2009, 12:25 ]
Заголовок сообщения: 

Евгений писал(а):

Ругается на 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 ]
Заголовок сообщения: 

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

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

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

Автор:  restart [ 25 авг 2009, 17:13 ]
Заголовок сообщения: 

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

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

Автор:  Евгений [ 25 авг 2009, 18:21 ]
Заголовок сообщения: 

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 )

????

Автор:  skn [ 25 авг 2009, 18:28 ]
Заголовок сообщения: 

а что вы этим пытаетесь сделать
Код:
d = c.getTime(contract_start_date); // d имеет тип Date


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

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


или

Код:
c.setTime(contract_start_date);

Автор:  Евгений [ 26 авг 2009, 03:29 ]
Заголовок сообщения: 

если делаю
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 ]
Заголовок сообщения: 

up ...

Автор:  stark [ 26 авг 2009, 11:01 ]
Заголовок сообщения: 

Евгений писал(а):
если делаю
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() );

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

Автор:  restart [ 26 авг 2009, 11:44 ]
Заголовок сообщения: 

Я так понял, что Вам нужно contract_start_date преобразовать в Date, тогда вызывайте просто:
Код:
csd = contract_start_date.getTime();

Автор:  Евгений [ 26 авг 2009, 11:53 ]
Заголовок сообщения: 

Спасибо.
не успел ответить на предыдущее сообщение что помогло!

из всего мне было достаточно 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 ]
Заголовок сообщения: 

up .

Автор:  skn [ 26 авг 2009, 17:44 ]
Заголовок сообщения: 

ну вроде достаточно подробно написано

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

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

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/