X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDO.pm;h=86c65ea1449d9b263236cb9c8bc53604f7cfce2c;hb=9f3c46ffb16c200246c545faa7f17686aa461483;hp=3b0b41be24a44750b87a3129cc3b6a0e18040b4f;hpb=5202b3e71b817c6a78845cd4c27773760ff408b6;p=kivitendo-erp.git diff --git a/SL/DO.pm b/SL/DO.pm index 3b0b41be2..86c65ea14 100644 --- a/SL/DO.pm +++ b/SL/DO.pm @@ -513,7 +513,7 @@ SQL donumber = ?, ordnumber = ?, cusordnumber = ?, transdate = ?, vendor_id = ?, customer_id = ?, reqdate = ?, tax_point = ?, shippingpoint = ?, shipvia = ?, notes = ?, intnotes = ?, closed = ?, - delivered = ?, department_id = ?, language_id = ?, shipto_id = ?, + delivered = ?, department_id = ?, language_id = ?, shipto_id = ?, billing_address_id = ?, globalproject_id = ?, employee_id = ?, salesman_id = ?, cp_id = ?, transaction_description = ?, is_sales = ?, taxzone_id = ?, taxincluded = ?, payment_id = ?, currency_id = (SELECT id FROM currencies WHERE name = ?), delivery_term_id = ? @@ -525,7 +525,7 @@ SQL conv_date($form->{reqdate}), conv_date($form->{tax_point}), $form->{shippingpoint}, $form->{shipvia}, $restricter->process($form->{notes}), $form->{intnotes}, $form->{closed} ? 't' : 'f', $form->{delivered} ? "t" : "f", - conv_i($form->{department_id}), conv_i($form->{language_id}), conv_i($form->{shipto_id}), + conv_i($form->{department_id}), conv_i($form->{language_id}), conv_i($form->{shipto_id}), conv_i($form->{billing_address_id}), conv_i($form->{globalproject_id}), conv_i($form->{employee_id}), conv_i($form->{salesman_id}), conv_i($form->{cp_id}), $form->{transaction_description}, @@ -557,10 +557,10 @@ SQL 'to_id' => $form->{id}, ); delete $form->{convert_from_oe_ids}; - - $self->mark_orders_if_delivered('do_id' => $form->{id}, - 'type' => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase', - 'dbh' => $dbh,); + unless ($::instance_conf->get_shipped_qty_require_stock_out) { + $self->mark_orders_if_delivered('do_id' => $form->{id}, + 'type' => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase'); + } $form->{saved_donumber} = $form->{donumber}; $form->{saved_ordnumber} = $form->{ordnumber}; @@ -663,7 +663,7 @@ sub delete_transfers { die "No valid delivery order found" unless ref $do eq 'SL::DB::DeliveryOrder'; my $dt = DateTime->today->subtract(days => $::instance_conf->get_undo_transfer_interval); - croak "Wrong call. Please check undoing interval" unless DateTime->compare($do->itime, $dt) == 1; + croak "Wrong call. Please check undoing interval" unless $do->itime > $dt; foreach my $doi (@{ $do->orderitems }) { foreach my $dois (@{ $doi->delivery_order_stock_entries}) { @@ -731,7 +731,7 @@ sub retrieve { dord.${vc}_id, cv.name AS ${vc}, dord.closed, dord.reqdate, dord.department_id, dord.cusordnumber, d.description AS department, dord.language_id, - dord.shipto_id, + dord.shipto_id, dord.billing_address_id, dord.itime, dord.mtime, dord.globalproject_id, dord.delivered, dord.transaction_description, dord.taxzone_id, dord.taxincluded, dord.payment_id, (SELECT cu.name FROM currencies cu WHERE cu.id=dord.currency_id) AS currency, @@ -1263,6 +1263,11 @@ sub transfer_in_out { WH->transfer(@transfers); + if ($::instance_conf->get_shipped_qty_require_stock_out) { + $self->mark_orders_if_delivered('do_id' => $form->{id}, + 'type' => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase'); + } + $main::lxdebug->leave_sub(); }