Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use lib '/usr/share/request-tracker4/lib';
- use strict;
- use warnings;
- use utf8;
- use RT;
- use RT::Ticket;
- use MIME::Entity;
- use CGI;
- use Encode;
- my $cgi = CGI->new;
- sub endScript
- {
- my ($code, $message) = @_;
- print "ResultCode=$code\n";
- print "ResultMessage=$message\n";
- exit;
- }
- print $cgi->header(
- -type => 'text/plain',
- -charset => 'utf-8');
- my $OrderAccount = decode("utf8", $cgi->param('OrderAccount'));
- my $OrderId = decode("utf8", $cgi->param('OrderId'));
- my $CustName = decode("utf8", $cgi->param('CustName'));
- my $LeasingCondition = decode("utf8", $cgi->param('LeasingCondition'));
- my $Amount = decode("utf8", $cgi->param('Amount'));
- my $VB1 = decode("utf8", $cgi->param('VB1'));
- my $VB2 = decode("utf8", $cgi->param('VB2'));
- my $Requestor = decode("utf8", $cgi->param('Requestor'));
- my $DataAreaId = decode("utf8", $cgi->param('DataAreaId'));
- my $Queue = decode("utf8", $cgi->param('Queue'));
- endScript(-1, "OrderAccount nicht angegeben.") unless $OrderAccount;
- endScript(-2, "OrderId nicht angegeben.") unless $OrderId;
- endScript(-3, "Requestor nicht angegeben.") unless $Requestor;
- endScript(-4, "DataAreaId nicht angegeben.") unless $DataAreaId;
- endScript(-5, "Queue nicht angegeben.") unless $Queue;
- endScript(-6, "CustName nicht angegeben.") unless $CustName;
- endScript(-7, "LeasingCondition nicht angegeben.") unless $LeasingCondition;
- endScript(-8, "Amount nicht angegeben.") unless $Amount;
- endScript(-9, "VB1 nicht angegeben.") unless $VB1;
- endScript(-10, "VB2 nicht angegeben.") unless $VB2;
- RT::LoadConfig();
- RT::Init();
- my $subject = "$DataAreaId - $OrderAccount - $OrderId - $LeasingCondition";
- my $tickets = RT::Tickets->new($RT::SystemUser);
- $tickets->LimitQueue( VALUE => $Queue );
- $tickets->LimitStatus( VALUE => 'new' );
- $tickets->LimitStatus( VALUE => 'open' );
- $tickets->LimitSubject( OPERATOR => '=', VALUE => $subject );
- $tickets->OrderBy( FIELD => 'Id', ORDER => 'DESC' );
- my $ticket = $tickets->First;
- if (! $ticket)
- {
- $ticket = new RT::Ticket($RT::SystemUser);
- my $msg = "Ein Leasing-Auftrag wurde erfasst:\n\n"
- . "Auftragsnummer : $OrderId\n"
- . "Auftragskonto : $OrderAccount\n"
- . "Kunde : $CustName\n"
- . "Gesamtwert : $Amount (ohne Verbrauchsmaterialien)\n"
- . "Leasing-Angebot : $LeasingCondition\n"
- . "VB1 : $VB1\n"
- . "VB2 : $VB2\n";
- my %values = (
- Queue => $Queue,
- Subject => $subject,
- Requestor => $Requestor,
- MIMEObj => MIME::Entity->build( Data => $msg, Type => "text/plain")
- );
- my ($id, $transactionid, $errmsg) = $ticket->Create(%values);
- endScript(-256, $errmsg) unless $id;
- print "ID=$id\n";
- }
- else {
- print "ID=", $ticket->id, "\n";
- if ($ticket->RequestorAddresses !~ /$Requestor/i) {
- my ($result, $errmsg) = $ticket->AddWatcher( Type => 'Requestor', Email => $Requestor );
- endScript(-257, $errmsg) unless $result;
- }
- $ticket->SetTold;
- }
- print "Subject=$subject\n";
- print "Requestors=", $ticket->RequestorAddresses, "\n";
- endScript(0, "OK");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement