Revision cd002768
Von Sven Schöling vor mehr als 8 Jahren hinzugefügt
SL/IC.pm | ||
---|---|---|
use SL::HTML::Restrict;
|
||
use SL::TransNumber;
|
||
use SL::Util qw(trim);
|
||
use SL::DB;
|
||
|
||
use strict;
|
||
|
||
... | ... | |
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;
|
||
|
||
... | ... | |
}
|
||
|
||
sub delete {
|
||
my ($self, $myconfig, $form) = @_;
|
||
$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}));
|
||
# 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";
|
||
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 {
|
||
... | ... | |
$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,
|
||
... | ... | |
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();
|
||
}
|
||
... | ... | |
}
|
||
|
||
sub update_prices {
|
||
my ($self, $myconfig, $form) = @_;
|
||
$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 $dbh = $form->get_standard_dbh;
|
||
my $dbh = SL::DB->client->dbh;
|
||
|
||
for my $column (qw(sellprice listprice)) {
|
||
next if ($form->{$column} eq "");
|
||
... | ... | |
$sth_add->finish();
|
||
$sth_multiply->finish();
|
||
|
||
my $rc= $dbh->commit;
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return $num_updated;
|
||
}
|
||
|
Auch abrufbar als: Unified diff
IC: single-dbh für delete und update_prices