From de86aac72c9a7456c1a691b18fe323845a07c24f Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Wed, 26 Aug 2015 15:57:01 +0200 Subject: [PATCH] =?utf8?q?SL::DB::CVar::value:=20mit=20=C3=BCbergebenen=20?= =?utf8?q?DateTime-Objekten=20klarkommen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Ruft mal value als getter auf, so wird ein DateTime-Objekt zurückgegeben. Als setter aufgerufen, erwartete die Funktion bisher aber, dass ein String übergeben wird. Somit war es nicht möglich, eine Datums-CVar mit intuitiv zu clonen: $new_cvar->value($old_cvar->value); # Subtle fail! Mit dem Fix werden sowohl DateTime-Objekte als auch Strings unterstützt. --- SL/DB/CustomVariable.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SL/DB/CustomVariable.pm b/SL/DB/CustomVariable.pm index 0971e6466..46428fe82 100644 --- a/SL/DB/CustomVariable.pm +++ b/SL/DB/CustomVariable.pm @@ -44,7 +44,7 @@ sub parse_value { } if ($type =~ m{^(?:date|timestamp)}) { - return $self->timestamp_value(defined($unparsed) ? DateTime->from_kivitendo($unparsed) : undef); + return $self->timestamp_value(!defined($unparsed) ? undef : ref($unparsed) eq 'DateTime' ? $unparsed->clone : DateTime->from_kivitendo($unparsed)); } # text, textfield, select -- 2.20.1