X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FFile.pm;h=79ca3fbeb3dcea8d7d4b4532e36f189ec76fb575;hb=c59e85c3a7538b1279e25022a6cf431ca1dee700;hp=3384f290d3f28f3eeccd3a1179b7abe00ccd2deb;hpb=6969d5c2475912e927c868e56b153ecacdfb817e;p=kivitendo-erp.git diff --git a/SL/File.pm b/SL/File.pm index 3384f290d..79ca3fbeb 100644 --- a/SL/File.pm +++ b/SL/File.pm @@ -122,12 +122,12 @@ sub delete_all { sub delete { my ($self, %params) = @_; - die "no id or dbfile" unless $params{id} || $params{dbfile}; - my $rc = SL::DB->client->with_transaction(\&_delete, $self, %params); - if (!$rc) { - my $err = SL::DB->client->error; - die $err?(ref $err?$$err:$err):"unknown err"; - } + die "no id or dbfile in delete" unless $params{id} || $params{dbfile}; + my $rc = 0; + eval { + $rc = SL::DB->client->with_transaction(\&_delete, $self, %params); + 1; + } or do { die $@ }; return $rc; } @@ -149,7 +149,7 @@ sub _delete { if ($hist) { if (!$main::auth->assert('import_ar | import_ap', 1)) { - die \'no permission to unimport'; + die 'no permission to unimport'; } my $file = $backend->get_filepath(dbfile => $params{dbfile}); $main::lxdebug->message(LXDebug->DEBUG2(), "del file=" . $file . " to=" . $hist->snumbers); @@ -179,11 +179,11 @@ sub _delete { sub save { my ($self, %params) = @_; - my $obj = SL::DB->client->with_transaction(\&_save, $self, %params); - if (!$obj) { - my $err = SL::DB->client->error; - die (ref $err?$$err:$err); - } + my $obj; + eval { + $obj = SL::DB->client->with_transaction(\&_save, $self, %params); + 1; + } or do { die $@ }; return $obj; } @@ -194,11 +194,11 @@ sub _save { if ($params{id}) { $file = SL::DB::File->new(id => $params{id})->load; - die \'dbfile not exists' unless $file; + die 'dbfile not exists' unless $file; } elsif (!$file) { $main::lxdebug->message(LXDebug->DEBUG2(), "obj_id=" .$params{object_id}); - die \'no object type set' unless $params{object_type}; - die \'no object id set' unless defined($params{object_id}); + die 'no object type set' unless $params{object_type}; + die 'no object id set' unless defined($params{object_id}); $exists = $self->get_all_count(%params); die 'filename still exist' if $exists && $params{fail_if_exists}; @@ -319,13 +319,18 @@ sub _get_backend { my ($self, $backend_name) = @_; my $class = 'SL::File::Backend::' . $backend_name; my $obj = undef; + die $::locale->text('no backend enabled') if $backend_name eq 'None'; eval { eval "require $class"; $obj = $class->new; - die \'backend not enabled' unless $obj->enabled; + die $::locale->text('backend "#1" not enabled',$backend_name) unless $obj->enabled; 1; } or do { - die \'backend class not found'; + if ( $obj ) { + die $@; + } else { + die $::locale->text('backend "#1" not found',$backend_name); + } }; return $obj; }