use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(Do DoFn isotime DoTime);
use Loader qw(select_date log_update);

sub set_tarifacct_datum($$;$) {
	my($tid,$id,$kn) = @_;
	my($datum);
	my $done;
	my $ksel;
	if($id) {
		$ksel="kunde = $id";
	} else {
		$ksel="kunde IS NULL";
		$id=0;
	}
	$datum = select_date( 256, 'Startdatum', undef, qw(= jetzt) );
	if(defined $datum) {
		$datum = DoTime if $datum eq "=";
		
		log_update("tarifacct","kunde",$id,"id",$tid,undef,"beginn",undef,
			scalar isotime DoFn("select beginn from tarifacct where id=$tid and $ksel"));
		Do("update tarifacct set beginn=$datum where id=$tid and $ksel");
		Do("update kunde set geaendert=UNIX_TIMESTAMP(NOW()) where id=$id") if $id;
		$done += 2;
	}

	$datum = select_date(
		16 | 256 | 1024, 'Enddatum', undef,
		'=' => 'jetzt',
		0   => 'Enddatum löschen'
	);
	if(defined $datum) {
		$datum = DoTime if $datum eq "=";
		$datum = "NULL" if $datum == 0;
		
		log_update("tarifacct","kunde",$id,"id",$tid,undef,"ende",undef,
			scalar isotime DoFn("select ende from tarifacct where id=$tid and $ksel"));
		Do("update tarifacct set ende=$datum where id=$tid and $ksel");
		Do("update kunde set geaendert=UNIX_TIMESTAMP(NOW()) where id=$id") if $id;
		$done++;
	}
	$done;
}
1;
