X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FOrder.pm;h=631ab16dd6f4d071caeb470ebc2737eed4a912fb;hb=00b6dc2240564add9114864655e96eb7cc6dde4f;hp=22a0fd06b326fb9237dc5243ba42c72269658bd9;hpb=4e03a13b8db203a81bf877e536d68a7203eb8747;p=kivitendo-erp.git diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index 22a0fd06b..631ab16dd 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -784,7 +784,7 @@ sub _make_item { $item->assign_attributes(%$attr); $item->longdescription($item->part->notes) if $is_new && !defined $attr->{longdescription}; # item fields that currently can't be set in in row but are needed: - $item->lastcost($item->part->lastcost); + $item->lastcost($item->part->lastcost) if $is_new; return $item; } @@ -893,9 +893,9 @@ sub _delete { my ($self) = @_; my $errors = []; - my $db = $self->order->db; + my $db = $self->order->db; - $db->do_transaction( + $db->with_transaction( sub { my @spoolfiles = grep { $_ } map { $_->spoolfile } @{ SL::DB::Manager::Status->get_all(where => [ trans_id => $self->order->id ]) }; $self->order->delete; @@ -915,12 +915,11 @@ sub _save { my ($self) = @_; my $errors = []; - my $db = $self->order->db; + my $db = $self->order->db; - $db->do_transaction( - sub { - SL::DB::OrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete}; - $self->order->save(cascade => 1); + $db->with_transaction(sub { + SL::DB::OrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete}; + $self->order->save(cascade => 1); }) || push(@{$errors}, $db->error); return $errors;