[otrs-cvs] otrs/Kernel/System/ProcessManagement/TransitionAction TicketTitleSet.pm, NONE, 1.1
"CVS commits notifications of OTRS.org" <[email protected]>
| Newsgroups | gmane.comp.otrs.cvs |
|---|---|
| Message-ID | <[email protected]> |
Comments:
Update of /home/cvs/otrs/Kernel/System/ProcessManagement/TransitionAction
In directory lancelot:/tmp/cvs-serv30710/Kernel/System/ProcessManagement/TransitionAction
Added Files:
TicketTitleSet.pm
Log Message:
Initial version, thanks to NL and MB.
Author: cr
--- NEW FILE: TicketTitleSet.pm ---
# --
# Kernel/System/ProcessManagement/TransitionAction/TicketTitleSet.pm - A Module to set the title of a process ticket
# Copyright (C) 2001-2013 OTRS AG, http://otrs.org/
# --
# $Id: TicketTitleSet.pm,v 1.1 2013/01/11 18:53:34 cr Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
package Kernel::System::ProcessManagement::TransitionAction::TicketTitleSet;
use strict;
use warnings;
use Kernel::System::VariableCheck qw(:all);
use utf8;
use vars qw($VERSION);
$VERSION = qw($Revision: 1.1 $) [1];
=head1 NAME
Kernel::System::ProcessManagement::TransitionAction::TicketTitleSet - A Module to set the title of a Ticket
=head1 SYNOPSIS
All TicketTitleSet functions.
=head1 PUBLIC INTERFACE
=over 4
=cut
=item new()
create an object
use Kernel::Config;
use Kernel::System::Encode;
use Kernel::System::Log;
use Kernel::System::Time;
use Kernel::System::Main;
use Kernel::System::DB;
use Kernel::System::Ticket;
use Kernel::System::ProcessManagement::TransitionAction::TicketTitleSet;
my $ConfigObject = Kernel::Config->new();
my $EncodeObject = Kernel::System::Encode->new(
ConfigObject => $ConfigObject,
);
my $LogObject = Kernel::System::Log->new(
ConfigObject => $ConfigObject,
EncodeObject => $EncodeObject,
);
my $TimeObject = Kernel::System::Time->new(
ConfigObject => $ConfigObject,
LogObject => $LogObject,
);
my $MainObject = Kernel::System::Main->new(
ConfigObject => $ConfigObject,
EncodeObject => $EncodeObject,
LogObject => $LogObject,
);
my $DBObject = Kernel::System::DB->new(
ConfigObject => $ConfigObject,
EncodeObject => $EncodeObject,
LogObject => $LogObject,
MainObject => $MainObject,
);
my $TicketObject = Kernel::System::Ticket->new(
ConfigObject => $ConfigObject,
LogObject => $LogObject,
DBObject => $DBObject,
MainObject => $MainObject,
TimeObject => $TimeObject,
EncodeObject => $EncodeObject,
);
my $TicketTitleSetActionObject = Kernel::System::ProcessManagement::TransitionAction::TicketTitleSet->new(
ConfigObject => $ConfigObject,
LogObject => $LogObject,
EncodeObject => $EncodeObject,
DBObject => $DBObject,
MainObject => $MainObject,
TimeObject => $TimeObject,
TicketObject => $TicketObject,
);
=cut
sub new {
my ( $Type, %Param ) = @_;
# allocate new hash for object
my $Self = {};
bless( $Self, $Type );
# get needed objects
for my $Needed (
qw(ConfigObject LogObject EncodeObject DBObject MainObject TimeObject TicketObject)
)
{
die "Got no $Needed!" if !$Param{$Needed};
$Self->{$Needed} = $Param{$Needed};
}
return $Self;
}
=item Run()
Run Data
my $TicketTitleSetResult = $TicketTitleSetActionObject->Run(
UserID => 123,
Ticket => \%Ticket, # required
Config => {
Title => 'Some ticket title',
}
);
Ticket contains the result of TicketGet including DynamicFields
Config is the Config Hash stored in a Process::TransitionAction's Config key
Returns:
$TicketTitleSetResult = 1; # 0
=cut
sub Run {
my ( $Self, %Param ) = @_;
for my $Needed (qw(UserID Ticket Config)) {
if ( !defined $Param{$Needed} ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Need $Needed!",
);
return;
}
}
# Check if we have Ticket to deal with
if ( !IsHashRefWithData( $Param{Ticket} ) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Ticket has no values!",
);
return;
}
# Check if we have a ConfigHash
if ( !IsHashRefWithData( $Param{Config} ) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Config has no values!",
);
return;
}
# Check for required paramerters in ConfigHash
if ( !defined $Param{Config}->{Title} ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "No Title configured!",
);
return;
}
my $Success;
if (
$Param{Config}->{Title} ne $Param{Ticket}->{Title}
)
{
$Success = $Self->{TicketObject}->TicketTitleUpdate(
Title => $Param{Config}->{Title},
TicketID => $Param{Ticket}->{TicketID},
UserID => $Param{UserID},
);
}
else {
# data is the same as in ticket nothing to do
$Success = 1;
}
if ( !$Success ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => 'Ticket title could not be updated for Ticket: '
. $Param{Ticket}->{TicketID} . '!',
);
return;
}
return 1;
}
1;
=back
=head1 TERMS AND CONDITIONS
This software is part of the OTRS project (L<http://otrs.org/>).
This software comes with ABSOLUTELY NO WARRANTY. For details, see
the enclosed file COPYING for license information (AGPL). If you
did not receive this file, see L<http://www.gnu.org/licenses/agpl.txt>.
=head1 VERSION
$Revision: 1.1 $ $Date: 2013/01/11 18:53:34 $
=cut
---------------------------------------------------------------------
OTRS mailing list: cvs-log - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/cvs-log
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/cvs-log