[РЕШЕНО] Поиск не заданного значения.

Moderator: DenisBY

Locked
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

[РЕШЕНО] Поиск не заданного значения.

Post by Bloodice »

Необходимо осуществить поиск по не заданному значению.
Есть FreeTime, необходимо найти все заявки где данное значение не заданно.
Last edited by Bloodice on 05 Jun 2011, 12:30, edited 1 time in total.
yuri0001
Znuny superhero
Posts: 631
Joined: 17 Mar 2011, 14:40
Znuny Version: 5.0.6
Real Name: Yuri Kolesnikov
Location: Russia

Re: Поиск не заданного значения.

Post by yuri0001 »

А у Вас включен как атрибут поиска этот элемент в Ticket::Frontend::AgentTicketSearch###Defaults###TicketFreeTime"n" в SysConfig in Ticket -> Frontend::Agent::Ticket::ViewSearch?
Best regards Yuri Kolesnikov
OTRS 5.0.14, ITSM 5.0.14
SUSE 13.2, MariaDB 10.0.22(productive)
OTRS 5.0.14, ITSM 5.0.14(test)
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Выключено.
То есть задать значение по умолчанию и искать его? Поэкспериментируем.
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Хм, похоже я что то не так понял. Похоже этот параметр делает так что бы freetime было сразу включено при поиске, не пойму чем это может помочь.
yuri0001
Znuny superhero
Posts: 631
Joined: 17 Mar 2011, 14:40
Znuny Version: 5.0.6
Real Name: Yuri Kolesnikov
Location: Russia

Re: Поиск не заданного значения.

Post by yuri0001 »

Эти параметры задают наличие атрибута в списке атрибутов для поиска, как я понимаю, это первое, и второе - можно задать умалчиваемое значение для поиска. Кроме того в определении полей, можно задать умалчиваемое значение, скажем "пробел". Затем при поиске и искать заявки со значением поля - "пробел" - это, наверное и будет означать не назначенное значение. Для атрибутов типа "Дата/время" можно выбрать какое-то допустимое по формату, но не по смыслу значение. Тогда это и будет не назначенное значение по которому можно искать заявки у которых оно не заполнялось, если я правильно понял Ваш вопрос. :?
Best regards Yuri Kolesnikov
OTRS 5.0.14, ITSM 5.0.14
SUSE 13.2, MariaDB 10.0.22(productive)
OTRS 5.0.14, ITSM 5.0.14(test)
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Не понятно как задать значение по умолчанию для времени.
Ерунда получается. Такое бы нормально прокатило с FreeText. Для времени совершенно не подходит.

Единственное что пока приходит на ум, это задать не Time, а Text, но тогда появляются другие проблемы (нельзя выбрать диапазон как вариант).

Жду другие предложения.
yuri0001
Znuny superhero
Posts: 631
Joined: 17 Mar 2011, 14:40
Znuny Version: 5.0.6
Real Name: Yuri Kolesnikov
Location: Russia

Re: Поиск не заданного значения.

Post by yuri0001 »

Bloodice wrote:Не понятно как задать значение по умолчанию для времени.
Ерунда получается. Такое бы нормально прокатило с FreeText. Для времени совершенно не подходит.
Жду другие предложения.
Задать максимально или минимально возможное время, которое в здравом уме не должно быть в системе, но принимается как правильная дата и/или время
Best regards Yuri Kolesnikov
OTRS 5.0.14, ITSM 5.0.14
SUSE 13.2, MariaDB 10.0.22(productive)
OTRS 5.0.14, ITSM 5.0.14(test)
alexus
Znuny wizard
Posts: 380
Joined: 20 Sep 2010, 16:54
Znuny Version: OTRS 6 CE
Real Name: Alexey Yusov
Company: Radiant System Group s.r.o
Location: Prague
Contact:

Re: Поиск не заданного значения.

Post by alexus »

Можно сделать поле FreeTime обязательным для заполнения. Тогда и искать ничего не придется :lol: .
Alexey Yusov

Production: OTRS CE ITSM 6.0.28 on CentOS 7 + Apache 2.4 + MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator
RS4OTRS marketplace
Stay tuned on our Facebook
((OTRS)) Community Edition - what next?
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Не нравится мне этот "кривой" метод. Может, кто разработчикам написать, что бы поиск проапгрейдили (у самого не очень хороший английский)? Нужно добавить checkbox "Значение не задано".
alexus
Znuny wizard
Posts: 380
Joined: 20 Sep 2010, 16:54
Znuny Version: OTRS 6 CE
Real Name: Alexey Yusov
Company: Radiant System Group s.r.o
Location: Prague
Contact:

Re: Поиск не заданного значения.

Post by alexus »

Согласен отчасти про "кривизну". Но если вы ввели это значение, то зачем его оставлять пустым :-o? Объясните смысл этого поля для вашего случая.
Alexey Yusov

Production: OTRS CE ITSM 6.0.28 on CentOS 7 + Apache 2.4 + MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator
RS4OTRS marketplace
Stay tuned on our Facebook
((OTRS)) Community Edition - what next?
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Значение задается не везде, а только в определенных случаях. И заносятся эти данные существенно позже того как тикет закрыт.
То есть задаются параметры поиска, что бы выделить только определенную группу. Эту группу нужно отработать, выставив определенную дату (у меня случай когда нужно пометить, что по заявке сделаны выплаты (когда), соответственно поиск по Null означает отображение заявок по которым выплаты не произведены).
Last edited by Bloodice on 03 Jun 2011, 01:57, edited 1 time in total.
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Накодил сам, пришлось не в одном месте код дописывать, но все работает отлично. Как соберусь с силами попробую выложить код.
Bloodice
Znuny newbie
Posts: 17
Joined: 13 Jan 2011, 09:01
Znuny Version: 3.0.4

Re: Поиск не заданного значения.

Post by Bloodice »

Kernel/Output/HTML/Standard/AgentTicketSearch.dtl

Находим

Code: Select all

$Data{"TicketFreeTime1Start"} $Text{"and"} $Data{"TicketFreeTime1Stop"}
Добовляем перед

Code: Select all

<input type="checkbox" name="TicketFreeTime1Null" value="true"/>
Далее по аналогии для остальных, меняем только цифру

Kernel/System/Ticket.pm

Между

Code: Select all

for my $Number ( 1 .. 6 ) {

# get free time older than xxxx-xx-xx xx:xx date
вставляем

Code: Select all

        if ( $Param{ 'TicketFreeTime' . $Number . 'Null' } ) {
            $SQLExt .= " AND st.freetime$Number is Null ";
            next;
        }
Kernel/Modules/AgentTicketSearch.pm

Находим

Code: Select all

    # get search string params (get submitted params)
    else {
        for (
            qw(
Дописываем

TicketFreeTime1Null и тд


Kernel/System/Stats/Dynamic/TicketAccountedTime.pm

Code: Select all

sub _AllowedTicketSearchAttributes {
    my $Self = shift;

    my @Attributes = qw(
Дописываем

TicketFreeTime1Null и тд

Все это можно вынести в Custom
Locked