Revision 2b9e50ba
Von Sven Schöling vor fast 10 Jahren hinzugefügt
SL/DB/CustomVariable.pm | ||
---|---|---|
35 | 35 |
|
36 | 36 |
my $unparsed = delete $self->{__unparsed_value}; |
37 | 37 |
|
38 |
if ($type =~ m{^(?:customer|vendor|part|bool|number)}) {
|
|
38 |
if ($type =~ m{^(?:customer|vendor|part|number)}) { |
|
39 | 39 |
return $self->number_value(defined($unparsed) ? $unparsed * 1 : undef); |
40 | 40 |
} |
41 | 41 |
|
42 |
if ($type =~ m{^(?:bool)}) { |
|
43 |
return $self->bool_value(defined($unparsed) ? !!$unparsed : undef); |
|
44 |
} |
|
45 |
|
|
42 | 46 |
if ($type =~ m{^(?:date|timestamp)}) { |
43 | 47 |
return $self->timestamp_value(defined($unparsed) ? DateTime->from_kivitendo($unparsed) : undef); |
44 | 48 |
} |
... | ... | |
54 | 58 |
if (scalar(@_) > 1) { |
55 | 59 |
$self->unparsed_value($_[1]); |
56 | 60 |
$self->parse_value; |
61 |
@_ = ($self); |
|
57 | 62 |
} |
58 | 63 |
|
59 | 64 |
goto &bool_value if $type eq 'bool'; |
Auch abrufbar als: Unified diff
CustomVariables: Zuweisen von zu parsenden Inhalten
2 Probleme.
1. Booleans wurden beim Parsen in den numeric Slot gesteckt
2. Die zwei-wertige Version von value() hat das zweite Argument nicht
aus dem Stack entfernt, und damit beim goto weitergegeben an die
unterliegenden Rose-Accessoren. Das hat dann das parsen wieder
zunichte gemacht.