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/ |