Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 96670fe8

Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt

  • ID 96670fe82a38116ac10592a6ccbd34800f8ad9f8
  • Vorgänger e5a76ed1
  • Nachfolger 0b84f51f

»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.

Unterschiede anzeigen:

SL/DB/Invoice.pm
252 252
    $params{ar_id} = $chart->id;
253 253
  }
254 254

  
255
  my $worker = sub {
255
  if (!$self->db->with_transaction(sub {
256 256
    my %data = $self->calculate_prices_and_taxes;
257 257

  
258 258
    $self->_post_create_assemblyitem_entries($data{assembly_items});
......
267 267
    $self->_post_update_allocated($data{allocated});
268 268

  
269 269
    $self->_post_book_rounding($data{rounding});
270
  };
271 270

  
272
  if ($self->db->in_transaction) {
273
    $worker->();
274
  } elsif (!$self->db->do_transaction($worker)) {
271
    1;
272
  })) {
275 273
    $::lxdebug->message(LXDebug->WARN(), "convert_to_invoice failed: " . join("\n", (split(/\n/, $self->db->error))[0..2]));
276 274
    return undef;
277 275
  }

Auch abrufbar als: Unified diff