NAME
    RT::Extension::MoveRules - control ticket movements between queues

DESCRIPTION
    If you move tickets between queues a lot then probably you want to
    control this process. This extension allows you to configure rules which
    are required to move a ticket from a queue to another queue, for example
    if custom field X is equal to Y then a ticket can be moved from queue A
    to B. As well you can define which fields should be set before move.

INSTALLATION
    This extension works with RT 3.8 and depends on RT::Condition::Complex.
    Otherwise installation process is usuall:

        perl Makefile.PL
        make
        make install

CONFIGURATION
    Extension is controlled with one config option @MoveRules with the
    following syntax:

        Set( @MoveRules,
            {
                From       => 'queue',
                To         => 'queue',
                Rule       => 'a rule',
                Condition  => 'a rule',
                ShowAction => 1/0,

            },
            ...
        );

  From and To
    These keys define queues either by name or id. Both are mandatory
    options. Example:

        Set( @MoveRules,
            { From => 'X', To => 'Y' },
        );

    Such configuration allows users to move tickets from queue "X" to "Y",
    but not any other move.

  ShowAction
    Boolean option that controls whether action for this move is displayed
    in the action menu (Open, Take) or not. By default no actions are
    displayed.

  Rule
    Rule is a condition defining additional limits on the move. This is a
    string with syntax implemented by RT::Condition::Complex and
    RT::Extension::ColumnMap. Syntax is close to TicketSQL, slightly
    different, some examples:

        Rule => 'Subject = "good" AND Status = "open"',

  Condition
    Condition is very similar to "Rule". The difference is that users can
    not see a condition until they try to move a ticket.

    Moving limits between condition is up to you, but probably condition is
    better to leave with checks if a field is empty or not. For example:

        Condition => 'CustomField{"X"} is not empty',

LICENSE
    Under the same terms as perl itself.

AUTHOR
    Ruslan Zakirov <Ruslan.Zakirov@gmail.com>

