X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/4a9b86a56fa151d2fde072202ccabd5fc1fbaacc..3c1ceacd69653915e0b44f1700b198d96681f546:/SL/DO.pm diff --git a/SL/DO.pm b/SL/DO.pm index 44050b89b..c844b83e8 100644 --- a/SL/DO.pm +++ b/SL/DO.pm @@ -342,9 +342,9 @@ sub save { # save printed, emailed, queued $form->save_status($dbh); - $self->close_order_if_delivered('do_id' => $form->{id}, - 'type' => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase', - 'dbh' => $dbh,); + $self->mark_order_if_delivered('do_id' => $form->{id}, + 'type' => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase', + 'dbh' => $dbh,); my $rc = $dbh->commit(); @@ -357,7 +357,7 @@ sub save { return $rc; } -sub close_order_if_delivered { +sub mark_order_if_delivered { $main::lxdebug->enter_sub(); my $self = shift; @@ -434,6 +434,33 @@ sub close_order_if_delivered { $main::lxdebug->leave_sub(); } +sub close_orders { + $main::lxdebug->enter_sub(); + + my $self = shift; + my %params = @_; + + Common::check_params(\%params, qw(ids)); + + if (('ARRAY' ne ref $params{ids}) || !scalar @{ $params{ids} }) { + $main::lxdebug->leave_sub(); + return; + } + + my $myconfig = \%main::myconfig; + my $form = $main::form; + + my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); + + my $query = qq|UPDATE delivery_orders SET closed = TRUE WHERE id IN (| . join(', ', ('?') x scalar(@{ $params{ids} })) . qq|)|; + + do_query($form, $dbh, $query, map { conv_i($_) } @{ $params{ids} }); + + $dbh->commit() unless ($params{dbh}); + + $main::lxdebug->leave_sub(); +} + sub delete { $main::lxdebug->enter_sub();