use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn Do qquote quote DoTime);
use Dbase::Globals qw(find_reseller get_reseller name_dienst);
use Loader qw(edit_tarifnamen log_update domain_reg);
use Fehler qw(problem);

## Flags:
##   1 Startzeitpunkt ist JETZT

sub set_domain_tarif($;$$$) {
	my($idi,$kn,$name,$flag) = @_;
	my $dienst;

	my($id,$dom,$tname,$ktarif,$beginn,$ende) = DoFn("select kunde,domain,tarifname,ktarif,beginn,ende from domainkunde where id=$idi");
	domain_reg($idi, \$dienst);

	return problem "Es gibt bereits einen Tarif zu dieser Domain!\n"
		if $ktarif;
	
	my $oname;
	if($tname and $name eq "?") {
		$name = $tname;
	} elsif(not defined $name) {
		$name = edit_tarifnamen(1+16,$kn,"domain");
	} else {
		if($name eq "?") {
			my $rsn = find_reseller($id);
			$rsn = get_reseller($rsn) if defined $rsn;
			if(defined $rsn and DoFn("select count(*) from tarif,tarifklasse,tarifname where tarifname.id=tarifklasse.tarifname and tarif.klasse=tarifklasse.id and tarif.dienst=$dienst and tarifname.name='domain-${\quote $rsn}'")) {
				$name = "domain-$rsn";
			} else {
				$name = "domain";
			}
		}
		my $nam = DoFn "select id from tarifname where name=${\qquote $name}";
		return problem "Tarif '$name' existiert nicht" if not defined $nam;
		$name = $nam;
	}
	return undef unless defined $name;
	$oname = DoFn("select name from tarifname where id=$name")
		unless defined $oname;
	
	return problem "Grummel! Erst den Dienst der Domain eintragen!\n"
		if not $dienst;

	$beginn = DoTime if $flag & 1;
	$ende = "NULL" if not defined $ende;

	my $ttt = Do("insert into tarifkunde set kunde=$id, tarifname=$name, dienst=$dienst, beginn=$beginn, ende=$ende, anzahl=1, infotext=${\qquote $dom,1}");
	log_update("tarifkunde","id",$ttt,undef,"*");
	log_update("kunde","id",$id,undef,"tarifkunde","tarifname","dienst","*", undef,$ttt,DoFn("select name from tarifname where id=$name"),name_dienst($dienst));
	log_update("domainkunde","id",$idi,undef,"ktarif",undef,
		DoFn("select ktarif from domainkunde where id=$idi"));
	Do("update domainkunde set ktarif=$ttt where id=$idi");

	Do("update kunde set geaendert=UNIX_TIMESTAMP(NOW()) where id=$id");
	$ttt;
}
1;
