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

use Loader qw( delete_tarifacct
               line_in list_tarifacct log_view
               set_tarifacct_datum
               set_tarifacct_ddienst
               set_tarifacct_dkunde
               set_tarifacct_dienst
               set_tarifacct_direkt
               set_tarifacct_faktor
               set_tarifacct_quelle
               set_tarifacct_tarif
               set_tarifacct_ziel
               valid_tarifacct
             );
use Fehler qw(report_fehler);

sub edit_tarifacct($$;$) {
	my($tid,$id,$kn) = @_;
	$kn .= " TarifAcct $tid";

	return unless valid_tarifacct($tid,$id);
	
	tariftt: while(1) {
		my $act = line_in "$kn >",4; last if $act eq "";
		if($act eq "?") {
			print <<'END';
l   auflisten
t   Tarif setzen
d   Dienst setzen
z   Ziel setzen
q   Quelle setzen
f   Berechnungsfaktor setzen
x   Beginn/Ende setzen
a   Art setzen
dd  Zieldienst setzen (= wird umgemappt)
dk  Zielkunde setzen (= wird umgemappt) (nur bei art 'p')
del löschen
END
			next;
		}
		if($act eq "t") { set_tarifacct_tarif($tid,$id,$kn); next; }
		if($act eq "H") { log_view($kn,"tarifacct","id",$tid,"kunde",$id || 0); next; }
		if($act eq "d") { set_tarifacct_dienst($tid,$id,$kn); next; }
		if($act eq "dd"){ set_tarifacct_ddienst($tid,$id,$kn); next; }
		if($act eq "dk"){ set_tarifacct_dkunde($tid,$id,$kn); next; }
		if($act eq "q") { set_tarifacct_quelle($tid,$id,$kn); next; }
		if($act eq "z") { set_tarifacct_ziel($tid,$id,$kn); next; }
		if($act eq "f") { set_tarifacct_faktor($tid,$id,$kn); next; }
		if($act eq "del") { delete_tarifacct($tid,$id,$kn); return undef; }
		if($act eq "x") { set_tarifacct_datum($tid,$id,$kn); next; }
		if($act eq "a") { set_tarifacct_direkt($tid,$id,$kn); next; }

		if($act eq "l") { list_tarifacct($tid,$id,$kn); next; }
		print "Aktion '$act' kenne ich nicht.\n";
		next; fehler: report_fehler(4);
	}
	$tid;
}

1;
