Revision 65b054be
Von Sven Schöling vor mehr als 8 Jahren hinzugefügt
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
SEPA: single-dbh