X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FFile.pm;h=25c6d96c1505161083ca14fda253d879f31172d6;hb=dc7162f360873e40872e43bb3be4cc69f4833461;hp=677be676bf5b30da845e0b3733f0a2e10b5c5c79;hpb=31378f48eb1742809789dd2e9670f8564850cce1;p=kivitendo-erp.git diff --git a/SL/File.pm b/SL/File.pm index 677be676b..25c6d96c1 100644 --- a/SL/File.pm +++ b/SL/File.pm @@ -4,7 +4,6 @@ use strict; use parent qw(Rose::Object); -use Clone qw(clone); use SL::File::Backend; use SL::File::Object; use SL::DB::History; @@ -72,12 +71,13 @@ sub get_all_versions { foreach my $fileobj (@fileobjs) { $main::lxdebug->message(LXDebug->DEBUG2(), "obj=" . $fileobj . " id=" . $fileobj->id." versions=".$fileobj->version_count); my $maxversion = $fileobj->version_count; + $fileobj->version($maxversion); push @versionobjs, $fileobj; if ($maxversion > 1) { for my $version (2..$maxversion) { $main::lxdebug->message(LXDebug->DEBUG2(), "clone for version=".($maxversion-$version+1)); eval { - my $clone = clone($fileobj); + my $clone = $fileobj->clone; $clone->version($maxversion-$version+1); $clone->newest(0); $main::lxdebug->message(LXDebug->DEBUG2(), "clone version=".$clone->version." mtime=". $clone->mtime); @@ -162,8 +162,8 @@ sub _delete { } if ($backend->delete(%params)) { my $do_delete = 0; - if ( $params{last} || $params{all_but_notlast} ) { - if ( $backend->get_version_count > 0 ) { + if ( $params{last} || $params{version} || $params{all_but_notlast} ) { + if ( $backend->get_version_count(%params) > 0 ) { $params{dbfile}->mtime(DateTime->now_local); $params{dbfile}->save; } else { @@ -219,6 +219,8 @@ sub _save { title => $params{title}, description => $params{description}, ); + $file->itime($params{mtime}) if $params{mtime}; + $params{itime} = $params{mtime} if $params{mtime}; } } else { $exists = 1; @@ -235,12 +237,14 @@ sub _save { # load itime for new file $file->save->load; } - $main::lxdebug->message(LXDebug->DEBUG2(), "backend3=" .$file->backend); + + $file->mtime(DateTime->now_local) unless $params{mtime}; + $file->mtime($params{mtime} ) if $params{mtime}; + my $backend = $self->_get_backend($file->backend); $params{dbfile} = $file; $backend->save(%params); - $file->mtime(DateTime->now_local); $file->save; #ShopImage if($file->object_type eq "shop_image"){