Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 65b054be

Von Sven Schöling vor mehr als 8 Jahren hinzugefügt

  • ID 65b054be8038e3eeb3dd2c87ba52a82a843cfd4f
  • Vorgänger e8784e42
  • Nachfolger 9d17d16c

SEPA: single-dbh

Unterschiede anzeigen:

SL/SEPA.pm
8 8
use SL::DBUtils;
9 9
use SL::DB::Invoice;
10 10
use SL::DB::PurchaseInvoice;
11
use SL::DB;
11 12
use SL::Locale::String qw(t8);
12 13
use DateTime;
13 14

  
......
87 88
}
88 89

  
89 90
sub create_export {
91
  my ($self, %params) = @_;
90 92
  $main::lxdebug->enter_sub();
91 93

  
94
  my $rc = SL::DB->client->with_transaction(\&_create_export, $self, %params);
95

  
96
  $::lxdebug->leave_sub;
97
  return $rc;
98
}
99

  
100
sub _create_export {
92 101
  my $self     = shift;
93 102
  my %params   = @_;
94 103

  
......
100 109
  my $vc       = $params{vc} eq 'customer' ? 'customer' : 'vendor';
101 110
  my $ARAP     = uc $arap;
102 111

  
103
  my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);
112
  my $dbh      = $params{dbh} || SL::DB->client->dbh;
104 113

  
105 114
  my ($export_id) = selectfirst_array_query($form, $dbh, qq|SELECT nextval('sepa_export_id_seq')|);
106 115
  my $query       =
......
189 198
  $h_insert->finish();
190 199
  $h_item_id->finish();
191 200

  
192
  $dbh->commit() unless ($params{dbh});
193

  
194
  $main::lxdebug->leave_sub();
195

  
196 201
  return $export_id;
197 202
}
198 203

  
......
267 272
  my $myconfig = \%main::myconfig;
268 273
  my $form     = $main::form;
269 274

  
270
  my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);
275
  SL::DB->client->with_transaction(sub {
276
    my $dbh      = $params{dbh} || SL::DB->client->dbh;
271 277

  
272
  my @ids          = ref $params{id} eq 'ARRAY' ? @{ $params{id} } : ($params{id});
273
  my $placeholders = join ', ', ('?') x scalar @ids;
274
  my $query        = qq|UPDATE sepa_export SET closed = TRUE WHERE id IN ($placeholders)|;
278
    my @ids          = ref $params{id} eq 'ARRAY' ? @{ $params{id} } : ($params{id});
279
    my $placeholders = join ', ', ('?') x scalar @ids;
280
    my $query        = qq|UPDATE sepa_export SET closed = TRUE WHERE id IN ($placeholders)|;
275 281

  
276
  do_query($form, $dbh, $query, map { conv_i($_) } @ids);
277

  
278
  $dbh->commit() unless ($params{dbh});
282
    do_query($form, $dbh, $query, map { conv_i($_) } @ids);
283
  });
279 284

  
280 285
  $main::lxdebug->leave_sub();
281 286
}
......
402 407
}
403 408

  
404 409
sub post_payment {
410
  my ($self, %params) = @_;
405 411
  $main::lxdebug->enter_sub();
406 412

  
413
  my $rc = SL::DB->client->with_transaction(\&_post_payment, $self, %params);
414

  
415
  $::lxdebug->leave_sub;
416
  return $rc;
417
}
418

  
419
sub _post_payment {
407 420
  my $self     = shift;
408 421
  my %params   = @_;
409 422

  
......
416 429
  my $mult     = $params{vc} eq 'customer' ? -1         : 1;
417 430
  my $ARAP     = uc $arap;
418 431

  
419
  my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);
432
  my $dbh      = $params{dbh} || SL::DB->client->dbh;
420 433

  
421 434
  my @items    = ref $params{items} eq 'ARRAY' ? @{ $params{items} } : ($params{items});
422 435

  
......
502 515

  
503 516
  map { $_->[0]->finish() } values %handles;
504 517

  
505
  $dbh->commit() unless ($params{dbh});
506

  
507
  $main::lxdebug->leave_sub();
518
  return 1;
508 519
}
509 520

  
510 521
1;

Auch abrufbar als: Unified diff