Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision de86aac7

Von Moritz Bunkus vor mehr als 8 Jahren hinzugefügt

  • ID de86aac72c9a7456c1a691b18fe323845a07c24f
  • Vorgänger 40041962
  • Nachfolger 0153e51a

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.

Unterschiede anzeigen:

SL/DB/CustomVariable.pm
44 44
  }
45 45

  
46 46
  if ($type =~ m{^(?:date|timestamp)}) {
47
    return $self->timestamp_value(defined($unparsed) ? DateTime->from_kivitendo($unparsed) : undef);
47
    return $self->timestamp_value(!defined($unparsed) ? undef : ref($unparsed) eq 'DateTime' ? $unparsed->clone : DateTime->from_kivitendo($unparsed));
48 48
  }
49 49

  
50 50
  # text, textfield, select

Auch abrufbar als: Unified diff