projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SL/DB/BankTransaction.pm - carp statt die
[kivitendo-erp.git]
/
SL
/
DB
/
CustomVariable.pm
diff --git
a/SL/DB/CustomVariable.pm
b/SL/DB/CustomVariable.pm
index
08dd663
..
26ff748
100644
(file)
--- a/
SL/DB/CustomVariable.pm
+++ b/
SL/DB/CustomVariable.pm
@@
-4,6
+4,9
@@
package SL::DB::CustomVariable;
use strict;
package SL::DB::CustomVariable;
use strict;
+
+use List::MoreUtils qw(any);
+
use SL::DB::MetaSetup::CustomVariable;
__PACKAGE__->meta->initialize;
use SL::DB::MetaSetup::CustomVariable;
__PACKAGE__->meta->initialize;
@@
-36,7
+39,9
@@
sub parse_value {
my $unparsed = delete $self->{__unparsed_value};
if ($type =~ m{^(?:customer|vendor|part|number)}) {
my $unparsed = delete $self->{__unparsed_value};
if ($type =~ m{^(?:customer|vendor|part|number)}) {
- return $self->number_value(defined($unparsed) ? $unparsed * 1 : undef);
+ return $self->number_value(!defined($unparsed) ? undef
+ : (any { ref($unparsed) eq $_ } qw(SL::DB::Customer SL::DB::Vendor SL::DB::Part)) ? $unparsed->id * 1
+ : $unparsed * 1);
}
if ($type =~ m{^(?:bool)}) {
}
if ($type =~ m{^(?:bool)}) {
@@
-44,7
+49,7
@@
sub parse_value {
}
if ($type =~ m{^(?:date|timestamp)}) {
}
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
}
# text, textfield, select
@@
-63,7
+68,10
@@
sub value {
goto &bool_value if $type eq 'bool';
goto ×tamp_value if $type eq 'timestamp';
goto &bool_value if $type eq 'bool';
goto ×tamp_value if $type eq 'timestamp';
- goto &number_value if $type eq 'number';
+
+ if ($type eq 'number') {
+ return defined($self->number_value) ? $self->number_value * 1 : undef;
+ }
if ( $type eq 'customer' ) {
require SL::DB::Customer;
if ( $type eq 'customer' ) {
require SL::DB::Customer;