use utf8;
use warnings; no warnings "redefine";
use strict;
use Fehler qw(ffehler fehler);
use Loader qw(select_descr set_acct_assoc_info log_update edit_ktarife);
use Dbase::Help qw(DoFn Do);

sub set_acct_assoc_ktarif($$;$) {
	my($hash,$seq,$kn) = @_;
	my($id,$otk)=DoFn("select id,tarifkunde from acctassoc where `hash`=$hash and seq=$seq");
	my $kd = DoFn("select kunde from acct where `hash`=$hash and seq=$seq");

	my $kt = edit_ktarife($kd,1,$kn);
	return undef unless defined $kt;

	unless($id) {
		print "...angelegt.\n";

		ffehler {
			log_update("acct","hash",$hash,"seq",$seq,undef,"tarifkunde","*");
			$id=Do("insert into acctassoc set `hash`=$hash, seq=$seq, tarifkunde=$kt");
			set_acct_assoc_info($hash,$seq,$kn)
				or fehler "keine Info angegeben";
		} sub {
			print "...unvollständig.\n";
			Do("delete from acctassoc where id=$id") if $id;
			$id=undef;
		};
	} else {
		log_update("acct","hash",$hash,"seq",$seq,undef,"tarifkunde",undef,$otk);
		Do("update acctassoc set tarifkunde=$kt where id=$id");
	}

	return $id ? ($hash,$seq) : ();
}
1;
