projects
/
kivitendo-erp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c815c72
)
IC: single-dbh für delete und update_prices
author
Sven Schöling
<s.schoeling@linet-services.de>
Fri, 1 Jul 2016 09:26:48 +0000
(11:26 +0200)
committer
Sven Schöling
<s.schoeling@linet-services.de>
Fri, 2 Sep 2016 12:21:28 +0000
(14:21 +0200)
SL/IC.pm
patch
|
blob
|
history
diff --git
a/SL/IC.pm
b/SL/IC.pm
index
305d3f3
..
d70c214
100644
(file)
--- a/
SL/IC.pm
+++ b/
SL/IC.pm
@@
-43,6
+43,7
@@
use SL::DBUtils;
use SL::HTML::Restrict;
use SL::TransNumber;
use SL::Util qw(trim);
use SL::HTML::Restrict;
use SL::TransNumber;
use SL::Util qw(trim);
+use SL::DB;
use strict;
use strict;
@@
-236,7
+237,7
@@
sub save {
sub _save {
my ($self, $myconfig, $form) = @_;
my @values;
sub _save {
my ($self, $myconfig, $form) = @_;
my @values;
- # connect to database, turn off AutoCommit
+
my $dbh = SL::DB->client->dbh;
my $restricter = SL::HTML::Restrict->create;
my $dbh = SL::DB->client->dbh;
my $restricter = SL::HTML::Restrict->create;
@@
-583,26
+584,27
@@
sub retrieve_assemblies {
}
sub delete {
}
sub delete {
+ my ($self, $myconfig, $form) = @_;
$main::lxdebug->enter_sub();
$main::lxdebug->enter_sub();
+ my $rc = SL::DB->client->with_transaction(\&_delete, $self, $myconfig, $form);
+
+ $main::lxdebug->leave_sub();
+ return $rc;
+}
+
+sub _delete {
my ($self, $myconfig, $form) = @_;
my @values = (conv_i($form->{id}));
my ($self, $myconfig, $form) = @_;
my @values = (conv_i($form->{id}));
- # connect to database, turn off AutoCommit
- my $dbh = $form->get_standard_dbh;
my %columns = ( "assembly" => "id", "parts" => "id" );
for my $table (qw(prices makemodel inventory assembly translation parts)) {
my $column = defined($columns{$table}) ? $columns{$table} : "parts_id";
my %columns = ( "assembly" => "id", "parts" => "id" );
for my $table (qw(prices makemodel inventory assembly translation parts)) {
my $column = defined($columns{$table}) ? $columns{$table} : "parts_id";
- do_query($form,
$
dbh, qq|DELETE FROM $table WHERE $column = ?|, @values);
+ do_query($form,
SL::DB->client->
dbh, qq|DELETE FROM $table WHERE $column = ?|, @values);
}
}
- # commit
- my $rc = $dbh->commit;
-
- $main::lxdebug->leave_sub();
-
- return $rc;
+ return 1;
}
sub assembly_item {
}
sub assembly_item {
@@
-640,9
+642,6
@@
sub assembly_item {
$where .= qq| ORDER BY p.description|;
}
$where .= qq| ORDER BY p.description|;
}
- # connect to database
- my $dbh = $form->get_standard_dbh;
-
my $query =
qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
p.weight, p.onhand, p.unit, pg.partsgroup, p.lastcost,
my $query =
qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
p.weight, p.onhand, p.unit, pg.partsgroup, p.lastcost,
@@
-651,7
+650,7
@@
sub assembly_item {
LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
LEFT JOIN price_factors pfac ON pfac.id = p.price_factor_id
WHERE $where|;
LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
LEFT JOIN price_factors pfac ON pfac.id = p.price_factor_id
WHERE $where|;
- $form->{item_list} = selectall_hashref_query($form,
$
dbh, $query, @values);
+ $form->{item_list} = selectall_hashref_query($form,
SL::DB->client->
dbh, $query, @values);
$main::lxdebug->leave_sub();
}
$main::lxdebug->leave_sub();
}
@@
-1227,15
+1226,23
@@
sub get_num_matches_for_priceupdate {
}
sub update_prices {
}
sub update_prices {
+ my ($self, $myconfig, $form) = @_;
$main::lxdebug->enter_sub();
$main::lxdebug->enter_sub();
+ my $num_updated = SL::DB->client->with_transaction(\&_update_prices, $self, $myconfig, $form);
+
+ $main::lxdebug->leave_sub();
+ return $num_updated;
+}
+
+sub _update_prices {
my ($self, $myconfig, $form) = @_;
my ($where, @where_values) = $self->_create_filter_for_priceupdate();
my $num_updated = 0;
# connect to database
my ($self, $myconfig, $form) = @_;
my ($where, @where_values) = $self->_create_filter_for_priceupdate();
my $num_updated = 0;
# connect to database
- my $dbh =
$form->get_standard_
dbh;
+ my $dbh =
SL::DB->client->
dbh;
for my $column (qw(sellprice listprice)) {
next if ($form->{$column} eq "");
for my $column (qw(sellprice listprice)) {
next if ($form->{$column} eq "");
@@
-1295,10
+1302,6
@@
sub update_prices {
$sth_add->finish();
$sth_multiply->finish();
$sth_add->finish();
$sth_multiply->finish();
- my $rc= $dbh->commit;
-
- $main::lxdebug->leave_sub();
-
return $num_updated;
}
return $num_updated;
}