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

use Dbase::Help qw(Do DoCopy DoFn);
use Loader qw(edit_kunden log_update);
use Fehler qw(problem);

sub set_tarif_kunde($;$) {
	my($tari,$kn) = @_;

	my($okk,$tkid,$tnid, $dien,$begi,$min,$umin) = DoFn("select tarifklasse.kunde,tarifklasse.id,tarifklasse.tarifname, tarif.dienst,tarif.beginn,tarif.mini,tarif.unitmini from tarif,tarifklasse where tarif.id=$tari and tarif.klasse=tarifklasse.id for update");
	my $kk = edit_kunden(1|4,$kn);
	return undef unless defined $kk;

	$tkid=DoFn("select id from tarifklasse where tarifname=$tnid and ".(($kk eq "-") ? "kunde is null" : "kunde=$kk"))
		|| DoCopy("tarifklasse","id=$tkid", id=>undef,kunde=>(($kk eq "-") ? undef : $kk));

	$kk = "NULL" if $kk eq "-";

	if(DoFn("select count(*) from tarif where klasse=$tkid and dienst=$dien and beginn=$begi and mini=$min and unitmini=$umin")) {
		return problem "Diesen Tarif gibt es dort schon.";
	}

	log_update("tarif","id",$tari,undef,"kunde",undef,$okk);
	Do("update tarif set klasse=$tkid where id=$tari");

	$kk;
}

1;
