From: Moritz Bunkus Date: Wed, 26 Aug 2015 13:57:01 +0000 (+0200) Subject: SL::DB::CVar::value: mit übergebenen DateTime-Objekten klarkommen X-Git-Tag: release-3.4.1~754 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=de86aac72c9a7456c1a691b18fe323845a07c24f;p=kivitendo-erp.git SL::DB::CVar::value: mit übergebenen DateTime-Objekten klarkommen 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. --- 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