use utf8;
use warnings; no warnings "redefine";
use strict;

use Cf qw($MAILDOM);
use Dbase::Globals qw(flatten);
use Dbase::Help qw(DoFn Do qquote DoTrans);
use Loader qw(current_user);

sub ticket_insert_text ($$$@) {
	my($id,$flag,$msgid,@text) = @_;
	return undef if @text == 0;
	my $nextseq;
	DoTrans {
		$nextseq=1 +
			(DoFn("select max(seq) from ticketid where ticket = $id") || 0);
		my $data = "";

		$data .= "Content-Type: text/plain\n\n" unless $flag & 16;

		flatten {
			$data .= $_[0];
		} @text;

		if($flag & 2) {
			$flag = ($flag & 2) ? 'n' # interner Text
			                    : 'y'; # externer Text
		}
		$msgid = "$id-$nextseq\@ticket.$MAILDOM" if $msgid eq "";

		# Standard-ID immer speichern, weil neue Sequenznummer
		Do("delete from ticketid where id = '$msgid'");
		DoBinary {
			Do("insert into ticketid set id='$msgid', ticket=$id, person=".current_user().", seq=$nextseq, extern='$flag', inhalt=${\qquote $data}");
		};
		Do("update ticket set maxseq = $nextseq where id = $id");
	};

	return $nextseq;
}

1;
