Revision 96670fe8
Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
893 | 893 |
my ($self) = @_; |
894 | 894 |
|
895 | 895 |
my $errors = []; |
896 |
my $db = $self->order->db; |
|
896 |
my $db = $self->order->db;
|
|
897 | 897 |
|
898 |
$db->do_transaction(
|
|
898 |
$db->with_transaction(
|
|
899 | 899 |
sub { |
900 | 900 |
my @spoolfiles = grep { $_ } map { $_->spoolfile } @{ SL::DB::Manager::Status->get_all(where => [ trans_id => $self->order->id ]) }; |
901 | 901 |
$self->order->delete; |
... | ... | |
915 | 915 |
my ($self) = @_; |
916 | 916 |
|
917 | 917 |
my $errors = []; |
918 |
my $db = $self->order->db; |
|
918 |
my $db = $self->order->db;
|
|
919 | 919 |
|
920 |
$db->do_transaction( |
|
921 |
sub { |
|
922 |
SL::DB::OrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete}; |
|
923 |
$self->order->save(cascade => 1); |
|
920 |
$db->with_transaction(sub { |
|
921 |
SL::DB::OrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete}; |
|
922 |
$self->order->save(cascade => 1); |
|
924 | 923 |
}) || push(@{$errors}, $db->error); |
925 | 924 |
|
926 | 925 |
return $errors; |
Auch abrufbar als: Unified diff
»with_transaction« anstelle von »do_transaction« verwenden
Es sollte so selten wie möglich »do_transaction« verwndet werden, damit
man sich immer angewöhnt, »with_transaction« zu nutzen.
Hintergründe und Unterschiede zwischen den beiden Funktionen sind in der
Dokumentation von SL/DB.pm beschrieben.