From 40ebe601936458cebc78a48a20b2cc5e67f6c1da Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Thu, 26 Feb 2015 15:26:10 +0100 Subject: [PATCH] Lager-Transfer: Transaktion mit with_transaction statt mit do_transaction. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Hintergrund: Buchen einer Rechnung und Lagerbewegung in einer Transaktion ausführen können. Zitat aus einem anderen commit: "do_transaction startet immer eine Transaktion, auch wenn außen rum schon eine läuft. Damit wird die äußere Transaktion de facto außer Kraft gesetzt." --- SL/WH.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SL/WH.pm b/SL/WH.pm index e836d65f0..5b24cfd70 100644 --- a/SL/WH.pm +++ b/SL/WH.pm @@ -79,7 +79,7 @@ sub transfer { my @trans_ids; my $db = SL::DB::Inventory->new->db; - $db->do_transaction(sub{ + $db->with_transaction(sub{ while (my $transfer = shift @args) { my ($trans_id) = selectrow_query($::form, $::form->get_standard_dbh, qq|SELECT nextval('id')|); @@ -141,10 +141,12 @@ sub transfer { $part->update_attributes(warehouse_id => conv_i($transfer->{dst_warehouse_id})); $part->update_attributes(bin_id => conv_i($transfer->{dst_bin_id})); } - } + } push @trans_ids, $trans_id; } + + 1; }) or do { $::form->error("Warehouse transfer error: " . join("\n", (split(/\n/, $db->error))[0..2])); }; -- 2.20.1