@@ -, +, @@ Koha::Object->store --- Koha/Object.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) --- a/Koha/Object.pm +++ a/Koha/Object.pm @@ -129,24 +129,26 @@ sub store { # Integers if ( _numeric_column_type( $columns_info->{$col}->{data_type} ) ) { # Has been passed but not a number, usually an empty string - if ( defined $self->$col and not looks_like_number( $self->$col ) ) { + my $value = $self->_result()->get_column($col); + if ( defined $value and not looks_like_number( $value ) ) { if ( $columns_info->{$col}->{is_nullable} ) { # If nullable, default to null - $self->$col(undef); + $self->_result()->set_column($col => undef); } else { # If cannot be null, get the default value # What if cannot be null and does not have a default value? Possible? - $self->$col($columns_info->{$col}->{default_value}); + $self->_result()->set_column($col => $columns_info->{$col}->{default_value}); } } } elsif ( _date_or_datetime_column_type( $columns_info->{$col}->{data_type} ) ) { # Set to null if an empty string (or == 0 but should not happen) - if ( defined $self->$col and not $self->$col ) { + my $value = $self->_result()->get_column($col); + if ( defined $value and not $value ) { if ( $columns_info->{$col}->{is_nullable} ) { - $self->$col(undef); + $self->_result()->set_column($col => undef); } else { - $self->$col($columns_info->{$col}->{default_value}); + $self->_result()->set_column($col => $columns_info->{$col}->{default_value}); } } } --