Auftrag-Controller: Aufträge manuell auf nicht-/geliefert setzen können.
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 11 Jun 2021 09:23:28 +0000 (11:23 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 11 Jun 2021 09:36:15 +0000 (11:36 +0200)
SL/Controller/Order.pm

index 88069f3..fe27d55 100644 (file)
@@ -1798,8 +1798,10 @@ sub pre_render {
   }
 
   if (any { $self->type eq $_ } (sales_order_type(), purchase_order_type())) {
-    # calculate shipped qtys here to prevent calling calculate for every item via the items method
-    SL::Helper::ShippedQty->new->calculate($self->order)->write_to_objects;
+    # Calculate shipped qtys here to prevent calling calculate for every item via the items method.
+    # Do not use write_to_objects to prevent order->delivered to be set, because this should be
+    # the value from db, which can be set manually or is set when linked delivery orders are saved.
+    SL::Helper::ShippedQty->new->calculate($self->order)->write_to(\@{$self->order->items});
   }
 
   if ($self->order->number && $::instance_conf->get_webdav) {