[5.1] Не работает метод getNoClosedTaskList

Простая система управления взаимодействием с клиентами.

[5.1] Не работает метод getNoClosedTaskList

Сообщение mikos » 20 июн 2012, 16:23

У класса ru.bitel.bgbilling.plugins.crm.server.dao.RegisterTaskManager не работает метод getNoClosedTaskList - выдает пустой список, хотя задачи открытые у договора есть. Пробовал даже их принимать - эффект тот же, пустой список на выходе метода.
Аватара пользователя
mikos
 
Сообщения: 774
Зарегистрирован: 23 мар 2009, 23:16
Откуда: St.Petersburg

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение stark » 20 июн 2012, 17:14

что возращает запрос

$this->bbcode_second_pass_code('', '
SELECT * FROM register_task WHERE cid=XXX AND status IN (0, 1)
')

где XXX - id договора.
stark
Разработчик
 
Сообщения: 8343
Зарегистрирован: 08 ноя 2007, 01:05
Откуда: Уфа

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение mikos » 20 июн 2012, 17:24

Задача на месте.

$this->bbcode_second_pass_code('', 'mysql> SELECT * FROM register_task WHERE cid=3964 AND status IN (0, 1);
+-------+------+------------+------+------+---------------------+----------+-----------+------------+---------------------+-----------+---------------------+--------+--------+-----------+---------------------+-----------------------------------------------------------------------------------------+----+------------+------+------------+
| id | cid | aobject_id | apid | type | open_dt | open_uid | accept_dt | accept_uid | close_dt | close_uid | lm_dt | lm_uid | status | processed | target_dt | comment | gr | resolution | prid | execute_dt |
+-------+------+------------+------+------+---------------------+----------+-----------+------------+---------------------+-----------+---------------------+--------+--------+-----------+---------------------+-----------------------------------------------------------------------------------------+----+------------+------+------------+
| 18901 | 3964 | 0 | 13 | 1 | 2012-06-19 20:01:58 | 0 | NULL | -10 | 2012-06-20 14:33:44 | 0 | 2012-06-20 14:29:18 | 5 | 0 | 0 | 2012-06-26 20:01:00 | Закрыто автоматически по отказу от подключения | 6 | | 0 | NULL |
+-------+------+------------+------+------+---------------------+----------+-----------+------------+---------------------+-----------+---------------------+--------+--------+-----------+---------------------+-----------------------------------------------------------------------------------------+----+------------+------+------------+
1 row in set (0.00 sec)')

Что еще интересно, так это иногда (через раз) получается вытащить список задач с помощью этого метода, когда перед его вызовом воспользоваться фильтром:

$this->bbcode_second_pass_code('', 'filter = new TaskFilter();
filter.cid = cid;
cnt = rtm.getTaskCount( filter );')

Вообще странности. По сути, я сейчас вообще никак не могу получить список задач для договора - ни фильтром, ни getNoClosedTaskList (
Аватара пользователя
mikos
 
Сообщения: 774
Зарегистрирован: 23 мар 2009, 23:16
Откуда: St.Petersburg

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение mikos » 20 июн 2012, 17:25

ru.bitel.bgbilling.plugins.crm вер. 5.1 сборка 185 от 21.01.2012 01:58:39
Аватара пользователя
mikos
 
Сообщения: 774
Зарегистрирован: 23 мар 2009, 23:16
Откуда: St.Petersburg

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение mikos » 20 июн 2012, 17:39

Правильно ли вызываю метод? Сейчас даже с фильтром ничего не выдает, хотя было несколько раз - возвращал результат.
Вызываю closeAllTasks из события "доп.действия" договора.

$this->bbcode_second_pass_code('', 'public void closeAllTasks( cid )
{

//
ctx = getContext();
con = ctx.con;
rtm = new RegisterTaskManager( con );

filter = new TaskFilter();
filter.cid = cid;
cnt = rtm.getTaskCount( filter );
print("getTaskCount="+cnt);
print("getNoClosedTaskList="+rtm.getNoClosedTaskList( cid ) );

for ( RegisterTask task : rtm.getNoClosedTaskList( cid ) ) {

print("task="+task);

// закрываем очередную задачу
task = closeTask( task, "Закрыто автоматически" );

rtm.updateTask( task );

}
}

public RegisterTask closeTask( RegisterTask task, String comment )
{
CloseTaskDate = new java.util.Date();

// закрываем задачу
task.setCloseUserID( 0 );
task.setCloseTime( CloseTaskDate );
task.setComment( comment );

return task;
}')

Лог выполнения

$this->bbcode_second_pass_code('', 'GENERATE_TIME: 20.06.12 15:37:08
EXECUTION_STOP_TIME: 20.06.12 15:37:08
PROCESS_TIME: 7

OUT:
getTaskCount=0
getNoClosedTaskList=[]')
Аватара пользователя
mikos
 
Сообщения: 774
Зарегистрирован: 23 мар 2009, 23:16
Откуда: St.Petersburg

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение mikos » 20 июн 2012, 17:45

Похоже проблема была в контексте. Стал передавать контекст из события в функцию closeAllTasks - находит задачи и даже меняет комментарий. Только почему-то не закрывает ее. Для закрытия отдельный метод есть какой-то?
Аватара пользователя
mikos
 
Сообщения: 774
Зарегистрирован: 23 мар 2009, 23:16
Откуда: St.Petersburg

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение mikos » 20 июн 2012, 19:31

Так и есть - разобрался во всем. Моя вина )

Напоследок такой вот метод отсутствует, по крайней мере у меня:

RegisterTask.getId()

В документации написано, что getID() устарел, использовать getId(), а его нет. Использую getID() - ругани на deprecated нет.

PS: Может обновиться?)
Аватара пользователя
mikos
 
Сообщения: 774
Зарегистрирован: 23 мар 2009, 23:16
Откуда: St.Petersburg

Re: [5.1] Не работает метод getNoClosedTaskList

Сообщение skn » 21 июн 2012, 19:30

страно, в коде метод RegisterTask.getId() есть...
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия


Вернуться в Плагин CRM

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

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

cron