#!/usr/bin/perl -w

use utf8;
use strict;
use warnings;

BEGIN {
	unshift @INC, ( $ENV{'POPHOME'} || '@POPHOME@' ) . '/lib'
		unless $ENV{'KUNDE_NO_PERLPATH'};
}

use Dbase::Globals qw(info_descr);
use Dbase::Help qw(DoFn DoReadOnly);
use Encode qw(encode);
use noris::REST::Backend qw(error get_param return_result);

DoReadOnly {

my $kunde_id = get_param( integer => 'kunde.id' );
my $rtticket = get_param( integer => 'rtticket' );

my %ticket;
@ticket{
	qw(
	  subject
	  type
	  beginn
	  ende
	  priority
	  text_description
	  text_affected
	  text_comment
	  text_progress
	  text_resolve
	  status
	  )
  } = DoFn(<<_)
	SELECT   trouble_ticket.subject,
	         trouble_ticket.type,
	         trouble_ticket.beginn,
	         trouble_ticket.ende,
	         trouble_ticket.priority,
	         trouble_ticket.text_description,
	         trouble_ticket.text_affected,
	         trouble_ticket.text_comment,
	         trouble_ticket.text_progress,
	         trouble_ticket.text_resolve,
	         IF( trouble_ticket.text_resolve IS NULL, 'open', 'resolved' ) AS status
	FROM     trouble_ticket, trouble_ticket_kunde_assoc
	WHERE    trouble_ticket.id IN (
	         	SELECT   MAX(tt.id)
	         	FROM     trouble_ticket tt
	         	WHERE    tt.rtticket = $rtticket
			     AND tt.confirmer IS NOT NULL
	         )
	     AND trouble_ticket.id = trouble_ticket_kunde_assoc.trouble_ticket
	     AND trouble_ticket_kunde_assoc.kunde = $kunde_id
	ORDER BY trouble_ticket.id DESC
	LIMIT 1
_
  or error('Es wurde kein entsprechendes Ticket gefunden.');
$ticket{$_} = info_descr( "tt_$_" => $ticket{$_} ) for qw(priority type);
defined and $_ = encode( utf8 => $_ ) for values %ticket;

return_result( \%ticket );

}

=head1 NAME

get_trouble_ticket - Inhalt eines Trouble Tickets ermitteln

=head1 INPUT-PARAMETER

=over 4

=item kunde.id

Kundennummer (zur Zugriffskontrolle)

=item rtticket

RT-Ticket-ID des Trouble Tickets

=back

=head1 OUTPUT

(Referenz auf einen) Hash, der die verschiedenen Felder des Trouble Tickets
enthält, soweit sie für die Ausgabe relevant sind.

=head1 VERWENDUNG

Web-Frontend zur Einsicht für Trouble Tickets
(E<lt>https://service.noris.net/service/tt/E<gt>), vgl. RT#250809

=cut

