Revision 40ebe601
Von Bernd Bleßmann vor fast 10 Jahren hinzugefügt
SL/WH.pm | ||
---|---|---|
79 | 79 |
my @trans_ids; |
80 | 80 |
|
81 | 81 |
my $db = SL::DB::Inventory->new->db; |
82 |
$db->do_transaction(sub{
|
|
82 |
$db->with_transaction(sub{
|
|
83 | 83 |
while (my $transfer = shift @args) { |
84 | 84 |
my ($trans_id) = selectrow_query($::form, $::form->get_standard_dbh, qq|SELECT nextval('id')|); |
85 | 85 |
|
... | ... | |
141 | 141 |
$part->update_attributes(warehouse_id => conv_i($transfer->{dst_warehouse_id})); |
142 | 142 |
$part->update_attributes(bin_id => conv_i($transfer->{dst_bin_id})); |
143 | 143 |
} |
144 |
} |
|
144 |
}
|
|
145 | 145 |
|
146 | 146 |
push @trans_ids, $trans_id; |
147 | 147 |
} |
148 |
|
|
149 |
1; |
|
148 | 150 |
}) or do { |
149 | 151 |
$::form->error("Warehouse transfer error: " . join("\n", (split(/\n/, $db->error))[0..2])); |
150 | 152 |
}; |
Auch abrufbar als: Unified diff
Lager-Transfer: Transaktion mit with_transaction statt mit do_transaction.
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."